oracle 12.1.0.2 新特性高级索引压缩
1 高级的索引压缩
1.1 创建前缀压缩索引 (该方法应用于索引列重复值比较多、非唯一性的情形 非12c 新功能)
1.1.1 创建索引
SQL> create index ind_MT_AS_MSG_30_spnumber on MT_AS_MSG_30(Spnumber) ;
1.1.2 修改索引为压缩索引
SQL> alter index ind_MT_AS_MSG_30_spnumber rebuild compress;
1.1.2 修改索引为非压缩索引
SQL> alter index ind_MT_AS_MSG_30_spnumber rebuild uncompress;
1.2 创建高级压缩索引(适用于唯一跟非唯一 所以, 而且压缩比例高,性能比较好 这个功能必须是 12.1.0 或者更高的版本)
1.1.1 创建索引
SQL> create index ind_MT_AS_MSG_30_spnumber on MT_AS_MSG_30(Spnumber) compress advanced low;
1.1.2 修改索引为压缩索引
SQL> alter index ind_MT_AS_MSG_30_spnumber rebuild compress advanced low;
2 增加消除唯一统计函数 APPROX_COUNT_DISTINCT
2.1 统计每个spnumber数量
SQL>select APPROX_COUNT_DISTINCT(spnumber) from MT_AS_MSG_30; ---相当于 count(distinct spnumber)
3 聚簇属性
4 大表自动缓存, 这个 不适合 buffer cache (没搞懂)
5 数据库全部放在内存中(只要内存大于数据库 那么可以考虑)
5.1 产看oracle 数据库是否是内存库(也就是说,数据全部放在 cache 中)
SQL> SELECT FORCE_FULL_DB_CACHING FROM V$DATABASE; --- 如果是 YES 那就是 都在内存中
5.2 修改数据为 cache 数据库(内存库)
SQL> ALTER DATABASE FORCE FULL DATABASE CACHING;
1 高级的索引压缩
1.1 创建前缀压缩索引 (该方法应用于索引列重复值比较多、非唯一性的情形 非12c 新功能)
1.1.1 创建索引
SQL> create index ind_MT_AS_MSG_30_spnumber on MT_AS_MSG_30(Spnumber) ;
1.1.2 修改索引为压缩索引
SQL> alter index ind_MT_AS_MSG_30_spnumber rebuild compress;
1.1.2 修改索引为非压缩索引
SQL> alter index ind_MT_AS_MSG_30_spnumber rebuild uncompress;
1.2 创建高级压缩索引(适用于唯一跟非唯一 所以, 而且压缩比例高,性能比较好 这个功能必须是 12.1.0 或者更高的版本)
1.1.1 创建索引
SQL> create index ind_MT_AS_MSG_30_spnumber on MT_AS_MSG_30(Spnumber) compress advanced low;
1.1.2 修改索引为压缩索引
SQL> alter index ind_MT_AS_MSG_30_spnumber rebuild compress advanced low;
2 增加消除唯一统计函数 APPROX_COUNT_DISTINCT
2.1 统计每个spnumber数量
SQL>select APPROX_COUNT_DISTINCT(spnumber) from MT_AS_MSG_30; ---相当于 count(distinct spnumber)
3 聚簇属性
4 大表自动缓存, 这个 不适合 buffer cache (没搞懂)
5 数据库全部放在内存中(只要内存大于数据库 那么可以考虑)
5.1 产看oracle 数据库是否是内存库(也就是说,数据全部放在 cache 中)
SQL> SELECT FORCE_FULL_DB_CACHING FROM V$DATABASE; --- 如果是 YES 那就是 都在内存中
5.2 修改数据为 cache 数据库(内存库)
SQL> ALTER DATABASE FORCE FULL DATABASE CACHING;