Sql-Server-2008-R2

有沒有辦法告訴 SQLCMD 不要將行輸出到文本或文件?

  • May 7, 2020

我正在測試使用 SQLCMD 返回 170,000,000 行的 SELECT 語句的行為。我的目標是減少在客戶端接收結果集所花費的時間(在將輸出文件寫入磁碟時程序顯示 ASYNC_NETWORK_IO 等待類型的時間)。我想讓 SQLCMD 執行我的 SELECT 語句,但不實際保存或輸出結果集。只返回受影響的行數就可以了。這可能嗎?

sqlcmd -E -t 0 -S server\instance -d databaseName -i hugeselect.sql -o none?

這不是專門針對 SQLCMD 的答案(我不知道丟棄結果的選項),但是測試查詢性能並忽略網路成本或客戶端渲染的選項是使用免費的SentryOne 計劃探險家。根據設計,我們將結果放在伺服器上,而不是將它們帶到伺服器上,讓您專注於查詢的實際性能,而不是網路性能或桌面功能。

您可以嘗試將其傳遞給 nul,看看是否有幫助,例如:

sqlcmd -E -t 0 -SyourServer -Q"SELECT * FROM sys.objects" > nul

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