oracle怎么开并行 oracle并行查询sql语句

oracle 建索引怎么开启并行?建索引时,我们为了建索引快,会加上并行 , 加上并行之后,此列索引就会是并行了 。访问有并行度的索引时,CBO可能可能会考虑并行执行,这可能会引发一些问题,如在服务器资源紧张的时候用并行会引起更加严重的争用 。当使用并行后 , 需要把并行度改回来 。\x0d\x0aSQL drop table test purge;\x0d\x0aSQL create table test as select * from dba_objects;\x0d\x0aSQL create index ind_t_object_id on test(object_id) parallel 4 ;\x0d\x0aSQL select s.degree\x0d\x0afrom dba_indexes s\x0d\x0awhere s.index_name = upper('ind_t_object_id');\x0d\x0aDEGREE\x0d\x0a----------------------------------------\x0d\x0a4\x0d\x0a\x0d\x0aSQL alter index ind_t_object_id noparallel;\x0d\x0a\x0d\x0aSQL select s.degree\x0d\x0afrom dba_indexes s\x0d\x0awhere s.index_name = upper('ind_t_object_id');\x0d\x0aDEGREE\x0d\x0a----------------------------------------\x0d\x0a1
oracle开并行数据库时间sql执行时间很长超过10分钟 。在OLAP系统中,当表的数据量很大 , 超过100W , sql执行时间很长超过10分钟,且执行计划正常时考虑开启并行数据库 。OracleDatabase,又名OracleRDBMS,或简称Oracle,是甲骨文公司的一款关系数据库管理系统 。
如何配置Oracle并行处理Oracle试图自动化系统配置来使并行操作oracle怎么开并行的性能最大化 。然而oracle怎么开并行,仍然有许多手工调整的空间,oracle怎么开并行我们可以调整数据库,优化SQL并行性能 。
判断并行度
合适的并行度DOP对于良好的并行性能很关键 。Oracle会按如下方式设定DOPoracle怎么开并行:
1、如果指定或请求了并行执行 , 但是没有指定DOP,默认DOP会设置为该系统上CPU内核数量的两倍 。对于RAC系统,DOP值会是整个集群内核数量的两倍 。默认值是由配置参数“PARALLEL_ THREADS_PER_CPU”控制的 。
2、对于Oracle 11g R2之后的版本 , 如果“ PARALLEL_DEGREE_POLICY”被设置为“AUTO”,Oracle将根据被执行的运行性质和涉及对象的大小自动调整DOP值 。
3、如果“PARALLEL_ADAPTIVE_MULTI_USER”被设置为“TRUE”,Oracle将基于该系统的整个负载调整DOP 。当系统承受更重的负载时 , DOP值将会减少 。
4、在Oracle 11g或者更高版本中,如果“PARALLEL_IO_CAP ”被设置为TRUE,Oracle将把DOP限制为IO子系统可以支持的值 。这些IO子系统限制可以通过“DBMS_RESOURCE_ MANAGER.CALIBRATE_IO”存储过程计算 。
5、DOP可以被指定到表或者索引一级,可以通过在“CREATE TABLE”,“CREATE INDEX”,“ALTER TABLE”或者“ALTER INDEX”中使用“PARALLEL ”从句来实现 。
6、“PARALLEL ”关键字可以被用来指定某个查询中指定表的DOP 。
7、不管任何其它设置 , DOP不能超过“PARALLEL_MAX_SERVERS”可以支持的数量 。对于大部分SQL语句,服务器数量需要是请求DOP的两倍 。
正如我们可以在图13-4中看到的,超过优化点增减DOP会导致进一步性能提升的失败 。然而 , 超过最佳优化限制强行增加DOP值会对整个系统性能带来重大的负面影响 。尽管被并行化的SQL可能不会随着DOP的增加而降低,但是该系统的负载会持续增加,而且会引起其它并发运行的SQL要遭受响应时间降低的影响 。
图13-5展示了增加DOP会如何影响CPU利用率 。当我们达到最优DOP点时(该系统中的值大约是8) , 查询时间的减少变的平缓了 。然而,其它会话在等待CPU可用上花费的时间会持续增长 。其它等待访问CPU的会话将需要继续等待,这会导致响应时间变慢 。
oracle 并行模式(parallel)一般表数据量比较大(超过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后的条件有加索引查询效率会大大提高 。
【oracle怎么开并行 oracle并行查询sql语句】oracle怎么开并行的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle并行查询sql语句、oracle怎么开并行的信息别忘了在本站进行查找喔 。

    推荐阅读