首页 > 数据库 >Oracle索引并行度

Oracle索引并行度

时间:2022-09-22 22:44:45浏览次数:58  
标签:PARALLEL parallel 索引 Oracle 并行度 CPU

一.Rebuild索引与并行度说明

在索引create和rebuild的时候,在CPU允许的情况下,我们可以使用parallel来加快操作的速度。但是这里有一个注意的问题,有关索引的并行度,这个对表对象同样值得注意。
对于OLTP类型的数据库,除非只用于做统计、报表类的表或索引,不建议对相关表、索引设置并行度。
在数据库有开启并行查询的情况下,在表或索引上存在默认并行度,将导致数据库优先采用全表或全索引扫描的执行计划,另外将生成多个并行子进程,对于OLTP类应用将反而降低相关SQL的执行效率。

有关parallel,官网的说明如下:

The parallel_clause letsyou parallelize creation of the table and set the default degree of parallelismfor queries and the DML INSERT, UPDATE, DELETE,andMERGE after table creation.

(1)NOPARALLEL: Specify NOPARALLEL forserial execution. This is the default,即并行度为1.

(2)PARALLEL: Specify PARALLEL ifyou want Oracle to select a degree of parallelism equal to the number of CPUsavailable on all participating instances times the value ofthe PARALLEL_THREADS_PER_CPU initialization parameter.

(3)PARALLEL integer: Specificationof integer indicates the degree of parallelism, which is thenumber of parallel threads used in the parallel operation. Each parallel threadmay use one or two parallel execution servers. Normally Oracle calculates the optimumdegree of parallelism, so it is not necessary for you to specify integer.

Oracle在并行处理时,会启动多少个并行进程来同时执行任务,并行度越高, 并行进程越多,执行速度 会越快,默认是noparallel,如果我们设置并行度为default值,那么此时的并行度是:

服务器CPU数*每个CPU启用的线程数(PARALLEL_THREADS_PER_CPU)

所以一般我们建议使用Noparallel,或者将并行度设置为1,而不是default。

可以通过dba_tables 和 dba_indexes 视图的degree 字段来查看相关对象的并行度。

要注意的就是在我们用并行来rebuild索引的时候,rebuild结束后,我们索引的并行度也会改成我们rebuild的并行度,所以在我们rebuild结束之后还需要对索引的并行度进行一个修改操作。

标签:PARALLEL,parallel,索引,Oracle,并行度,CPU
From: https://www.cnblogs.com/JaxYoun/p/16721107.html

相关文章

  • 【灵光一闪】新的百度搜索引擎使用思路
    程序员行业有一句俗话,叫做“面向百度编程”、“面向CV编程”,就是指当我们遇到某些问题的时候回去百度上寻找答案,然后复制黏贴过来,虽然在程序员行业中百度搜索引擎的口碑始......
  • Oracle DBCA 静默删除以及建库的脚本
    No.1背景公司最近有一个测试环境需要重新备份恢复但是里面有6个数据库实例400多G的数据文件.一般情况下需要dropuserxxxcascade;然后执行droptablespacexxx......
  • Oracle循环设置表权限
      beginforiin(select'grantselecton'||table_name||'toimes'asstmfromuser_tableswheretable_namenotlike'%$%' )loop......
  • 8. Numpy索引和切片
    1.前言在NumPy中,如果想要访问,或修改数组中的元素,您可以采用索引或切片的方式,比如使用从0开始的索引依次访问数组中的元素,这与Python的list列表是相同的。NumPy......
  • Oracle启动监听报错:The listener supports no services解决
    前几天一台项目开发使用的Oracle11g服务器重启系统之后,出现了几个莫名的报错,下面是其中一个,已解决。$lsnrctlstart报错提示:ThelistenersupportsnoservicesTheco......
  • ORACLE11gR2完全卸载
     1. 停止“服务”中所有的ORCLE服务。进入服务的方法很多,如:(1)在运行中输入services.msc,然后找到所有跟oracle 有关的服务。(2)开始->设置->控制面板->管理工具->服......
  • elasticsearch的.security-7索引崩溃恢复笔记
    装了es三方插件重启后出现以下问题failedtoauthenticateuser[elastic]failedtoretrievepasswordhashforreserveduser[elastic]org.elasticsearch.action.......
  • mysql索引优化:唯一性太低的字段
    除非特殊情况,否则不要在唯一性太低的字段上面添加索引。 什么叫唯一性太低?主要是一些表示状态或者类型的字段,例如:性别、是否删除等。 为何?mysql在查询时,会将索引中......
  • Oracle删除表空间和用户
    删除oracle用户和表空间的方法删除用户1dropuser用户名称cascade;删除表空间1DROPTABLESPACEtablespace_nameINCLUDINGCONTENTSANDDATA......
  • cmd导入导出Oracle数据库命令
    导入与导出,如下:数据导出:exp用户名/密码@网络服务名file=xxx.dmptables=(表名);eg:expuser/[email protected]=d:\dbbackup\file1221_zwy.dmplog=d:\dbbac......