【Oracle表与索引的分析及索引重建】教程文章相关的互联网学习教程文章

各种Oracle索引类型介绍【代码】

逻辑上:Single column 单行索引Concatenated 多行索引Unique 唯一索引NonUnique 非唯一索引Function-based函数索引Domain 域索引 物理上:Partitioned 分区索引NonPartitioned 非分区索引B-tree:Normal 正常型B树Rever Key 反转型B树 Bitmap 位图索引 索引结构:B-tree:适合与大量的增、删、改(OLTP);不能用包含OR操作符的查询;适合高基数的列(唯一值多)典型的树状结构;每个结点都是数据块;大多都是物理上一层、两层或三...

oracle里表、索引、列的统计信息

一、表的统计信息 表的统计信息用于描述表的详细信息,包括记录数(num_rows)、表块的数量(blocks)、平均行长度(avg_row_len)等典型维度。这些维度可以通过数据字典表DBA_TABLES、DBA_TAB_PARTITIONS和DBA_TAB_SUBPARTITIONS来分别查看表、分区表的分区和分区表的子分区的统计信息。 二、索引的统计信息 索引的统计信息描述了索引的详细信息,它包含了索引的层级(blevel)、叶子块数量(leaf_blocks)、聚簇因子(clustering...

oracle中重建索引【代码】

数据库的索引如果有比较频繁的 Delete 操作, 将可能导致索引产生很多碎片, 所以,在有的时候,需要对所有的索引重新 REBUILD,以便合并索引块,减少碎 片,提高查询速度。 SQL> set heading off SQL> set feedback off SQL> spool d:index.sql SQL> SELECT ‘alter index ‘ || index_name || ‘ rebuild ‘ ||‘tablespace INDEXES storage(initial 256K next 256K pctincrease 0);‘ FROM all_indexes WHERE ( tablespace_name...

Oracle中主键、外键、索引、序列、唯一性约束的创建

1、主键的创建 方法一:直接在sql语句中声明字段主键约束 create table table_name (id type[length] constraint pk_name primary key,name tyoe[length],age type[length],class_id); 方法二:alter更改表添加约束 alter table table_name add constraint pk_name primary key (字段); 删除: alter table table_name drop constraint contraint_name; 重命名: alter table table_name rename constraint old_name to new_name; ...

oracle在组合索引上,只使用部分列进行查询(查询时必须包含前导列,否则会走全表扫描)【代码】

实验环境:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production1、创建表插入数据SQL> create table txtx(id int,name char(2),tx char(3),id1 int,primary key(id,name,tx)); 表已创建。 SQL> insert into txtx values(1,‘tx‘,‘tx‘,1); 已创建 1 行。 SQL> insert into txtx values(2,‘tx‘,‘tx‘,2); 已创建 1 行。 SQL> insert into txtx values(3,‘tx‘,‘tx‘,3); 已创建 1 行。 SQL> comm...

oracle创建全文索引(oracle text)【代码】【图】

table test.QQ_MsgRecord; CREATE TABLEtest.QQ_MsgRecord(msg_group VARCHAR2(200),msg_object VARCHAR2(200),msg_TIME VARCHAR2(200),msg_FROM VARCHAR2(200),msg_content VARCHAR2(4000));--创建全文索引 create index test.idx_QQ_MsgRecord on test.QQ_MsgRecord(msg_content) indextype is ctxsys.context; SELECT * FROM test.QQ_MsgRecord WHERE CONTAINS( msg_content, ‘有‘, 1) > 0; oracle创建全文索引(oracle t...

ORACLE: 查询(看)表的主键、外键、唯一性约束和索引

ORACLE: 查询(看)表的主键、外键、唯一性约束和索引 1、查找表的所有索引(包括索引名,类型,构成列) select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 表名 2、查找表的主键(包括名称,构成列): select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au....

Oracle 12C 新特性之表分区带 异步全局索引异步维护(一次add、truncate、drop、spilt、merge多个分区)

实验准备:-- 创建实验表CREATE TABLE p_andy(ID number(10), NAME varchar2(40))PARTITION BY RANGE (id)(PARTITION p1 VALUES LESS THAN (10),PARTITION p2 VALUES LESS THAN (20));Table created.-- 查看现在表的分区:SQL> col table_name for a25col partition_name for a25select table_name,partition_name,PARTITION_POSITION,tablespace_name,HIGH_VALUE from user_tab_partitions where table_name=‘P_ANDY‘;TABLE_NAM...

通过在Oracle子表外键上建立索引提高性能

1)如果更新了父表的主键(倘若遵循关系数据库的原则,即主键应当是不可变的,这种情况就很少见),由于外键上没有索引,所以子表会被锁住。 2) 如果删除了父表中的一行,整个子表也会被锁住(由于外键上没有索引)。 除了全表锁外,在以下情况下,未加索引的外键也可能带来问题: 1) 如果有ON DELETE CASCADE,而且没有对子表加索引:例如,EMP是DEPT的子表,DELETE DEPTNO = 10应该CASCADE(级联)至EMP。如果EMP中的DEPTNO没...

