日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据性能调校——查看最耗资源的各种SQL

發布時間:2025/6/17 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据性能调校——查看最耗资源的各种SQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
從計劃高速緩存中清除查詢計劃DBCC FREEPROCCACHE 清除緩存中的過程DBCC DROPCLEANBUFFERS清除內存中的數據SELECT DB_ID('你的數據庫名')

?

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))*2ELSE statement_end_offset END -statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle) where dbid = 6 -- koubei = 6 指定數據庫ID )AS query_textFROM sys.dm_exec_query_statsORDER BY [avg_cpu_cost] DESC查詢SQL改進版select highest_cpu_queries.plan_handle, highest_cpu_queries.total_worker_time,highest_cpu_queries.avg_cpu_cost,highest_cpu_queries.execution_count,q.dbid,q.objectid,q.number,q.encrypted,q.[text]from (select top 50 qs.plan_handle, qs.total_worker_time,qs.total_worker_time/execution_count AS avg_cpu_cost ,qs.execution_countfrom sys.dm_exec_query_stats qsorder by avg_cpu_cost desc) as highest_cpu_queriescross apply sys.dm_exec_sql_text(plan_handle) as qwhere dbid = 6 -- koubei = 6order by highest_cpu_queries.avg_cpu_cost desc

?

SELECT TOP 10 total_worker_time,plan_handle,execution_count,(SELECT SUBSTRING(text,statement_start_offset/2+1,(CASE WHEN statement_end_offset=-1 THEN LEN(CONVERT(nvarchar(max),text))*2ELSE statement_end_offset END -statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle) where dbid = 6 -- koubei = 6 )AS query_textFROM sys.dm_exec_query_statsORDER BY execution_count DESC改進版本:select highest_execution_count.plan_handle, highest_execution_count.total_worker_time,highest_execution_count.execution_count,q.dbid,q.objectid,q.number,q.encrypted,q.[text]from (select top 50 qs.plan_handle, qs.total_worker_time,qs.execution_countfrom sys.dm_exec_query_stats qsorder by execution_count desc) as highest_execution_countcross apply sys.dm_exec_sql_text(plan_handle) as qwhere dbid = 6 -- koubei = 6order by highest_execution_count.execution_count desc

?

SELECT TOP 10 plan_generation_num,execution_count,(SELECT SUBSTRING(text,statement_start_offset/2+1,(CASE WHEN statement_end_offset=-1 THEN LEN(CONVERT(nvarchar(max),text))*2ELSE statement_end_offset END -statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle) where dbid = 6 -- koubei = 6 )AS query_textFROM sys.dm_exec_query_stats WHERE plan_generation_num>1 ORDER BY plan_generation_num DESC改進版:select highest_plan_count.plan_handle, highest_plan_count.total_worker_time,highest_plan_count.execution_count,highest_plan_count.plan_generation_num,q.dbid,q.objectid,q.number,q.encrypted,q.[text]from (select top 50 qs.plan_handle, qs.total_worker_time,qs.execution_count,qs.plan_generation_numfrom sys.dm_exec_query_stats qs WHERE plan_generation_num>1order by plan_generation_num desc) as highest_plan_countcross apply sys.dm_exec_sql_text(plan_handle) as qWHERE dbid = 6 -- koubei = 6order by highest_plan_count.plan_generation_num 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))*2ELSE statement_end_offset END -statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle) where dbid = 6 -- koubei = 6 )AS query_text,plan_handleFROM sys.dm_exec_query_stats ORDER BY (total_logical_reads+total_logical_writes)desc改進版:select highest_reads_count.avg_logical_reads, highest_reads_count.avg_logical_writes,highest_reads_count.avg_phys_reads,highest_reads_count.execution_count,highest_reads_count.plan_handle,q.dbid,q.objectid,q.number,q.encrypted,q.[text]from (select top 50 (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,qs.execution_count,qs.plan_handlefrom sys.dm_exec_query_stats qsorder by (total_logical_reads+total_logical_writes) desc) as highest_reads_countcross apply sys.dm_exec_sql_text(plan_handle) as qWHERE dbid = 6 -- koubei = 6order by (highest_reads_count.avg_logical_reads+highest_reads_count.avg_logical_writes) desc

?

SELECT t1.object_id,t2.user_seeks,t2.user_scans,t1.equality_columns,t1.inequality_columnsFROM sys.dm_db_missing_index_details AS t1,sys.dm_db_missing_index_group_stats AS t2,sys.dm_db_missing_index_groups AS t3WHERE database_id=6 --koubei庫ID,查看某個庫的ID,可以切換到那個庫下面,然后SELECT DB_ID()AND object_id=OBJECT_ID('表名')AND t1.index_handle=t3.index_handleAND t2.group_handle=t3.index_group_handle改進版本:

?

SELECT mig.*,statement AS tableName,column_id,column_name,column_usage FROM sys.dm_db_missing_index_details AS mid CROSS APPLY sys.dm_db_missing_index_columns(mid.index_handle)INNER JOIN sys.dm_db_missing_index_groups AS mig ON mig.index_handle=mid.index_handleWHERE database_id=6 AND object_id=OBJECT_ID('表名')ORDER BY mig.index_group_handle,mig.index_handle,column_id并發問題,查詢阻塞和被阻塞的SQL。注意下面waitingsql和blockingsql兩個字段。declare @lockinfo TABLE ([waiting_time_ms] [bigint],[waiting_resource_type] [varchar](60) ,[dbanme] [nvarchar](128),[objectname] [nvarchar](128),[waiting_request_lock_mode] [varchar](60) ,[waiting_session_id] [int] ,[waiting_loginame] [varchar](128) ,[waiting_hostname] [varchar](128) ,[waitingsql] [nvarchar](max),[blocking_session_id] [smallint],[blocking_loginame] [varchar](128) ,[blocking_hostname] [varchar](128) ,[blockingsql] [varchar](max),[createtime] [datetime])DECLARE @count intdeclare @sql nvarchar(max)set @sql = N''select@sql = @sql + N'union allselect '''+convert(nvarchar(100),database_id)+N''' as dbid,object_id,hobt_id from ['+name+N'].sys.partitions(nolock)'from sys.databases(nolock)where name not in ('model','tempdb') and state_desc = 'ONLINE'set @sql = substring(@sql,10,len(@sql))declare @objinfo table(dbid int,object_id int,hobt_id bigint)insert into @objinfo exec(@sql)INSERT INTO @lockinfo(waiting_time_ms,waiting_resource_type,dbanme,objectname,waiting_request_lock_mode,waiting_session_id,waiting_loginame,waiting_hostname,waitingsql,blocking_session_id,blocking_loginame,blocking_hostname,blockingsql)SELECT DISTINCT t2.wait_duration_ms waiting_time_ms,t1.resource_type waiting_resource_type,DB_NAME(t1.resource_database_id) dbanme,CASE t1.resource_typeWHEN 'OBJECT' THEN OBJECT_NAME(t1.resource_associated_entity_id,t1.resource_database_id)WHEN 'DATABASE' THEN 'DATABASE'ELSE(SELECT OBJECT_NAME(object_id, t1.resource_database_id)FROM @objinfoWHERE hobt_id = t1.resource_associated_entity_idand dbid = t1.resource_database_id)END AS ObjectName,t1.request_mode waiting_request_lock_mode,t1.request_session_id waiting_session_id,s1.login_name waiting_loginame,s1.host_name+'-'+r3.client_net_address waiting_hostname,CASE WHEN st1.objectid IS NULL THEN st1.text ELSE OBJECT_NAME(st1.objectid,st1.dbid) END waitingsql,t2.blocking_session_id,s2.login_name blocking_loginame,s2.host_name+'-'+r2.client_net_address blocking_hostname,CASE WHEN st2.objectid IS NULL THEN st2.text ELSE OBJECT_NAME(st2.objectid,st2.dbid) END blockingsqlFROM sys.dm_tran_locks AS t1 with(nolock)INNER JOIN sys.dm_os_waiting_tasks AS t2 with(nolock) ON t1.lock_owner_address = t2.resource_addressINNER JOIN sys.dm_exec_requests r1 with(nolock) ON t1.request_session_id=r1.session_idINNER JOIN sys.dm_exec_sessions s1 with(nolock) ON s1.session_id=r1.session_idCROSS APPLY sys.dm_exec_sql_text(r1.sql_handle) st1INNER JOIN sys.dm_exec_connections r2 with(nolock) ON t2.blocking_session_id=r2.session_idINNER JOIN sys.dm_exec_sessions s2 with(nolock) ON s2.session_id=r2.session_idCROSS APPLY sys.dm_exec_sql_text(r2.most_recent_sql_handle) st2left JOIN sys.dm_exec_connections r3 with(nolock) ON t1.request_session_id=r3.session_idORDER BY t2.wait_duration_ms DESCselect * from @lockinfo

?

轉載于:https://www.cnblogs.com/gered/p/9540887.html

總結

以上是生活随笔為你收集整理的数据性能调校——查看最耗资源的各种SQL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线免费观看视频网站 | 中国女人黄色大片 | 色优久久 | 好吊视频一区二区三区四区 | 91视频入口 | 久久亚洲视频 | 大地资源影视在线播放观看高清视频 | 91大神在线免费观看 | 色小姐综合网 | 久久久伦理片 | www天天干 | 成人污网站 | 午夜影院一区二区 | 日日摸夜夜添狠狠添久久精品成人 | 亚洲国产精品无码专区 | 日韩一区二区欧美 | 欧洲三级视频 | 69人人 | 伊人影院中文字幕 | 72成人网 | 伊在线久久丫 | 天天舔天天射天天干 | 精品人妻伦一二三区免费 | 国产在线观看免费av | 成年人午夜视频 | 欧美性生交xxxxxdddd | 国产伦理吴梦梦伦理 | 韩国明星乱淫(高h)小说 | 成年人网站免费在线观看 | 啪啪官网 | 成年人性生活视频 | 亚洲妇熟xx妇色黄蜜桃 | 国产91精品久久久久 | 成人免费观看网站 | 综合久久伊人 | 国产成人福利 | av性色| 草草视频在线免费观看 | 性大片潘金莲裸体 | 国产乱码精品一区二区三 | 亚洲精品久久久中文字幕 | 青青草一区二区三区 | 夜久久久 | 精品不卡一区二区 | 大陆女明星乱淫合集 | 青青草av| 日本免费高清一区二区 | 免费在线| 欧美视频一区二区三区四区在线观看 | 猛男被粗大男男1069 | 国产乱来 | 少妇中出视频 | 国产女主播自拍 | 国产老头老太作爱视频 | 久久精品国产大片免费观看 | 久久综合高清 | 中文在线а√天堂官网 | 久久国产精品免费视频 | 免费国产一区二区 | 调教驯服丰满美艳麻麻在线视频 | 日韩综合色 | 国产一区二区在线免费观看视频 | 欧美精品欧美精品系列 | 亚洲精品乱码久久久久久蜜桃图片 | 亚洲国产亚洲 | 毛片传媒 | 在线观看三级网站 | 九九在线观看视频 | 日日摸夜夜添狠狠添欧美 | 中文视频在线观看 | 奇米第四色首页 | 自拍偷拍激情视频 | 日韩av色| 精品无码久久久久久久久果冻 | 男女污污软件 | 五月天一区二区 | 成人精品黄段子 | 欧美草逼网 | 久久久精品影视 | 亚洲av无码一区二区乱子伦as | 欧洲精品免费一区二区三区 | 中文字幕无码精品亚洲 | 国产日日干 | 日本黄网站色大片免费观看 | 三级中文字幕 | 亚洲综人| 神马午夜国产 | 女人扒开腿让男人桶爽 | 爱上av| 91精品视频在线播放 | 久久久久久久久久久福利 | 51精品国自产在线 | 亚洲天堂最新 | 少妇高潮惨叫久久久久 | 高清国产一区 | 免费一区| 日本精品在线播放 | 久久调教| 俄罗斯乱妇 |