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后的条件有加索引查询效率会大大提高。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)