Explain

將 EXPLAIN 成本轉換為(掛鐘)執行時是否有一個好的“經驗法則”?

  • January 5, 2011

有時,我的數據庫程序的使用者會詢問給定任務何時完成的估計。雖然我覺得我知道如何在大多數數據庫引擎中閱讀解釋,但我很難將其翻譯為“15 分鐘後再問我”。有誰知道用於任何特定數據庫的良好“經驗法則”?

我意識到這不會是一個硬性規定,但在某些情況下,即使能夠給出一個大概的數字也是有用的。

基於成本的優化器都通過各種專有算法工作(或者您可以為開源數據庫閱讀它們),但它們通常通過為引用操作分配值 1 來工作。例如,在 SQL Server 中,成本估計為在雷德蒙德的某個開發人員辦公桌下的參考電腦上,1 需要 1/320 秒。成本只是對查詢成本的相對猜測。許多 RDBMS 使用此成本來建立優先級,或者在死鎖的情況下,殺死更便宜的查詢(它們再次執行所需的時間更少)。但這只是基於查詢優化器在執行查詢時掌握的資訊的猜測。

Peter 是對的,您可以期望的最好的結果是在理想場景中執行一些基準查詢,並使用這些查詢作為最佳猜測的基礎。您必須在 RDBMS 中處理許多不同的爭用點,因此很難具體確定任何給定查詢在現實世界中的執行方式。

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