0

许多在线博客我看到一个建议,说并行性适用于数据仓库系统,而不适用于 OLTP 系统。许多专家甚至建议通过在 OLTP 环境中将最大并行度设置为 1 来关闭并行度。我正在尝试为此类建议寻找依据,我的猜测是因为 OLTP 系统会受到许多并发请求的影响,从而使 CPU 处于忙碌状态;查询优化器使用的并行性可能是一种开销。

然而,并行不是一个福音。通过允许多个线程处理请求,我们可以减少查询处理时间。

试图更深入地研究并行性。关于 OLTP 系统中的并行性的任何建议。

4

2 回答 2

1

SQL Server 只会为昂贵的查询引入并行性。典型的 OLTP 查询根本不受影响。

小心使用全局 MaxDOP 设置,而不要确切了解正在运行的工作负载以及该设置对它的作用。

于 2012-05-29T13:53:26.203 回答
1

在 OLTP 中,您的插入通常是小型、快速的事务,在某些情况下甚至可能是非日志操作。

同样在 OLTP 中,查询是典型的点查询,这意味着查询将返回单行或非常小的行集。OLTP 数据库通常可以包含在内存中(表和索引),因为旧数据不是 OLTP 系统感兴趣的东西。

大多数人不在 OLTP 数据库中执行任何 DSS 类型查询。额外的索引、磁盘 I/O 等会干扰缓存/任务切换,并且会损害 OLTP 性能,这更多地基于延迟。

当您进行数据仓库类型处理时,您会查看数据范围、一天的过程、一周/月/年/等的平均值。这就是并行查询有意义的地方。分解问题,将它们交给工作线程并合并结果。

需要进行一些设置才能从中获得任何真正的好处,分区、多核/多处理器 CPU、适当的磁盘控制器/路径、raid 阵列或缓存前端磁盘存储(如 EMC)。它们是为两个完全问题集而设计的。

于 2012-05-29T13:53:47.643 回答