某數據庫服務器CPU突然佔用超過40%了,平時只有5%以下,可看正在執行的語句,發現有大量的相同語句在運行,可能是執行計劃不正確導致,所以我們可以只對這個語句進行執行計劃的清除,清除後會自動重新再生成新的執行計劃,這樣實現了執行計劃的更新。
SELECT a.execution_count , a.max_worker_time , a.total_worker_time , a.total_worker_time / a.execution_count ,--毫秒 a.sql_handle , a.plan_handle , query_plan , text FROM sys.dm_exec_query_stats a CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) CROSS APPLY sys.dm_exec_query_plan(a.plan_handle) WHERE text LIKE '%查要詢的語句內容(@P0 datetime2,@P1 datetime2,@P2 int)' DBCC freeproccache( 0x02000000518B9009534DAC8FFFE0BF952670BDF8B82E1EB0)--用sql_handle清空某個語句的執行計劃
建議使用兩次以上的語句,因爲在執行DBCC時可能正巧剛剛被重新編譯了,仍然是舊計劃。