键压缩索引! 怎样理解键压缩索引? eg: create index emp_name on emp(ename) tablespace users compress 1; 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 压宿index对于复合索引比较有用,对于只有一个字段的简单索引,压宿意义不大 使用Oracle索引压缩技术,减少空间占用,并提高大数据量访问情况下的速度. 索引压缩仅用于复合索引,即多个字段建立一个索引的情况,通过compress参数指定压缩哪些字段.虽然压缩后的索引,相对来说需要花费更多的CPU时间来处理,但是,这样做后,可以在高速缓冲区中缓存更多的索引块,当大范围的扫描时,能够减少物理IO的数量.压缩索引特别那些需要节省存储空间的情况,以下那些单次查询的范围比较大的情况.不适合的情况,举例:1.保险支付项目_IX_项目编码 on 保险支付项目(项目编码,险类) 如果设置compress为1表示压缩第一个字段,第一个字段项目编码,相同的很少,可压缩的很少.估计是这个索引创建得不合理,应该把险类和项目编码的顺序互换一下,因为查询时,一般险类和项目编码会同时出现在Where子句中这样,相同险类的项目编码就很多,比较适合压缩, 但是应用程序中,大多数情况下,只需取一条记录,少有大范围的取数情况,并且本身不是无限增长的表,节省空间也很少,就没有必要压缩了.2.病人未结费用_IX_病人id on 病人未结费用(病人id,主页ID) 这个也没有压缩的必要,因为病人未结费用表中的病人ID相同的记录很少(因为记录的数据是按病人科室id,执行部门id,收入项目id等汇总的)相反,病人费用记录(病人id,主页ID) 这个就非常适合了,因为同一病人,特别是住院病人的记录比较多,而且结帐或费用查询时,一般是大范围的扫描取数,压缩后就可以减少物理IO的数量. 关于to_char的问题 Oracle中case语句与decode()方法的区别? oracle中PL/SQL块的问题 谁能帮我提供查询(select)语句 如何将表导出到一个文本文件里面,txt 数据库用户自动锁定或回收的设置 原来的很多应用系统数据多存在user表空间,那现在我想把各个应用的数据存放到他们自己的表空间里?怎么做呢?行得通吗 imp导入问题?拜托,帮忙解决一下!!! 如何关闭隐式游标? 刚接触oracle新手问题关于触发器 oracle 问题! 索引的问题!
索引压缩仅用于复合索引,即多个字段建立一个索引的情况,通过compress参数指定压缩哪些字段.
虽然压缩后的索引,相对来说需要花费更多的CPU时间来处理,
但是,这样做后,可以在高速缓冲区中缓存更多的索引块,当大范围的扫描时,能够减少物理IO的数量.压缩索引特别那些需要节省存储空间的情况,以下那些单次查询的范围比较大的情况.
不适合的情况,举例:
1.保险支付项目_IX_项目编码 on 保险支付项目(项目编码,险类)
如果设置compress为1表示压缩第一个字段,第一个字段项目编码,相同的很少,可压缩的很少.
估计是这个索引创建得不合理,应该把险类和项目编码的顺序互换一下,因为查询时,一般险类和项目编码会同时出现在Where子句中
这样,相同险类的项目编码就很多,比较适合压缩,
但是应用程序中,大多数情况下,只需取一条记录,少有大范围的取数情况,并且本身不是无限增长的表,节省空间也很少,就没有必要压缩了.2.病人未结费用_IX_病人id on 病人未结费用(病人id,主页ID)
这个也没有压缩的必要,因为病人未结费用表中的病人ID相同的记录很少(因为记录的数据是按病人科室id,执行部门id,收入项目id等汇总的)
相反,病人费用记录(病人id,主页ID)
这个就非常适合了,因为同一病人,特别是住院病人的记录比较多,而且结帐或费用查询时,一般是大范围的扫描取数,压缩后就可以减少物理IO的数量.