Sql-Server
使用 SQLCMD 執行查詢與使用 SSMS 執行查詢
我注意到一些我不確定的事情。難道直接使用 SSMS 執行查詢比使用 SQLCMD 執行查詢要快得多嗎?我注意到使用 SSMS 執行的查詢結果寫入磁碟的速度要快得多。
有什麼區別?
謝謝。
差異可能是由於
SET
設置,例如SET ARITHABORT
. 發生的情況是,在決定使用的計劃時會考慮這些設置,有時您可能會因一個設置而陷入非常糟糕的計劃(這可能是因為該應用程序使用了非最佳參數),反之亦然設置有一個很好的計劃。您可以通過在查詢執行時檢查 sys.dm_exec_requests 和 sys.dm_exec_sessions 來發現正在使用的設置。後者有用於各種設置的列(但您必須從前者中找出 session_id)。發現差異後,您可以從 sqlcmd 手動將設置設置為“更好”設置,並希望您現在得到更好的計劃。或者,您可以簡單地發出
WITH RECOMPILE
以避免首先出現參數嗅探問題。一個真正有用的徹底閱讀的資源是: