查詢CPU占用高的SQL語句

2022-02-27 14:45:10 字數 2929 閱讀 4324

注意:sql server中查詢cpu占用高的情況,經常會用到sys.sysprocesses ,dm_exec_sessions ,dm_exec_requests

1、檢視當前的資料庫使用者連線數

use master

goselect * from sys.[sysprocesses] where [spid]>50 --and db_name([dbid])='gposdb'

select count(*) from [sys].[dm_exec_sessions] where [session_id]>50

2、查cpu使用率前10 的sql語句:

selecttop10

st.textassql_full--父級完整語句

,substring(st.text, (qs.statement_start_offset/2) + 1,

((casestatement_end_offset

when-1thendatalength(st.text)

elseqs.statement_end_offsetend

- qs.statement_start_offset)/2) + 1)assql_part--統計對應的部分語句

,cast( ((qs.total_elapsed_time / 1000000.0)/qs.execution_count)asdecimal(28,2) )as[平均消耗秒數]

,cast(qs.last_elapsed_time / 1000000.0asdecimal(28, 2))as[最後完成消耗秒數]

, qs.last_execution_timeas[最後執行時間]

,cast(qs.min_elapsed_time / 1000000.0asdecimal(28, 2))as[最小消耗秒數]

,cast(qs.max_elapsed_time / 1000000.0asdecimal(28, 2))as[最大消耗秒數]

,cast(qs.total_elapsed_time / 1000000.0asdecimal(28, 2))as[總消耗秒數]

, (qs.execution_count)as[總執行次數]

, creation_timeas[編譯計畫的時間]

,cast(qs.last_worker_time / 1000000.0asdecimal(28, 2))as[最後完成占用cpu秒數]

, qp.query_plan

fromsys.dm_exec_query_stats qs

crossasst

cross

whereqs.last_execution_time>dateadd(n,-30,getdate())

orderbyqs.last_worker_timedesc

3、查阻塞:

原文出處:

SQL Server中查詢CPU占用高的SQL語句

sql server中查詢cpu占用高的情況,會用到sys.sysprocesses dm exec sessions dm exec requests 一 檢視當前的資料庫使用者連線有多少 use master goselect from sys.sysprocesses where spid 5...

我的SQL裡哪個語句占用的CPU最多

可以使用下面的語句來得到 select substring qt.text qs.statement start offset 2 1,case qs.statement end offset when 1 then datalength qt.text else qs.statement end ...

Mysql 占用cpu資源高的分析

在伺服器上執行命令,將 mysql 當前的環境變數輸出到檔案 output.txt d web mysql mysqld.exe help output.txt 發現 tmp table size 的值是預設的 32m,於是修改 my.ini,將 tmp table size 賦值到 200m d ...