2010年4月12日 星期一

MS SQL 2005

很討厭,從SQL2000轉換到SQL2005真的有點痛心,雖有支援PARTION但能量卻不及於2000,cpu, memory 一瞬間較標高,降不下來,真不知該怎麼辦,我真的還要用他嗎?
查察SQL2005的資料庫吧,到底是哪個語法讓資料庫CPU一直狂漲。

查詢CPU的語法
SELECT
total_cpu_time,
total_execution_count,
number_of_statements,
s2.text
--(SELECT SUBSTRING(s2.text, statement_start_offset / 2, ((CASE WHEN statement_end_offset = -1 THEN (LEN(CONVERT(NVARCHAR(MAX), s2.text)) * 2) ELSE statement_end_offset END) - statement_start_offset) / 2) ) AS query_text
FROM
(SELECT TOP 50
SUM(qs.total_worker_time) AS total_cpu_time,
SUM(qs.execution_count) AS total_execution_count,
COUNT(*) AS number_of_statements,
qs.sql_handle --,
--MIN(statement_start_offset) AS statement_start_offset,
--MAX(statement_end_offset) AS statement_end_offset
FROM
sys.dm_exec_query_stats AS qs
GROUP BY qs.sql_handle
ORDER BY SUM(qs.total_worker_time) DESC) AS stats
CROSS APPLY sys.dm_exec_sql_text(stats.sql_handle) AS s2

P.S. 有一個奇怪的地方,我沒卻搞懂 "sys.dm_exec_sql_text" 為啥有些電腦不能跑?

沒有留言:

張貼留言