ITPub博客

首页 > 数据库 > SQL Server > sqlserver常用资源消耗sql

sqlserver常用资源消耗sql

原创 SQL Server 作者:DBA_每日记 时间:2019-12-23 09:19:07 0 删除 编辑

 --当前的数据库用户连接情况--

SELECT * FROM sys.[sysprocesses] WHERE [spid]>50 AND DB_NAME([dbid])='db_name'

SELECT * FROM [sys].[dm_exec_sessions] WHERE [session_id]>50


 ---选取了前10个最耗CPU时间的会话---

 SELECT TOP 10

 [session_id],

 [request_id],

 [start_time] AS '开始时间',

 [status] AS '状态',

 [command] AS '命令',

 dest.[text] AS 'sql语句', 

 DB_NAME([database_id]) AS '数据库名',

 [blocking_session_id] AS '正在阻塞其他会话的会话ID',

 [wait_type] AS '等待资源类型',

 [wait_time] AS '等待时间',

 [wait_resource] AS '等待的资源',

 [reads] AS '物理读次数',

 [writes] AS '写次数',

 [logical_reads] AS '逻辑读次数',

 [row_count] AS '返回结果行数'

 FROM sys.[dm_exec_requests] AS der 

 CROSS APPLY 

 sys.[dm_exec_sql_text](der.[sql_handle]) AS dest 

 WHERE [session_id]>50 AND DB_NAME(der.[database_id])='db_name'  

 ORDER BY [cpu_time] DESC

 

 

 

 ---选取了前10个最耗CPU时间的SQL---

 SELECT TOP 10 

 dest.[text] AS 'sql语句'

 FROM sys.[dm_exec_requests] AS der 

 CROSS APPLY 

 sys.[dm_exec_sql_text](der.[sql_handle]) AS dest 

 WHERE [session_id]>50  

 ORDER BY [cpu_time] DESC

 

 



SELECT TOP 10

   total_worker_time/execution_count AS avg_cpu_cost, plan_handle,

   execution_count,

   (SELECT SUBSTRING(text, statement_start_offset/2 + 1,

      (CASE WHEN statement_end_offset = -1

         THEN LEN(CONVERT(nvarchar(max), text)) * 2

         ELSE statement_end_offset

      END - statement_start_offset)/2)

   FROM sys.dm_exec_sql_text(sql_handle)) AS query_text

FROM sys.dm_exec_query_stats

ORDER BY [avg_cpu_cost] DESC



----查询缺失索引----

 SELECT 

     DatabaseName = DB_NAME(database_id)

     ,[Number Indexes Missing] = count(*) 

 FROM sys.dm_db_missing_index_details

 GROUP BY DB_NAME(database_id)

 ORDER BY 2 DESC;

 

 SELECT  TOP 10 

        [Total Cost]  = ROUND(avg_total_user_cost * avg_user_impact * (user_seeks + user_scans),0) 

        , avg_user_impact

        , TableName = statement

        , [EqualityUsage] = equality_columns 

        , [InequalityUsage] = inequality_columns

        , [Include Cloumns] = included_columns

FROM        sys.dm_db_missing_index_groups g 

INNER JOIN    sys.dm_db_missing_index_group_stats s 

       ON s.group_handle = g.index_group_handle 

INNER JOIN    sys.dm_db_missing_index_details d 

       ON d.index_handle = g.index_handle

ORDER BY [Total Cost] DESC;



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69950231/viewspace-2669926/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
聚焦人文和技术,分享干货,共同成长

注册时间:2019-10-09

  • 博文量
    177
  • 访问量
    238546