zoukankan      html  css  js  c++  java
  • 《Dissecting SQL Server Execution Plans》随记

    1.常用分析语句
    DBCC FREEPROCCACHE --清缓存
    DBCC DROPCLEANBUFFERS --清缓冲区

    --获取性能信息
    set statistics profile on

    set statistics io on

    set statistics time on

    使用 SET STATISTICS XML ON 选项打开 XML 显示计划功能

    --查看已经缓存的sql
    SELECT  [cp].[refcounts]
           ,[cp].[usecounts]
           ,[cp].[objtype]
           ,[st].[dbid]
           ,[st].[objectid]
           ,[st].[text]
           ,[qp].[query_plan]
    FROM    sys.dm_exec_cached_plans cp
            CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) st
            CROSS APPLY sys.dm_exec_query_plan(cp.plan_handle) qp ;


    2.何时实际与执行计划不同?
        1.统计过期
        2. 需要并发


    3.聚合索引包含全部的列数据,因此即使返回全部列也不会有【嵌套循环】和【键查找】

    排序:SQLSERVER会首先利用内存进行排序,若内存不足,则会启用TEMPDB进行排序,此时将报告一个警告,如果出现警告,请改善内存大小或程序本身。

    4.CTE 公用表表达式 可作为递归

    5.实体化视图/索引视图(视图存储数据,tempdb,插入时自动更新)
        1. 创建索引视图的时候需要指定表所属的架构
        2.在创建索引视图的select语句时,不使用*,必须指定具体的列名
        3.在创建索引视图的select 语句中,不能存在重复的列名,这个不举例了
        4. 只能为索引视图创建唯一聚集索引

  • 相关阅读:
    python 魔法方法
    wfst的compose算法
    文法和语言,理解克林闭包
    openfst常用命令
    Longest Substring Without Repeating Characters
    xgboost 实践
    决策树学习
    OPC UA的监控项、订阅、和通知
    限流及常用算法
    本体论与OWL
  • 原文地址:https://www.cnblogs.com/Magicsky/p/1819355.html
Copyright © 2011-2022 走看看