oracle设置表的并行度是什么意思

oracle设置表的并行度是什么意思,第1张

查看dba_tables数据字典时,可以发现有“DEGREE”字段,这个字段表示的就是数据表的并行度。这个参数的设置,关系着数据库的I/O,以及sql的执行效率。

并行度的优点就是能够最大限度的利用机器的多个cpu资源,是多个cpu同时工作,从而达到提高数据库工作效率的目的。在系统空闲时间,使用并行是个不错的选择,但是好东西总是相对而言,没有绝对的好坏,不当的使用,同样会引起数据库的新的问题产生。

1、 此参数的大小设置

orcl@ SCOTT>select table_name,degree from user_tables

TABLE_NAME DEGREE

------------------------------ --------------------

T1 1

TAB_REGISTER1

EMP 1

EMP_BAK 1

SALGRADE1

BONUS 1

DEPT1

LETTER_USER 1

T2 1

BASE_LOG1

T 1

通过上例的例子大家可以观察,此参数的默认值为1,这个数值,我们认为的增加,当设置表的并行度非常高的时候,sql优化器将可能对表进行全表扫描,引起 Direct Path Read 等待 。

在使用并行查询前需要慎重考虑, 因为并行查询尽管能提高程序的响应时间, 但是会

消耗比较多的资源。 对于低配置的数据库服务器需要慎重。 此外, 需要确认并行度的设置要与 IO 系统的配置相符(建议并行度为 2~4 * CPU 数) 。

2、 并行度的修改

alter table t parallel(degree 1)------直接指定表的并行度

alter table t parallel ----------设置表的并行度为default

3、 如何在sql语句中使用表的并行度,并选择合适的并行等级

示例:使用并行查询的执行计划

并行度为4

orcl@ SCOTT>SELECT /*+ PARALLEL(4) */

2 MAX(sal),

3 AVG(comm)

4FROM emp,dept

5 WHERE emp.deptno=dept.deptno

6 GROUP BY 1

直接用hint即可。例如:

select /*+parallel(o2)*/* from t_objects o

其中o为要开启并行的表的别名,2为并行度。

不过不一定会提升效率,一般查询中使用parallel的情景如下:

需要大量的 表的扫描、连接或者分区索引扫描。

聚合 *** 作(计数)。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11436301.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存