分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
SQL> create user test100 identified by test100 ;User created.SQL> grant dba to test100;Grant succeeded.ALL_IND_PARTITIONS 描述,对于每个index 分区访问到当前用户, 分区级别分区信息, 分区的存储参数相关的视图:DBA_IND_PARTITIONS 描述所有的index 分区在数据库INDEX_OWNER 索引所有者INDEX_NAME 索引名字PARTITION_NAME 分区名字drop table T48_TRANSACTION_MODEL;create table T48_TRANSACTION_MODEL( trandate DATE, orgid VARCHAR2(11), stan NUMBER, subjectno VARCHAR2(10), subjectname VARCHAR2(50), acctid NUMBER)partition by range (TRANDATE)( partition XYZ_20100000 values less than (TO_DATE(' 2011-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')), partition XYZ_20110101 values less than (TO_DATE(' 2011-01-02 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')), partition XYZ_20110102 values less than (TO_DATE(' 2011-01-03 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')), partition XYZ_20110103 values less than (TO_DATE(' 2011-01-04 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')), partition XYZ_20110104 values less than (TO_DATE(' 2011-01-05 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')), partition XYZ_20110105 values less than (TO_DATE(' 2011-01-06 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')), partition XYZ_20110106 values less than (TO_DATE(' 2011-01-07 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')), partition XYZ_20110107 values less than (TO_DATE(' 2011-01-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')));SQL> select * from dba_ind_partitions where index_owner='TEST100';no rows selectedcreate index T48_TRANSACTION_MODEL_IDX1 on T48_TRANSACTION_MODEL(stan) local;create index T48_TRANSACTION_MODEL_IDX2 on T48_TRANSACTION_MODEL(acctid) ;SQL> select index_owner,index_name,partition_name from dba_ind_partitions where index_owner='TEST100';INDEX_OWNER INDEX_NAME PARTITION_NAME------------------------------ ------------------------------ ------------------------------TEST100 T48_TRANSACTION_MODEL_IDX1 XYZ_20110107TEST100 T48_TRANSACTION_MODEL_IDX1 XYZ_20110106TEST100 T48_TRANSACTION_MODEL_IDX1 XYZ_20110105TEST100 T48_TRANSACTION_MODEL_IDX1 XYZ_20110104TEST100 T48_TRANSACTION_MODEL_IDX1 XYZ_20110103TEST100 T48_TRANSACTION_MODEL_IDX1 XYZ_20110102TEST100 T48_TRANSACTION_MODEL_IDX1 XYZ_20110101TEST100 T48_TRANSACTION_MODEL_IDX1 XYZ_201000008 rows selected.查看是否是分区索引:SQL> select owner,index_name,index_type,table_owner,table_name,table_type,partitioned from dba_indexes where owner='TEST100';OWNER INDEX_NAME INDEX_TYPE TABLE_OWNER TABLE_NAME TABLE_TYPE PAR------------------------------ ------------------------------ ---------- ------------------------------ ------------------------------ ----------- ---TEST100 T48_TRANSACTION_MODEL_IDX2 NORMAL TEST100 T48_TRANSACTION_MODEL TABLE NOTEST100 T48_TRANSACTION_MODEL_IDX1 NORMAL TEST100 T48_TRANSACTION_MODEL TABLE YESpartitioned 表明是否索引是分区的(YES) 否则是(NO)我举个 global 索引的例子查询 条件 不走 分区键这个值但是 我走另外一个where条件而且选择性很高就是where 条件里带上了分区键,对应的列 就用LOCAL 索引高度为3不跨越分区 扫描3个block +1个 data block跨越分区 扫描 1000个 分区 *3 +1个data block扫描要跨越 多个 分区你就建立 global 条件里不带上了分区键对应的列,对应的列就用GLOBALoracle会对主键自动创建全局索引我 有一个查询查询 条件 不走 分区键这个值但是 我走另外一个where条件总结就是扫描要跨越 多个 分区你就建立 globalglobal 索引是为了解决 跨越 分区扫描的用的分区 键一般情况下 都已经定位到 单独的分区了你再去建立 对该列的索引 其实 是毫无意思的总结:全局索引:优点:通过索引检索,没有限定分区的谓词、或跨分区时,性能好点,缺点:分区维护的时候麻烦,drop分区等维护会失效,dml的时候索引维护成本高,数据大了rebuild也难local 索引:优点:通过索引检索,有限定分区的谓词、不跨分区时,性能好,分区维护容易,dml的索引维护底,rebuild也方便。缺点:通过索引检索,又没有限定分区的谓词、或跨分区时,性能不如全局索引有分区裁剪的,那么其他列就建立分区索引没有分区裁剪的,那么列就建立global 索引
给我老师的人工智能教程打call!http://blog.youkuaiyun.com/jiangjunshow
