用于重新编译的工具和命令

用于重新编译的工具和命令

 

1.SQL Prifiler:捕捉事件类型为SP和T-SQL的事件(Starting、Stmtcompleted、Recompile、Completed、CacheInsert、CacheHit、CacheMiss)可以找到重新编译的原因。

2.SQLServer的系统用于查看分析执行计划的DMV,如:

  • select st.text,cp.plan_handle,cp.usecounts,cp.size_in_bytes,cp.cacheobjtype,cp.objtype

from sys.dm_exec_cached_plans cp

cross apply sys.dm_exec_text(cp.plan_handle) st order by cp.usecounts desc 

–列:st.text:查询中生成查询计划的sql文本。

        cp.usecounts:重用计划查询的次数。

        cp.size_in_bytes:查询计划中使用的字节数。

        cp.cacheobjtype:缓存对象的类型。

  • select *from sys.dm_exec_cached_plans –查询缓存的执行计划
  • select* from sys.dm_os_memory_cache_counters–查询缓存对象相关信息
  • 通过执行计划缓存找到数据库总耗时最长的20个查询语句

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

 SELECT TOP 20

   CAST(qs.total_elapsed_time / 1000000.0 AS DECIMAL(28, 2))

                                      AS [Total Duration (s)]

   , CAST(qs.total_worker_time * 100.0 / qs.total_elapsed_time

                                AS DECIMAL(28, 2)) AS [% CPU]

   , CAST((qs.total_elapsed_time – qs.total_worker_time)* 100.0 /

         qs.total_elapsed_time AS DECIMAL(28, 2)) AS [% Waiting]

   , qs.execution_count

   , CAST(qs.total_elapsed_time / 1000000.0 / qs.execution_count

                 AS DECIMAL(28, 2)) AS [Average Duration (s)]

   , SUBSTRING (qt.text,(qs.statement_start_offset/2) + 1,      

     ((CASE WHEN qs.statement_end_offset = -1

       THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2

       ELSE qs.statement_end_offset

       END – qs.statement_start_offset)/2) + 1) AS [Individual Query

   , qt.text AS [Parent Query]

   , DB_NAME(qt.dbid) AS DatabaseName

   , qp.query_plan

 FROM sys.dm_exec_query_stats qs

 CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt

 CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp

 WHERE qs.total_elapsed_time > 0

 ORDER BY qs.total_elapsed_time DESC  

  • Sys.dm_exec_cached_plans:    包含缓存的执行计划,每个执行计划对应一行。
  • Sys.dm_exec_plan_attributes: 这是一个系统函数,每一个执行计划都对应着一些属性,在这个系统函数中包含着这些属性。
  • Sys.dm_exec_sql_text:             这是一个系统函数,返回文字格式的执行计划。
  • Sys.dm_exec_query_plan:        这是一个系统函数,返回xml格式的执行计划。

3.虚拟表

  • SQL Server 2008还提供了一个兼容性的视图sys.syscacheobject,这个视图中保存了所有的执行计划的信息。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119742.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java switch的意思_java switch

    java switch的意思_java switchjavaswitch[编辑]概述Java中的switch是“开关”的意思,有时也被划分为一种“选择语句”。根据一个整数表达式的值,switch语句可从一系列代码选出一段执行。一.Java的简介Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球…

    2022年7月26日
    3
  • pycharm2021.12激活_在线激活「建议收藏」

    (pycharm2021.12激活)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~00…

    2022年3月30日
    76
  • 1521端口 mysql_Linux开放1521端口允许网络连接Oracle Listener

    1521端口 mysql_Linux开放1521端口允许网络连接Oracle Listener症状:1.TCP/IP连接是通的。可以用ping命令测试。2.服务器上OracleListener已经启动。lsnrctlstatus查看listener状态lsnrctlstart启动Oraclelistener3.客户端得到的错误信息通常是:ORA-12170:TNS:连接超时这时,我们基本可以肯定是服务器没有开放1521端口(假设你用默认设置)解决…

    2022年5月1日
    111
  • 怎样修改hosts文件权限_修改host显示没有权限怎么办

    怎样修改hosts文件权限_修改host显示没有权限怎么办文章目录1.打开host文件2.右键属性->安全->高级3.更改->高级->立即查找4.在下拉菜单中找到”本地账户”确定->确定->应用5.出现弹窗->确定->确定6.编辑->选中组或用户名当中的”Users(DESKTOP-XXXXX\users)”->勾选Users的权限下的:允许完全控制->点应用->确定即可修改hosts文件了。1.打开host文件文件位置C:\Windows\System32\drivers\etc

    2022年10月12日
    0
  • CSS3点赞动画特效源码下载

    体验效果:http://hovertree.com/texiao/jquery/62/效果图:下载:http://hovertree.com/h/bjaf/1dvh9ym6.htm特效库:http

    2021年12月22日
    40
  • 土地利用转移矩阵怎么做_土地利用转移矩阵年份怎么看

    土地利用转移矩阵怎么做_土地利用转移矩阵年份怎么看一、2000年-2005年土地利用转移矩阵1、转换工具-由栅格转出-栅格转面:grid转shp2、合并之后,属性表添加字段:类型和面积(一定要带年份,方便后续处理)3、DataManagementTools→Generalization→Dissolve数据管理工具-制图综合-融合(选择年份+类型名称、面积)4、AnalysisTools→Overlay→Intersect分析工具-叠加分析-相交5、生成结果之后打开属性表,添加字段为newarea,计算几何,然后导出结

    2025年5月28日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号