欢迎来到天天文库
浏览记录
ID:6321825
大小:59.50 KB
页数:7页
时间:2018-01-10
《索引创建规划设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、索引规划设计:管理索引的准则:l在表中插入数据后创建索引l在正确的表和列上创建索引l为性能而排序索引列l限制每个表的索引数量l删除不再需要的索引l估计索引大小并设置存储参数l为每个索引指定表空间l考虑并行创建索引l考虑创建具有nologging的索引l考虑合并或重建索引时的开销和优点l在停用或删除约束之前考虑开销lB_tree索引:默认和最常用的lB_tree索引:为簇定义的索引l散列簇索引:为散列簇定义的索引l全局和局部索引:涉及到分区表和索引l反向键索引:使用于OracleRealApplicationClusters应用环境l位图索引:紧凑的,特别使用于具有少量值集的列l基于函数的索
2、引:包含函数/表达式的预先计算的值l域索引:特别针对应用和插件1.索引在逻辑上和物理上都不依赖于相关表的数据。作为独立的结构,索引需要存储空间;2.标准和位图索引Createindexidx_emp_enameonemp(ename[desc/asc]);Createbitmapindexidx_emp_sexonemp(sex);对表操作需要较多的空间,首先应用于数据仓库环境中3.复合索引列:应该将含有最少重复值的列指定为第一列,第二个含有最少重复值的列指定为第二列,依此类推;含有许多重复值或含有较多null值的列不应该包含在索引中;否则需要指定索引的最后列。4.全局和局部索引--创建分
3、区和非分区索引CREATETABLESALES(PRODUCT_IDVARCHAR2(5),SALES_DATEDATENOTNULL,SALES_COSTNUMBER(10))PARTITIONBYRANGE(SALES_DATE)(PARTITIONP1VALUESLESSTHAN(TO_DATE('2003-01-01','YYYY-MM-DD')),PARTITIONP2VALUESLESSTHAN(TO_DATE('2004-01-01','YYYY-MM-DD')),PARTITIONP3VALUESLESSTHAN(MAXVALUE));createindexidx_sale
4、s_sales_dateonsales(sales_date)local(PARTITIONP1,PARTITIONP2,PARTITIONP3)当相关表被分区时索引也将分区,索引的分区键和表的分区键是相同的如果一个表是按照日期进行范围分区,可以在日期上创建索引,并使用表分区相同的范围进行索引分区,叫局部分区索引;createindexidx_sales_production_idonsales(product_id);createindexidx_sales_sale_costonsales(sales_cost)globalpartitionbyhash(sales_cost)(par
5、titionp1,partitionp2);也可以不使用和表相同的分区模式来创建分区索引,这种索引叫非分区索引或全局索引1.在正确的表和列上创建索引如果经常需要检索大表种少于15%的行,那么就创建索引。这个百分比的变化取决于表扫描的相对速度和相关的行数据如何分发到索引键。主键约束和唯一约束自动创建索引,但应该在外键上创建索引;小表不需要索引,如果查询花费时间太长,可能是表增长太快,小表已增长为大表了;2.适合创建索引的列列中的值相对具有唯一性取值范围大(适合创建常规索引)取值范围小(适合创建位图索引)列中有许多空置,但经常查询所有具有值的行。使用{wherecol_x>-9.99*powe
6、r(10,125)}或{wherecol_xisnotnull}第一种方法好些,因为第一句使用了col_x列上的索引(假设col_x是一个数值列)不适合创建索引列:列中有许多空值,但又不查询非空值LONG和LONGRAW列不能建索引3.为性能而排序索引列在createindex语句中,列的排序会影响查询的性能;通常,将最常用的列放在最前面;创建多列的索引来提高查询速度,例如col1,col2,col3,查询只访问col1,或col1和col2,这样的组织可以提高查询的速度;如果只访问col2或只访问col3,或是col2和col3,查询不会使用索引4.限制每个表的索引数量索引越多,修改表的
7、开销越大。特别是插入或删除行时或更改一个列时,表上的所有索引也要被修改;在确定是否创建多个索引时,需要衡量表的读写功能,如果一个表主要用于读,则多一些索引是有好处的,如果经常更好一个表,则索引少一些为好;5.删除不再需要的索引索引不能加速查询。表可能很小,或表种有很多行,但几乎没有索引项;应用种的查询不使用索引;重建索引之前必须先删除索引;6.估计索引大小和设置存储参数--评估创建一个索引所使用的空间成本declarel
此文档下载收益归作者所有