WEB开发网
开发学院数据库Oracle 四招提高位图索引的使用效果 阅读

四招提高位图索引的使用效果

 2009-05-07 13:14:17 来源:WEB开发网   
核心提示: 四、同一个查询中合并多个位图索引,通常情况下在同一个查询中合并多个位图索引后,四招提高位图索引的使用效果(4),可以使得数据库的查询性能得到显著的提高,也就是说,并且在查询设计的时候,最好能够在同一个查询中合并多个位图索引,如在员工信息表中有性别、婚姻状态、职称等字段,这些字段都是基数比较

四、同一个查询中合并多个位图索引。

通常情况下在同一个查询中合并多个位图索引后,可以使得数据库的查询性能得到显著的提高。也就是说,如在员工信息表中有性别、婚姻状态、职称等字段。这些字段都是基数比较低的字段,可以用来创建位图索引。如果现在用户在查询的时候,需要根据上面这三个字段来查询员工的信息,如需要查找性别为女、婚姻状态为已婚、职称为经理层以上的员工信息,为他们举行一个家庭派对的活动。此时在查询条件中就需要用到这个三个位图索引字段。数据库在执行查询计划的时候,如果Where字句中包含了这些位图索引字段的话,择优化器会依次使用3个单独的位图索引。每个位图记录指针,用于指示表中哪些行包含位图中的已知值。有了这些重要信息之后,数据库会执行一个位图AND操作并将从所有的四个位图中返回哪些行。然后再把这些值转换为ROWID值,并且查询继续完成剩余的处理工作(根据ROWID的值查询其他的信息)。

也就是说,如果在一个查询条件语句中,采用了多个位图索引来进行查询的话,其查询的效果是1+1〉2的效果。为此在应用程序设计中,可以把一些位图索引的字段作为查询条件都放置在查询窗口中,以明示的方式让用户选择查询条件。这对于提高应用程序的查询性能具有很大的帮助。

在Oracle数据库中一个表中最大可以支持30个位图索引。当然实际工作中往往用不了这么多。因为通常情况下只有在基数值比较小的列上利用这个位图索引才能够起到比较好的效果。相反如果在一些基数值比较大的列上采用位图索引的话,反而会起到相反的效果。而在一张表中基数列小的值不会很大。所以说数据库管理员更加需要关注这些基数列比较小的值。如果用户有对这些基数值小的列进行查询的习惯,那么数据库管理员就不能够有任何吝啬,要马上把这些列设置为位图索引。并且在查询设计的时候,最好能够在同一个查询中合并多个位图索引,以提高查询的性能。

上一页  1 2 3 4 

Tags:提高 位图 索引

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接