我需要執行大約20條select語句才能獲取我的應用程序的信息。我將結果集合到一箇中,但我不確定是否有更好的方法來解決這個問題(一種更具性能的方式)。T-SQL多選select語句性能
我下面這個方法:
SELECT TB_A.QTD,
TB_B.QTD
FROM
(
SELECT COUNT(1) AS QTD
FROM TB_A WITH(NOLOCK)
WHERE TP = 2
AND A = 1
AND N = @N
) TB_A,
(
SELECT COUNT(1) QTD
FROM TB_B WITH(NOLOCK)
WHERE G = @G
AND U = @U
) TB_B,
...other 18 statements
PS:喜歡@n,@g一些變量和@u是參數的用戶通知。
只是一個警告,NOLOCK可能會導致你所有奇怪的問題,如讀兩遍同一行或完全跳過一些數據。 –
有點偏離主題,但這裏是一篇討論NOLOCK的文章。人們經常使用它,「因爲它使我的查詢更快」。我從來沒有看到任何可行的證據表明他們更快,但我看到很多證據表明他們產生了相當奇怪的結果。 http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/ –
我也建議刪除'NOLOCK'。如果你想要更多的速度,那麼你需要創建適當的索引。這可以顯着提高查詢的速度。 Besindes認爲,通常不需要「幫助」優化器。 –