Sql-Server

是否有可靠的方法來確定優化器生成查詢計劃需要多長時間?

  • November 4, 2019

我不確定從哪裡開始,但是有沒有辦法查看優化器為查詢生成查詢計劃花了多長時間?它是否儲存在任何 DMV 中或屬於某個統計數據的一部分?或者如果我包含實時統計數據或實際執行計劃,我可以以某種方式計算它嗎?也許在查詢商店中?

有很多方法:

  • 如果您可以執行查詢

    • 你可以使用set statistics time onwhich 會給你:

    > > SQL Server 解析和編譯時間:CPU 時間 = xx 毫秒,已用時間 = xx 毫秒。 > > >

  • 如果您無法執行查詢,則探勘計劃記憶體以檢查查詢編譯時間以及許多其他重要見解。

還有許多其他方法,例如分析器、伺服器端跟踪或 XEvents - 但它們很昂貴並且可能對您的 sql 伺服器產生負面的性能影響。

您可以使用sp_BlitzCache從計劃記憶體中找出查詢編譯超時。

引用自:https://dba.stackexchange.com/questions/252463