我在循環中測試查詢性能。我不想返回結果集的重複數百個,我想運行一個select語句幾百次,每次都丟棄結果。TSQL等效於PostgreSQL「PERFORM」關鍵字?
PostgreSQL的語法爲「執行select ...」,它將執行select語句並放棄結果。 「37.6.2。執行沒有結果的查詢」http://www.postgresql.org/docs/8.2/static/plpgsql-statements.html
TSQL中是否存在等價關鍵字?
我知道SSMS有一個「放棄結果」選項,但是看起來結果在每次迭代後都不會丟棄,並且在所有迭代完成之前仍會在內存中累積。我猜想選擇一個臨時變量可能會起作用,但只要丟棄關鍵字的結果就簡單多了。我寧願避免構建表變量定義以及將結果存儲在臨時表中的潛在開銷。
我使用TSQL而不是ADO.Net運行它。這個問題不是無視結果集的問題,據我所知,這是所有的ExecuteNonQuery完成的。問題是爲了確保當每個SELECT語句完成時SQL Server會放棄結果集,當在單個TSQL批處理循環中發出數千個選擇語句時,它可以有效地測試語句的性能,而不會浪費可能的資源干擾測試。 – Triynko