如果我想合并位于不同驱动器上的多个表的数据,SQL 会并行提取数据吗?有什么我应该了解的相关设置或提示吗?
至少从 SQL Server 2005 开始,UNION 应该并行运行。
如果表位于不同驱动器或同一驱动器上,则没有什么区别。在现代世界中,磁盘可以是虚拟的,或者具有多个读取头。一个驱动器和多个驱动器之间的区别越来越不重要。
如果将 MAXDOP 设置为 1,则只会有一个线程。
请注意,UNION 将比 UNION ALL 慢得多。
布兰登. 。 。让我在这里回应一下。您似乎正在考虑旧式架构。这些肯定仍然存在。然而,现代磁盘具有多个读取头和多个盘片。通常,返回数据的问题涉及控制器级别的带宽,而不是读取速度。您还具有多个级别的缓存和预读(有时在文件系统和数据库级别)。让数据库引擎来管理这种复杂性通常会更好。
例如,我现在正在使用的机器实际上是一台虚拟机。我使用的磁盘是 EMC 盒子上的一个分区。处理器是一个大盒子里的一组处理器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)