oracle 监视索引是否使用【代码】

index PK_BKRVW_DS_MEDIAVIEW2_VITO monitoring usage;select * from v$object_usage; oracle 监视索引是否使用标签:oracle 监视 logs style blog dex alt alter monit 本文系统来源:http://www.cnblogs.com/Springmoon-venn/p/6888674.html

【Oracle】Oracle索引【代码】【图】

对于数据库来说,索引是一个必选项,但对于现在的各种大型数据库来说,索引可以大大提高数据库的性能,以至于它变成了数据库不可缺少的一部分。 索引分类: 逻辑分类 single column or concatenated    对一列或多列建所引 unique or nonunique    唯一的和非唯一的所引,也就是对某一列或几列的键值(key)是否是唯一的。 Function-based   基于某些函数索引,当执行某些函数时需要对其进行计算,可以将某些函数的计算结...

【PLSQL】Oracle函数与索引【图】

6.1 引言 6.2 创建函数 6.3 存储过程 6.3.1创建过程 6.3.2调用存储过程 6.3.3 AUTHID 6.3.4 PRAGMA AUTONOMOUS_TRANSACTION 6.3.5开发存储过程步骤 6.3.6删除过程和函数 6.3.7过程与函数的比较 6.1 引言 过程与函数(另外还有包与触发器)是命名的PL/SQL块(也是用户的方案对象),被编译后存储在数据库中,以备执行。因此,其它PL/SQL块可以按名称来使用他们。所以,可以将商业逻辑、企业规则写成函数或过程保存到数据库中,以便...

Oracle索引批量重置笔记

---单个索引重置语句 alter index indexname rebuild; ---查询数据索引对象语句 select * from user_indexes; ------将数据库的索引(含有$字符的索引无法被重建)批量生成索引重置语句导出,批量执行 select ‘alter index ‘||index_name||‘ rebuild;‘ as sql from user_indexes where index_name not in(select index_name from user_indexes where index_name like ‘%$%‘); Oracle索引批量重置笔记标签:select 重置...

oracle sql 基础(五):数据定义语言(创建和管理序列、索引、同义词)【代码】【图】

序列是用户创建的数据库对象,可以被多个用户共享。 序列的一个典型的用途是创建一个主键的值,它对于每一行必须是唯一的。序列由一个Oracle内部程序产生并增加或减少。 序列是一个节省时间的对象,因为它可以减少应用程序中产生序列程序的代码量。 序列号独立于表被存储和产生,因此,相同的序列可以被多个表使用。 1.1 定义和查询序列 用CREATE SEQUENCE语句自动产生序列数。语法:CREATE SEQUENCE sequence --s...

java:Oracle(视图,索引,序列)

-- 在oracle中,  -- normal:普通索引  -- unique:唯一索引  -- bitmap:位图索引  -- B 树索引:默认:如果不建立索引的情况下,oracle就自动给每一列都加一个B 树索引 -- index(下标,索引):作为索引,在oracle如果自带索引能满足当前查询需求,就只需要建立索引,oracle自带机制会帮你使用  -- 如果当前查询oracle自带的索引满足不了,就要自己编写索引 (不学)   -- 索引就可以直接理解为一个目录   -- 二叉树...