首页 > 代码库 > SQL Server优化常用SQL语句
SQL Server优化常用SQL语句
--所有没有主键的表select name from sysobjects where xtype=‘U‘ and id not in(select i.parent_obj from sysobjects iwhere i.xtype=‘PK‘ ) order by name
--总计耗费CPU时间最长的查询计划SELECT TOP 5 total_worker_time ,last_worker_time ,max_worker_time ,min_worker_time ,SUBSTRING(st.text,(qs.statement_start_offset / 2) + 1, ((CASE statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END - qs.statement_start_offset) / 2) + 1) AS statement_textFROM sys.dm_exec_query_stats AS qsCROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS stORDER BY total_worker_time DESC
--逻辑读最多的语句SELECT TOP 10 (total_logical_reads / execution_count) AS avg_logical_reads ,(total_logical_writes / execution_count) AS avg_logical_writes ,(total_physical_reads / execution_count) AS avg_phys_reads ,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 --,plan_handle ,db_name(qp.dbid) ,qp.query_planFROM sys.dm_exec_query_statscross apply sys.dm_exec_query_plan(plan_handle) qpORDER BY (total_logical_reads + total_logical_writes)/execution_count DESC
--未被使用过的索引SELECT o.name Object_Name --表名 , i.name Index_name --索引名 , i.Type_Desc --是否聚集索引 , s.user_seeks --索引seek的次数 , s.user_scans --索引scan的次数 , s.user_updates --索引update的次数 , s.user_lookups --索引lookup的次数FROM sys.objects AS oJOIN sys.indexes AS iON o.object_id = i.object_idLEFT OUTER JOIN sys.dm_db_index_usage_stats AS sON i.object_id = s.object_id AND i.index_id = s.index_idWHERE o.type = ‘u‘ and i.type_desc <> ‘heap‘and user_seeks=0 and user_scans=0ORDER BY OBJECT_NAME;
SQL Server优化常用SQL语句
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。