如何设置oracle的并行度

如何设置oracle的并行度,第1张

设置并行度:

alter table table_name parallel(degree 4)---4是修改该表并行度

alter table table_name parallel ---修改并行度为默认值

查看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

一般表数据量比较大(超过100万)时,可以使用parallel强制启动并行度来提升查询速度

用法:/*+parallel(table_short_name,cash_number)*/

可以加到insert、delete、update、select的后面来使用

比如:select /*+paralle(t,32)*/ from table t table_short_name使用别名,Parallel后面的数字,越大,执行效率越高,一般用8,10,12,16,32。不过,数值越大,占用的资源也会相对增大。如果在查询where后的条件有加索引查询效率会大大提高。


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

原文地址: https://www.outofmemory.cn/bake/11811459.html

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

发表评论

登录后才能评论

评论列表(0条)

保存