Sql-Server
重新啟動 SQL 服務(在電腦上)是否會清除伺服器記憶體(例如查詢計劃和統計資訊)?
當您僅重新啟動 SQL 服務本身時,伺服器記憶體是否會被擦除(類似於重新啟動 SQL 實例/機器時)?
是的,它確實。由於 SQL Server 負責維護這些記憶體,因此當您關閉 SQL Server 的服務時,它會將記憶體釋放回作業系統。
單獨重新啟動服務或由於重新啟動底層作業系統而重新啟動服務之間的行為沒有區別。在這種重新啟動時會擦除哪些資訊?
- 查詢計劃?是的。
- 表/索引數據?是的。
- 統計數據?不。
(使用統計資訊的查詢計劃必須重新編譯,但不必重新創建統計資訊,除非還有一些事件或條件觸發它(有幾個)。)
如果您在事務回滾時停止服務,您可能還沒有完成任何事情,因為回滾可能只是從它停止的地方重新開始(或者它可能必須完全重新開始,具體取決於正在獲取的活動類型回滾)。
如果您因為不耐煩地等待回滾完成而重新啟動了服務,那麼這可能是一堂昂貴的課,您只需要做一兩次就可以停止嘗試。看: