问题 单项选择题

设有某商场数据库应用系统,在其业务系统之上建立了主要用于统计分析的数据仓库,其中有两个表T1(商品编号,日期,销售总量,金额)和T2(商品类别,日期,销售总量,金额)。设在系统中有查询Q1(商品编号,月份,总销售量)、Q2(商品类别,月份,总销售量)和Q3(商品编号,季度,总销售量)。Q1利Q3的查询数据源为T1,Q2的查询数据源为T2。在系统运行过程中,通过监控统计发现Q1、Q2和Q3,每天的平均执行次数分别约为50、0.5和0.1,商品类别数约为1千种。系统运行过程中监控发现系统响应速度在变慢。为了提高系统效率,在不考虑空间投入因素的情况下,一般来说,下列优化措施最为合理的是()。

A.建立物化视图或汇总表T3(商品编号,月份,总销售量),并在商品编号和月份上建立组合索引,将Q1和Q3的查询数据源切换成T3

B.建立物化视图或汇总表T3(商品编号,季度,总销售量),并在商品编号和季度上建立组合索引,将Q1和Q3的查询数据源切换成T3

C.建立物化视图或汇总表T3(商品编号,月份,总销售量),并在商品编号和月份上建立组合索引,删除T1和T2,将Q1、Q2和Q3的查询数据源都切换成T3

D.对表T1和T2,根据主键分别进行排序,以提高查询效率

答案

参考答案:C

解析:

效率低下的SQL语句常常是系统效率不佳的主要原因。索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率,索引的使用原则是:

①经常在查询中作为条件被使用的列应为其建立索引;

②频繁进行排序或者分组的列,应为其建立索引;

③一个列的值域很大时,应为其建立索引。

物化视图,它是用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,从而快速的得到结果。物化视图有很多方面和索引很相似,使用物化视图的目的是为了提高查询性能;物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL语句的正确性和有效性;物化视图需要占用存储空间;当基表发生变化时,物化视图也应当刷新。根据以上两点可以排除选项D)。

题目中Q1的每天的平均执行次数为50,远大于Q2,Q3。而且主要对(商品编号、月份、销售总量)进行数据操作,故可排除选项B)。

数据仓库的特性:面向主题性,集成性,不可更新性和时间特性。数据仓库已经确定,基本表内容即固定,不可更新。而物化视图保存了表的连接和聚集,故为了提高系统性能,物化视图一经确定,基本表可以删除,故选项A)可以排除。

单项选择题
判断题