如果我想要位於不同驅動器上的多個表的聯合數據,SQL是否會並行拖動數據?有什麼相關的設置或提示我應該知道嗎?聯合並行...將SQL Server做到這一點嗎?
2
A
回答
5
該聯盟應並行運行,因爲SQL Server 2005中
它不會有所作爲,如果表位於不同的驅動器或相同的驅動器至少。在現代世界中,磁盤可以是虛擬的,或者具有多個讀取磁頭。一個驅動器和多個驅動器之間的區別越來越不相關。
如果您將MAXDOP設置爲1,那麼只會有一個線程。
請注意UNION將比UNION ALL慢得多。
布蘭登。 。 。讓我在這裏迴應。你似乎正在考慮舊式架構。這些肯定還存在。但是,現代磁盤具有多個讀取頭和多個盤片。通常,返回數據的問題涉及控制器級別的帶寬,而不是讀取速度。您還有多個級別的緩存和預讀(有時在文件系統和數據庫級別)。讓數據庫引擎管理這種複雜性通常會更好。
例如,我現在正在使用的機器確實是一臺虛擬機。我使用的磁盤是EMC盒上的分區。處理器是一個大盒子裏的一些處理器。
2
我對SQL Server多線程的理解是,我們應該將它留給查詢優化器 - 查詢將在最優時並行運行。
你可以限制使用MAXDOP
提示的線程數量(請參閱What is the purpose for using OPTION(MAXDOP 1) in SQL Server?)。
默認行爲是在可能和最佳情況下並行運行。
0
我不會指望按照特定順序返回的數據,只能通過聯合查詢的順序返回。
對於我來說,當我必須做這樣的事情時,我總是把整個查詢作爲一個子選擇來處理,只處理排序。像下面
選擇pk_id,從( 選擇pk_id,值從表1 工會 選擇pk_id,值從表2 )爲了通過PK_id,價值
這樣,你永遠不會被你得到什麼驚訝值。
相關問題
- 1. SQL Server將多行合併到一列
- 2. 我想做到這一點在SQL Server
- 3. SQL Server將2行合併到1
- 4. 帶有內部聯接的T-Sql合併命令。這可以做到嗎?
- 5. CouchDB可以做到這一點嗎?
- 6. jquery mouseenter做到這一點,mouseleave做到這一點,請點擊做到這一點,並停止mouseenter/mouseleave事件
- 7. SQL Server:將幾行數據合併到一行中
- 8. SQL Server 2008中的另一種方式來做到這一點
- 9. SQL Server Management Studio的智能感知可以做到這一點嗎?
- 10. C#泛型能做到這一點嗎?
- 11. 如何行合併一行在SQL Server
- 12. SQL Server:兩行合併成一行
- 13. 可以sed做到這一點嗎?
- 14. 如何做到這一點:a = a + 1在sql server查詢?
- 15. 你會如何使用SQL Server 2005來做到這一點?
- 16. Rebol能做到這一點嗎?
- 17. 如果URL = this {//做到這一點} else {//做到這一點}
- 18. drupal可以做到這一點嗎?
- 19. NSFetchedResultContoller可以做到這一點嗎?
- 20. 將SQL結果行合併到一起
- 21. 合併數據一列的多行到一行在SQL Server
- 22. SQL查詢可以做到這一點嗎?
- 23. SQL Server:將多行組合成一行
- 24. 聯合表SQL Server
- 25. 在SQL Server中合併行
- 26. 合併行SQL Server 2014
- 27. SQL Server合併行方法
- 28. 使用SQL Server將多行合併爲一行?
- 29. 在SQL Server中將重複行合併爲一行
- 30. SQL Server查詢:如何將一個SELECT合併到另一個?
嗯...在我看來,磁盤讀取將是最長的部分,如果數據都在同一個磁盤上,那麼我認爲這將是更有意義的閱讀一張表,然後另一個而不是在兩者之間來回走動。但是,如果表格位於單獨的驅動器上,那麼同時讀取這兩個表格會更快。所以我真的不明白你說這是不是有所作爲?我在這裏錯過了什麼? – 2012-07-20 03:20:42