2010-08-12 75 views
1

我只是想知道哪種方法更好。複雜選擇查詢與創建臨時表,然後將值插入臨時表然後選擇它

  1. 在select子句中創建一個複雜的select查詢,其中包含許多CASE WHEN THEN ... ELSE ... END語句或子查詢。

  2. 創建一個臨時表,然後插入並更新它。最後select * from @tempTable

這個問題只適用於複雜的查詢不是簡單連接或只是當一些小的信息必須從其他桌上拿起。

回答

2

爲了便於和快速發展,2以我的經驗。

對於性能 - 它取決於您加入的行數和表的數量,以及取回的數量。在內存臨時表中(因爲它看起來像你的建議)有開銷,這顯然是他們正在使用的內存。

我會堅持到2號如前所述,除非你正在與沃爾瑪合作規模的數據則擔心性能,如果它成爲一個問題 - 「硬件便宜,編寫軟件是昂貴的」