5
A
回答
1
我寧願在臨時表上執行自加入而不是派生表。
CREATE TEMPORARY TABLE foo AS SELECT ...;
SELECT ... FROM foo f1 JOIN foo f2 ON ...conditions...;
與使用派生的表,在那裏你必須兩次寫整個查詢:
SELECT ...
FROM (SELECT ...)
JOIN (SELECT ...) ON ...conditions...;
但另一種解決方案是使用公用表表達式這是源自表稍有不同:
WITH foo AS (SELECT ...)
SELECT ... FROM foo f1 JOIN foo f2 ON ...conditions...;
假設您使用支持此語法的數據庫品牌(Microsoft,Oracle,IBM,PostgreSQL)。
1
範圍可能是一個。我認爲臨時表可以被其他事務/過程等訪問。派生表僅限於聲明它們的塊。
1
如果你有訪問數據的臨時表中多個查詢它可能是成本更低,以避免重複產生的臨時數據:
CREATE TEMPORARY TABLE foo AS SELECT ...;
SELECT ... FROM foo WHERE ...conditions...;
-- sometime later
SELECT ... FROM foo WHERE ...different conditions...;
相關問題
- 1. 什麼時候適合使用雙向關聯,什麼時候不適用?
- 2. 什麼時候使用IoC合適?
- 3. 什麼時候適合(真)回合?
- 4. 什麼時候MVC模式合適?
- 5. 什麼時候工廠適合?
- 6. 什麼時候應該使用AWS,什麼時候不使用
- 7. intn_t什麼時候使用它,什麼時候不使用
- 8. 什麼時候使用適配器和什麼時候使用inflater
- 9. 什麼時候適合使用手風琴?
- 10. 什麼時候適合使用泛型與繼承?
- 11. 什麼時候適合在Rails 2.1中使用Time#utc?
- 12. 什麼時候適合使用'new'關鍵字?
- 13. 什麼時候適合使用HTTP 412錯誤進行響應?
- 14. 什麼時候守衛表情適當?
- 15. 什麼時候使用GWT,什麼時候不需要
- 16. ZF2什麼時候使用getServiceLocator()什麼時候不到
- 17. SQL Server CASE什麼時候不使用CASE什麼時候
- 18. 什麼時候謂詞合適,什麼是最佳使用模式
- 19. 什麼時候Doctrine 2使用組合鍵發生錯誤?
- 20. 什麼時候使用存儲過程對錶值函數是合適的
- 21. 什麼時候使用__proto__和什麼時候使用原型
- 22. 什麼時候使用Ruby和什麼時候使用PHP
- 23. 什麼時候去原生android應用程序,什麼時候去混合模型使用HTML5
- 24. 什麼時候使用信號和插槽,什麼時候不使用
- 25. 在合適的時候使用的CoffeeScript
- 26. 什麼時候在顛覆中合併使用--ignore-ancestry選項是合適的
- 27. 什麼時候發生?
- 28. 什麼時候會發生?
- 29. 什麼時候發生SKErrorClientInvalid?
- 30. 什麼時候生成MSIL?
那[問題被標記爲SQL Server](HTTP ://stackoverflow.com/questions/2326395/which-one-have-better-performance-derived-tables-or-temporary-tables),所以信息應該被視爲特定於它而不是所有數據庫。 – 2010-06-30 16:19:47