精华内容
下载资源
问答
  • 唯一索引 生产环境已经存在且数据量不大的表 CREATE index "索引名" on "表名"("字段名") tablespace "表空间名" online; 举例: CREATE index IDX_WF_ORDER_CREATE_TIME on WF_ORDER(CREATE_TIME) tablespace ...

    唯一索引

    1. 生产环境已经存在且数据量不大的表
    CREATE unique index "索引名" on "表名"("字段名")  tablespace "表空间名" online;
    

    举例:

     CREATE unique index IDX_WF_ORDER_CREATE_TIME on WF_ORDER(CREATE_TIME)  tablespace TBS_MREAD_IDX online;
    
    1. 新创建的表 建立索引 举例:
    -- 创建表
    CREATE TABLE CON_CONTENT_CHECK_PROCESS_STAT
    (
      AUDITBATCHID NUMBER(19) NOT NULL, 
      SUBMIT_TIME Date NOT NULL,
      CALLBACK_TIME Date,
      MACHINEAUDITSTATUS NUMBER(1) NOT NULL, 
      MATCH_KEY Varchar2(64) NOT NULL,
      RETRYNUM NUMBER(2) NOT NULL
      )TABLESPACE TBS_MREAD_DAT;
      
    ---创建主键 
    ALTER TABLE CON_CONTENT_CHECK_PROCESS_STAT  ADD CONSTRAINT CON_CONTENT_CHECK_PROCE_ST_PK  PRIMARY KEY (AUDITBATCHID) USING INDEX TABLESPACE TBS_MREAD_IDX;
    
    --添加索引
    CREATE unique INDEX CON_CONTENT_CHECK_PROCE_ST_SX ON CON_CONTENT_CHECK_PROCESS_STAT (MACHINEAUDITSTATUS) TABLESPACE TBS_MREAD_IDX;
    CREATE unique INDEX CON_CONTENT_CHECK_PROCE_ST_TX ON CON_CONTENT_CHECK_PROCESS_STAT (SUBMIT_TIME) TABLESPACE TBS_MREAD_IDX;
    CREATE unique INDEX CON_CONTENT_CHECK_PROCE_ST_NX ON CON_CONTENT_CHECK_PROCESS_STAT (RETRYNUM) TABLESPACE TBS_MREAD_IDX;
    

    非唯一索引

    去掉唯一索引中的unique关键字即可

    展开全文
  • oracle 创建 唯一索引非唯一索引

    万次阅读 2017-09-16 13:03:10
    1、打开navicat premium ,打开准备创建索引的数据库的查询编辑器; 2、输入命令:CREATE UNIQUE INDEX 索引名 on 表名(想要创建索引的列名) TABLESPACE 表空间名; CREATE UNIQUE INDEX gcsj0917 ON VEH_...

    步骤如下:

    一、创建唯一索引:

    1、打开navicat premium ,打开准备创建索引的数据库的查询编辑器;

    2、输入命令:CREATE UNIQUE INDEX  索引名 on 表名(想要创建索引的列名) TABLESPACE 表空间名;

    CREATE UNIQUE INDEX gcsj0917 ON VEH_PASSREC_08200916 (GCSJ) TABLESPACE USERS

    如果不知道表空间名怎么查,见3;

    3、查询表空间名、文件ID、字节大小、文件名 

    selecttablespace_name,file_id,bytes/1024/1024,file_name  from dba_data_files order by file_id;


    二、创建非唯一索引:

    1、将unique去掉即可

    CREATE INDEX 索引名 on 表名(列名 DESC)


    展开全文
  • 标签:Oracle优化、索引存储结构、唯一索引非唯一索引、B树索引 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 总结:唯一索引非唯一索引性能更高 应用:前期设计时尽量...

    说明:本文为唯一索引和非唯一索引性能对比参考手册
    用途:本文仅供初学者熟悉了解索引或优化参考
    标签:Oracle优化、索引存储结构、唯一索引、非唯一索引、B树索引
    温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化


    • 总结:唯一索引比非唯一索引性能更高
    • 应用:前期设计时尽量避让索引构建在免非唯一列上
    • 原理:

    在非唯一索引中,数据库通过将rowid作为额外的列附加到键中来存储它。条目添加一个长度字节以使键唯一。

    如下所示的非唯一索引中的第一个索引键是对0、rowid,而不仅仅是0。该数据库根据索引键值和rowid升序对数据进行排序。非唯一索引结构如下:

    在唯一索引中,索引键不包括rowid。数据库仅根据索引键值(如0、1、2等)对数据进行排序。唯一索引结构如下:

    • B树索引结构(非唯一索引)

    如下图8-3所示

    • 索引存储如何影响索引扫描

    位图索引块可以出现在索引段的任何位置。

    上图显示了相邻的叶块。例如,1-10块在11-19块的旁边和前面。这个排序说明了连接索引项的链表。但是,索引块不需要按顺序存储在索引段中。例如,246-250块可以出现在片段中的任何位置,包括直接出现在1-10块之前。因此,有序索引扫描必须执行单块I/O。数据库必须读取一个索引块,以确定接下来必须读取哪个索引块。

    索引块体在堆中存储索引项,就像表行一样。例如,如果值10首先插入到表中,那么键为10的索引项可能插入到索引块的底部。如果接下来将0插入到表中,那么键0的索引项可能会插入到10的项之上。因此,块体中的索引项不是按键顺序存储的。但是,在索引块中,行标头按关键顺序存储记录。例如,头中的第一个记录指向键为0的索引条目,依此类推,直到指向键为10的索引条目的记录。因此,索引扫描可以读取行标头,以确定从哪里开始和结束范围扫描,避免必须读取块中的每个条目。

     


    ※ 如果您觉得文章写的还不错, 别忘了在文末给作者点个赞哦 ~

    over

    展开全文
  • oracle唯一索引

    万次阅读 2018-01-03 11:38:43
    1 oracle支持唯一索引。可以理解为唯一约束。用来控制和约束需要插入的表中字段。(主键自动为唯一约束,且不为空   )。 2 唯一索引,可以理解为:唯一约束,用来控制表中字段的。例如表中有两个或多个字段...
    1 oracle支持唯一索引。可以理解为唯一约束。用来控制和约束需要插入的表中字段。(主键自动为唯一约束,且不为空
    
     
    )。


    2 唯一索引,可以理解为:唯一约束,用来控制表中字段的。例如表中有两个或多个字段。插入数据库时,不希望这些字段值出现重复。则可以将这些字段添加为唯一索引。unique 表示唯一
    如:create  unique index user_password_index on users(username,password);
    格式:create unique index 唯一索引名 on 表名(字段1,字段2..)。
    这样进行插入时,先检查唯一索引值是否出现重复。如果出现重复则报错。


    3 唯一索引也能删除。通过drop index  索引名即可。
    如:drop index user_password_index
    格式:drop index  索引名


    4 唯一索引的字段也可以出现null。而主键不能出现null.




    综述:唯一索引用来控制表中的字段不出现重复的。对表中的字段进行约束。
    例子:
    select * from USERS


    create  unique index user_password_index on users(username,password);
    select * from users
    insert into users values(101,'admin','888888',1)
    insert into users values(102,'xcl','123',1)--如果数据库中出现重复了,则报错
    drop index user_password_index
    展开全文
  • Oracle中,索引有包括很多类型。不同类型的索引适应不同的系统环境和访问场景。其中,唯一索引Unique Index是我们经常使用到的一种。 唯一索引unique index和一般索引normal index最大的差异就是在索引列上...
  • ORACLE创建唯一索引

    千次阅读 2020-05-12 18:34:45
    oracle创建唯一索引 Create UNIQUE Index PK_INSTANCE_ID on TB_DD_APPROVAL_OUT ( INSTANCE_ID ) oracle基于多列的唯一性约束 alter table tb_products add constraint tb_products_u1 unique (product_id,product_...
  • oracle创建唯一索引

    万次阅读 2019-02-13 09:01:24
    1、作为一个好习惯,不要把索引和表格的数据放在同一个表空间。一般索引单独建一个表空间。 2、建立索引切记加online这个参数,尤其是在大表操作。这个参数加上以后,除了create过程中index 保持online状态,Or...
  • Oracle添加唯一索引和唯一键

    千次阅读 2019-11-04 14:15:04
    先添加普通索引 CREATE INDEX 索引名称自己起得 ON 表名(字段名); 再添加唯一键 ALTER TABLE 表名 ADD CONSTRAINT 唯一键名称自己起得UNIQUE(字段名) ENABLE NOVALIDATE; 索引的作用是增加查询速度 唯一键的...
  • oracle 创建唯一索引

    万次阅读 2015-12-21 17:07:42
    oracle中的unique约束是用来保证表中的某一类,或者表中的某一类组合起来不重复的一种手段。我们在可以在创建表时或者创建好后通过修改表的方式来创建oracle中的unique约束。 下面是一些创建unique约束的例子: ...
  • oracle 唯一约束 和 唯一索引

    千次阅读 2016-07-18 11:43:21
    唯一约束 和 唯一索引
  • 唯一索引非唯一索引

    千次阅读 2016-11-13 00:09:47
    Oracle索引的特征上,我们可以简单的把索引分为Unique Indexes and Nonunique Indexes,即唯一索引非唯一索引。 1 对于唯一索引唯一索引确保被索引的字段或多个联合字段在表中绝对不会有重复值;通常,我们在...
  • 创建索引(如果字段为大写,请大写) CREATE INDEX index_p_exam_subject_id_name ON p_exam (SUBJECT_ID,EXAM_NAME); 删除索引drop index index_...创建唯一索引 CREATE UNIQUE INDEX uni_cet4_112_zkzh_kssfz O...
  • --创建唯一索引 create unique index 索引名 on 表名(列名); --创建普通索引 create index 索引名 on 表名(列名); 实际区别: -唯一索引:当前索引列不会有重复的值 -普通索引:当前索引列可能有重复的值 使用...
  • 1、创建唯一约束时会自动创建唯一索引,创建... 3、可以对非唯一索引建立唯一约束。  4、用途不同,索引是为了加快检索速度,约束是为了保证数据完整性。  创建索引:create index metaid_copys on i_copys(met
  • 导出创建非唯一索引脚本的方法 在ORACLE里用逻辑备份工具exp导出数据时,如果使用默认参数, 会把创建索引的语句一起导出来。当数据和索引小的时候,我们可能不太会计较导入时间; 如果数据和索引大的时候,就应该...
  • oracle唯一索引有哪些字段

    千次阅读 2014-03-25 22:34:30
    select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and i.uniqueness='UNIQUE' and t.table_name='B2C_PSN_PAYTYPE'
  • oracle唯一索引

    2017-06-19 10:16:51
    可以有多个null值
  • Oracle 主键外键唯一索引索引

    千次阅读 2016-09-29 17:45:17
    1.查询索引  select table_name,index_name from user_indexes where table_name=upper('test_temp1'); 2.创建主键  (1)创建表的时候创建:  create table test_temp1(id int primary key,name varchar2(20)); ...
  • 创建 唯一索引非唯一索引

    千次阅读 2018-05-10 18:51:16
    2017年09月16日 13:03:10阅读数:2718 步骤如下:一、创建唯一索引:1、打开navicat premium ,打开准备创建索引的数据库的查询编辑器;2、输入命令:CREATE UNIQUE INDEX 索引名 on 表名(想要创建索引的列名) ...
  • oracle唯一索引与普通索引的区别和联系 区别:唯一索引unique index和一般索引normal index最大的差异是在索引列上增加一层唯一约束。添加唯一索引的数据列可以为空,但是只要尊在数据值,就必须是唯一的。 ...
  • 此问题因数据库已经是有数据的,创建唯一索引的那一列有重复的数据,即数据库中的已存在数据不符合要创建索引的条件,导致创建索引的时候会出现ORA-01452找到重复关键字的错误。解决:例 :表中有两个字段 id,year,创建...
  • Oracle中,唯一索引(Unique Index)是我们经常使用到的一种。 唯一索引与普通所以最大的区别是在索引列上增加了一层唯一约束,添加到唯一索引列的值可以为空,但是只要存在数据,那么其值就一定是唯一的。...
  • 参照表上的内容建立2个唯一索引。 1、年字段做唯一索引,相当于主键id,不允许任何重复年份。 2、届次做复合索引,相同的届值只能对应不重复的次。比如可以是:十二届第一次、十二届第二次、十二届第三次,不能...
  • 一般都认为一条数据在表中通过主键字段来唯一确定,但是有时候表中并...(1)主键约束和唯一键约束均会隐式创建同名的唯一索引,当主键约束或者唯一键约束失效时,隐式创建的唯一索引会被删除; (2)主键约束要求列...
  • 区别:唯一索引unique index和一般索引normal index最大的差异就是在索引列上增加了一层唯一约束。添加唯一索引的数据列可以为空,但是只要存在数据值,就必须是唯一的。 联系:(1)Unique Index就是额外添加...
  • 补充下概念:1、普通索引(非唯一索引) 普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件(O...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,070
精华内容 32,428
关键字:

oracle非唯一索引