--檢測CPU壓力的一個(gè)方法是計(jì)算運(yùn)行狀態(tài)下的工作進(jìn)程數(shù)量,
--通過執(zhí)行如下的DMV查詢可以得到這個(gè)信息
SELECT
COUNT
(
*
)
AS
workers_waiting_for_cpu,t2.scheduler_id
FROM
sys.dm_os_workers
AS
t1, sys.dm_os_schedulers
AS
t2
WHERE
t1.state
=
'
RUNNABLE
'
AND
t1.scheduler_address
=
t2.scheduler_address
AND
t2.scheduler_id
<
255
GROUP
BY
t2.scheduler_id
--也可以執(zhí)行如下的查詢得到工作進(jìn)程在可運(yùn)行狀態(tài)下花費(fèi)的時(shí)間
SELECT SUM(signal_wait_time_ms) FROM sys.dm_os_wait_stats
--下面是一個(gè)DMV查詢,它可以用來找出每次執(zhí)行中占用CPU最多的錢10為查詢,
--也列出了SQL語句的查詢計(jì)劃及計(jì)劃被執(zhí)行的次數(shù)。如果一個(gè)查詢大家雖高,
--但執(zhí)行次數(shù)少,那也可以采納。
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
--以上DMV只顯示當(dāng)前被緩存的查詢合計(jì)統(tǒng)計(jì)信息
--為了找出工作負(fù)荷中運(yùn)行最頻繁的查詢,就需要執(zhí)行下面的DMV查詢。
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
))
*
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
execution_count
--SQL Server在優(yōu)化查詢計(jì)劃上花費(fèi)的時(shí)間可以用下面的DMV查詢
SELECT
*
FROM
sys.dm_exec_query_optimizer_info
WHERE
counter
=
'
optimizations
'
UNION
SELECT
*
FROM
sys.dm_exec_query_optimizer_info
WHERE
counter
=
'
elapsed time
'
SELECT
TOP
10
plan_generation_num ,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
WHERE
plan_generation_num
>
1
ORDER
BY
execution_count
?
?--檢查高速緩存內(nèi)存
DBCC
memorystatus
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:
http://blog.csdn.net/dz45693/archive/2010/01/27/5260697.aspx
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

