Sql-Server
等待時間怎麼會比時鐘時間長?
當我使用 sp_BlitzFirst 跟踪等待時,我得到了以下詳細資訊:
<?ClickToSeeDetails -- For 20 seconds over the last 5 seconds, SQL Server was waiting on this particular bottleneck. -- ?>
那應該是“在過去 5 秒內 20 次”嗎?發現是 CLR_SEMAPHORE。
否 - 等待統計資訊的總和可能(而且通常會)超過伺服器本身花費的物理時間。
想像一下這樣一種情況,其中 2 個單獨的執行緒花費相同的時間等待某個資源 - 您將有 2 秒的等待時間來等待 1 秒的時鐘時間。
每個執行緒都有自己的等待 - 消息告訴您該特定資源的 20 秒等待時間發生在時鐘時間的最後 5 秒內。
或者換一種說法,每個核心可以同時執行多個查詢,多個核心可以加起來更多的等待。也就是說,單位真的是執行緒·秒,而不是秒。