日期:2014-05-16 浏览次数:20551 次
索引质量的高低对数据库整体性能有着直接的影响。良好高质量的索引使得数据库性能得以数量级别的提升,而低效冗余的索引则使得数据库性能缓慢如牛,即便是使用高档的硬件配置。因此对于索引在设计之初需要经过反复的测试与考量。那对于已经置于生产环境中的数据库,我们也可以通过查询相关数据字典得到索引的质量的高低,通过这个分析来指导如何改善索引的性能。下面给出了演示以及索引创建的基本指导原则,最后给出了索引质量分析脚本。
1、查看索引质量
--获取指定schema或表上的索引质量信息报告 gx_adm@CABO3> @idx_quality Enter value for input_owner: GX_ADM Enter value for input_tbname: CLIENT_TRADE_TBL -->如果我们省略具体的表名则会输出整个schema的索引质量报告 Table Table Index Data Blks Leaf Blks Clust Index Table Rows Blocks Index Size MB per Key per Key Factor Quality ------------------------- ------------ ---------- ------------------------- ------- --------- --------- ------------ ------------- CLIENT_TRADE_TBL 6,318,035 278488 I_TDCL_ARC_STL_DATE_STOCK 62 312 13 171,017 5-Excellent I_TDCL_ARC_STL_DATE_CASH 62 318 13 174,599 5-Excellent I_TDCL_ARC_CANCEL_DATE 83 238 8 288,678 5-Excellent I_TDCL_ARC_INPUT_DATE 144 249 13 310,974 5-Excellent I_TDCL_ARC_TRADE_DATE 144 269 14 337,097 5-Excellent PK_CLIENT_TRADE_TBL 200 1 1 798,216 2-Good I_TDCL_ARC_GRP_REF_ID 144 1 1 811,468 2-Good UNI_TDCL_ARC_REF_ID 136 1 1 765,603 2-Good I_TDCL_ARC_CONTRACT_NUM 72 1 1 834,491 2-Good I_TDCL_ARC_SETTLED_DATE 61 299 5 380,699 1-Poor I_TDCL_ARC_ACC_NUM 184 624 3 3,899,446 1-Poor I_TDCL_ARC_PL_STK 176 218 1 4,348,804 1-Poor I_TDCL_ARC_INSTRU_ID 120 2,667 8 4,273,038 1-Poor --从上面的单表输出的索引质量可知,出现了4个处于Poor级别的索引,也就是说这些个索引具有较大的聚簇因子,几乎接近于表上的行了 --对于这几个索引的质量还应结合该索引的使用频率来考量该索引存在的必要性 --对于聚簇因子,只能通过重新组织表上的数据来,以及调整相应索引列的顺序得以改善 --查询单表上索引列的相关信息 gx_adm@CABO3> @idx_info Enter value for owner: GX_ADM Enter value for table_name: CLIENT_TRADE_TBL TABLE_NAME INDEX_NAME CL_NAM CL_POS STATUS IDX_TYP DSCD ------------------------- ------------------------------ -------------------- ------ -------- --------------- ---- CLIENT_TRADE_TBL I_TDCL_ARC_ACC_NUM ACC_NUM 1 VALID NORMAL ASC I_TDCL_ARC_CANCEL_DATE CANCEL_DATE 1 VALID NORMAL ASC I_TDCL_ARC_CONTRACT_NUM CONTRACT_NUM 1 VALID NORMAL ASC I_TDCL_ARC_GRP_REF_ID GRP_REF_ID 1 VALID NORMAL ASC I_TDCL_ARC_INPUT_DATE INPUT_DATE 1 VALID NORMAL ASC I_TDCL_ARC_INSTRU_ID INSTRU_ID