我在许多在线博客上看到这样的建议,即并行是为数据仓库系统而不是OLTP系统而设计的。许多专家甚至建议在OLTP环境中通过将最大并行度设置为1来关闭并行度。我正在尝试为这些建议寻找依据,我的猜测是因为OLTP系统受到许多并发请求的影响,使CPU保持繁忙;查询优化器使用的并行性可能是一种开销。
然而,不是parallelims可以是一种恩惠。通过允许一个请求由多个线程处理,我们可以减少查询处理时间。
试图更深入地研究并行性。关于OLTP系统中的并行性的任何建议。
发布于 2012-05-29 21:53:26
SQL Server只会为开销较大的查询引入并行性。典型的OLTP查询完全不受影响。
在不确切了解正在运行什么工作负载以及该设置对它有什么影响的情况下,使用全局MaxDOP设置时要小心。
发布于 2012-05-29 21:53:48
在OLTP中,您的插入通常是小型、快速的事务,在某些情况下甚至可能是无日志记录的操作。
同样在OLTP中,查询是典型的点查询,这意味着查询将返回单行或非常小的行集。OLTP数据库通常可以包含在内存(表和索引)中,因为OLTP系统对较旧的数据不感兴趣。
大多数人不会在OLTP数据库中执行任何DSS类型的查询。额外的索引、磁盘I/O等会扰乱缓存/任务切换,并可能会损害OLTP性能,这更多地基于延迟。
当你做数据仓库类型的处理时,你需要查看数据的范围,一天的过程,一周/月/年/等等的平均值。这就是并行查询的意义所在。分解问题,将它们交给工作线程并合并结果。
分区、多核/多处理器CPU、适当的磁盘控制器/路径、raid阵列或高速缓存前端磁盘存储(如EMC)都需要进行一些设置,才能从中获得任何真正的好处。它们是为两个完整的问题集而设计的。
https://stackoverflow.com/questions/10800388
复制相似问题