我正在閱讀Grant Fritchey的優秀書籍SQL Server Execution Plans
。在第pg。 21他說,"When a query is submitted to the server, an estimated execution plan is created by the optimizer. Once that plan is created, and before it gets passed to the storage engine, the optimizer compares this estimated plan to the actual execution plan that already exist in the plan cache."
他繼續說這是因爲生成查詢計劃的開銷很大。SQL Server執行計劃 - 實際與預計
這聽起來像SQL Sever將計算優化程序的估計計劃,並且如果估計計劃與計劃緩存中的實際計劃不匹配,請創建實際計劃並將其存儲在緩存中。因此,這聽起來像是現有計劃是否存在於計劃緩存中,SQL Server將始終生成一個估計計劃。無論如何,如果它要這樣做,爲什麼還要在緩存中存儲任何東西?爲什麼不總是計算一個計劃,因爲它至少要做一次呢?我錯過了什麼嗎?
謝謝。
https://www.simple-talk.com/sql/performance/graphical-execution-plans-for - 簡單-SQL查詢/ – 2017-03-16 11:54:51