我们可以通过检查“V$PX_SESSION”视图的内容,来实时获得该系统上并行执行出现的情况,该视图展示了哪个并行伺服进程当前正在执行SQL。
即便有了“EXPLAIN PLAN”和SQL跟踪输出,要想知道并行查询是怎么执行的也仍然是很困难的。例如,DOP值到底是多少。
在并行执行SQL的情况下,利用SQL跟踪来调优我们的查询变得多少更困难了些。这是因为参与并行执行的每个进程都有它自己的跟踪文件。
在并行SQL语句使用时,解释计划反映了对于并行SQL语句的额外步骤,反映了并行执行涉及的额外的并行操作。
对于临时查询的执行,你可能想设置明确的DOP。然而,对于内嵌到应用程序中的SQL,这可能不是个好主意,因为该SQL不太可能适应计算机配置。
Oracle试图自动化系统配置来使并行操作的性能最大化。然而,仍然有许多手工调整的空间,我们可以调整数据库,优化SQL并行性能。
并行SQL适合长期运行或者资源密集型语句。在激活和协调多个并行查询处理方面和处理这些进程之间信息流的协调方面是存在开销的。
为了避免使用过度,你需要知道哪些情况该使用并行处理。本文会简单介绍什么时间该使用Oracle数据库的并行SQL,以及如何监视并行SQL。
Oracle采用的大部分算法都是为达成均衡的数据分配而设计的,这些算法包括“HASH”,“ROUND ROBIN”和“RANDOM”分布机制。
在复杂的并行SQL语句中,很重要的一点是要确保该查询执行的所有重要步骤都实现了并行。如果某复杂查询的其中一个步骤是串行执行的,并行的优势就完全丧失了。