Sql-Server

使用 SQLCMD 執行查詢與使用 SSMS 執行查詢

  • August 6, 2012

我注意到一些我不確定的事情。難道直接使用 SSMS 執行查詢比使用 SQLCMD 執行查詢要快得多嗎?我注意到使用 SSMS 執行的查詢結果寫入磁碟的速度要快得多。

有什麼區別?

謝謝。

差異可能是由於SET設置,例如SET ARITHABORT. 發生的情況是,在決定使用的計劃時會考慮這些設置,有時您可能會因一個設置而陷入非常糟糕的計劃(這可能是因為該應用程序使用了非最佳參數),反之亦然設置有一個很好的計劃。

您可以通過在查詢執行時檢查 sys.dm_exec_requests 和 sys.dm_exec_sessions 來發現正在使用的設置。後者有用於各種設置的列(但您必須從前者中找出 session_id)。發現差異後,您可以從 sqlcmd 手動將設置設置為“更好”設置,並希望您現在得到更好的計劃。或者,您可以簡單地發出WITH RECOMPILE以避免首先出現參數嗅探問題。

一個真正有用的徹底閱讀的資源是:

應用程序慢,SSMS 快?

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