Oracle使用并行建索引须要注意的问题

建索引时。我们为了建索引快。会加上并行,加上并行之后。此列索引就会是并行了。

訪问有并行度的索引时,CBO可能可能会考虑并行运行。这可能会引发一些问题,如在server资源紧张的时候用并行会引起更加严重的争用。当使用并行后,须要把并行度改回来。

SQL> drop table test purge;

SQL> create table test as select * from dba_objects;

SQL> create index ind_t_object_id on test(object_id) parallel 4 ;

SQL> select s.degree

from dba_indexes s

where s.index_name = upper(‘ind_t_object_id‘);

DEGREE

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

4

SQL> alter index ind_t_object_id noparallel;

SQL> select s.degree

from dba_indexes s

where s.index_name = upper(‘ind_t_object_id‘);

DEGREE

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

1

时间: 12-23

Oracle使用并行建索引须要注意的问题的相关文章

Oracle使用并行建索引需要注意的问题

建索引时,我们为了建索引快,会加上并行,加上并行之后,此列索引就会是并行了.访问有并行度的索引时,CBO可能可能会考虑并行执行,这可能会引发一些问题,如在服务器资源紧张的时候用并行会引起更加严重的争用.当使用并行后,需要把并行度改回来. SQL> drop table test purge; SQL> create table test as select * from dba_objects; SQL> create index ind_t_object_id on test(obje

Oracle使用并行索引需要注意的问题

当索引的结构.我们要建立索引快.它将并行加,加平行后.这将平行的列索引. 当并行度索引访问,CBO你可能会考虑并行运行,这可能会导致一些问题.作为server候用并行会引起更加严重的争用.当使用并行后.须要把并行度改回来. SQL> drop table test purge; SQL> create table test as select * from dba_objects; SQL> create index ind_t_object_id on test(object_id)

深入学习Oracle分区表及分区索引

关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2而言,基本上可以分成几类: •       Range(范围)分区 •       Hash(哈希)分区 •       List(列表)分区 •       以及组合分区:Range-Hash,Range-List. 对于表而言(常规意义上的堆组织表),上述分区形式都可以应用(甚至可以对某个分区指定compress属性),只不过分区依赖列不能是lob,long之类数据类型,每个表的分区

oracle执行计划不走索引的原因总结

在Oracle数据库操作中,为什么有时一个表的某个字段明明有索引,当观察一些语的执行计划确不走索引呢?如何解决呢?本文我们主要就介绍这部分内容,接下来就让我们一起来了解一下.一. 不走索引大体有以下几个原因: 你在Instance级别所用的是all_rows的方式 你的表的统计信息(最可能的原因) 你的表很小,上文提到过的,Oracle的优化器认为不值得走索引. 解决方法: 可以修改init.ora中的OPTIMIZER_MODE这个参数,把它改为Rule或Choose,重起数据库.也可以使用4

oracle parallel 并行 设置 理解

引子:以前一直没太关注oracle并行这个特性.前几天一个兄弟碰到的一个问题,才让我觉得这个东西还是有很多需要注意的地方,有必要仔细熟悉下.其实碰到的问题不复杂: 类似如下的一条语句:insert into xxxx select /+parallel(a) / * from xxx a;数据量大约在75G左右,这位兄弟从上午跑到下午还没跑完,过来问我咋回事,说平常2hrs能跑完的东西跑了好几个小时还撒动静.查看系统性能也比较 正常,cpu,io都不繁忙,平均READ速度在80M/s左右(勉强凑

oracle 分区和分区索引

一.个人理解:建表时一般都会指定在一个表空间上,但是可能随着表空间扩大,查询越来越慢,分区表就是将一个表实际存在不同的表空间,oracle存储分为块,断,表空间.新建一个表,会给表分配指定大小的段,段里包含存储块,高水位线就是指段空间被撑大了. 表空间和分区的区别: (1)表空间是逻辑存储单位,所有的表段放在表空间里.至于表的分区,也可看作一个逻辑段,属于比表空间小一级的逻辑存储单位. (2)他们根本不是一个概念,表空间是由多个数据文件组成的,可以这么说  块组成了段,段组成了表空间,表空间组成

【三思笔记】 全面学习Oracle分区表及分区索引

[三思笔记]全面学习Oracle分区表及分区索引 2008-04-15 关于分区表和分区索引(About PartitionedTables and Indexes) 对于 10gR2 而言,基本上可以分成几类: v  Range(范围)分区 v  Hash(哈希)分区 v  List(列表)分区 v  以及组合分区:Range-Hash,Range-List. 对于表而言(常规意义上的堆组织表),上述分区形式都可以应用(甚至可以对某个分区指定 compress 属性),只不过分区依赖列不能是

Oracle查询表信息(索引,外键,列等)

oracle查询表信息(索引,外键,列等) oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯一性约束信息,索引信息查询SQL如下,希望对大家有所帮助: 1.查询出所有的用户表 select * from user_tables 可以查询出所有的用户表 select owner,table_name from all_tables; 查询所有表,包括其他用户表 通过表名过滤需要将字母作如下处理 select * from user_tables where table_name

Oracle 10g AND Oracle 11g手工建库案例--Oracle 10g

Oracle 10g AND Oracle 11g手工建库案例--Oracle 10g 系统环境: 操作系统: RedHat EL6 Oracle:  Oracle 10g and Oracle 11g 手工建库相对来说非常easy实现,本案例是从10g和11g,通过手工建库的方式做一个简单的对照,能够看出11g和10g之间的一个简单的差异! 案例一: 在Oracle 10g 环境下手工建库 DB_NAME='cuug' INSTANCE_NAME='cuug' 1.建立Instance的初始化