Oracle 索引创建、表分区

--EAF_WORKFLOWSTEP 表创建
CREATE TABLE EAF_WORKFLOWSTEP
(
    WFS_ID NUMBER (10) NOT NULL PRIMARY KEY USING INDEX TABLESPACE I_JSEPMS,
    WFS_RELATEDDOMAIN NVARCHAR2 (50) NULL,    --自动转换非空为可空,需在resultMap中添加nullValue=""
    WFS_RELATEDDOMAINID NVARCHAR2 (50) NULL,    --自动转换非空为可空,需在resultMap中添加nullValue=""
    WFS_PRESTEPID NUMBER (10) NULL,
    WFS_STEPDESCRIPTION NVARCHAR2 (500) NULL,
    WFS_STEPTYPE NVARCHAR2 (50) NULL,    --自动转换非空为可空,需在resultMap中添加nullValue=""
    WFS_ACTIONUSERID NVARCHAR2 (50) NULL,
    WFS_ACTIONTIME TIMESTAMP NULL,
    WFS_ACTIONTYPE NVARCHAR2 (50) NULL,
    WFS_ACTIONRESULT NVARCHAR2 (500) NULL,
    WFS_ACTIONCOMMENT NCLOB NULL,
    WFS_ADDITIONALDATA NVARCHAR2 (500) NULL,
    WFS_RECORDTIME TIMESTAMP DEFAULT SYSDATE NOT NULL,
    WFS_DELETETIME TIMESTAMP NULL,
    WFS_ID_OLD NUMBER (10) NULL,
    WFS_UPDATETIME TIMESTAMP DEFAULT SYSDATE NULL
)
 
PARTITION BY RANGE ( WFS_ID)
(
    PARTITION WFS_PART1 VALUES LESS THAN ( 5000000) TABLESPACE D_JSEPMS ,
    PARTITION WFS_PART2 VALUES LESS THAN ( 10000000) TABLESPACE D_JSEPMS , 
    PARTITION WFS_PART3 VALUES LESS THAN ( 15000000) TABLESPACE D_JSEPMS ,
    PARTITION WFS_PART4 VALUES LESS THAN ( 20000000) TABLESPACE D_JSEPMS ,  
);
 
 
一、索引分区
Oracle中并没有区分表空间里放的是表还是索引,所有当数据量比较小时,完全可以把表和索引放在同一个表空间里,但随着数据量的增大,最好还是把表和索引分开存储在不同的表空间里。
 
二、查找所有索引
通过脚本查询SQL数据库中所有索引,以PK开头的是主键索引、IX或者index开头的是普通索引,PK开头的索引在Oracle中不需要创建
查看所有SQL中的索引
SELECT  indexname = a.name,       --索引名称
tablename = c. name ,       --表名
indexcolumns = d .name ,    --索引列
a .indid          --索引类型
FROM    sysindexes a
JOIN sysindexkeys b ON a .id = b .id  AND a .indid = b.indid
JOIN sysobjects c ON b .id = c .id
JOIN syscolumns d ON b .id = d .id  AND b .colid = d .colid
WHERE   a .indid NOT IN ( 0 , 255 )  AND
c .name in (SELECT NAME FROM SYSOBJECTS WHERE TYPE='U') --查指定表
ORDER BY c. name ,
        a.name ,
        d.name
三、编写相关索引脚本
--普通索引
create index 索引名 on 表名 (列名)  tablespace 表空间;
create index I索引名 on 表名 (列名[, 列名, ....]);
--可以有多个列
--唯一索引
create unique 索引名 on 表名 (列名); --单列
create unique I索引名 on 表名 (列名[, 列名, ....]);
--可以有多个列
—删除索引
drop index  index_Name
四、查询所有索引
 select object_name,created from user_objects where object_type='INDEX'     -名称 创建时间
--这个可以查出来表名,索引名,索引列
SELECT table_name, index_name, column_name, column_position FROM user_ind_columns WHERE (index_name like 'SYS_%' or index_name like 'IX_%')
原文地址:https://www.cnblogs.com/huxiaoli/p/6101354.html