计算机三级数据库设计与应用题

设某全国性的运输企业创建了大型OLTP系统,并在该系统之上创建了数据仓库。OLTP系统和数据仓库中有以下数据表:
运输明细表(运输单ID,发送站ID,终到站ID,货物ID,货物重量,运输价格,发货日期)
汇总表1(发送站ID,终到站ID,货物ID,发货日期,总重,总运价)
汇总表2(发送站ID,终到地区ID,货物ID,发货日期,总重,总运价)
汇总表3(发送站ID,终到站ID,货物ID,发货月份,总重,总运价)
汇总表4(发送地区ID,终到地区ID,货物类别ID,发货日期,总重,总运价)
该企业管理的货运站约有100个,货物约有500种共10类,各汇总表都建有主码,且各表有合理的维护策略,在每次维护后数据能保持一致。设有视图V,该视图的访问频率很高,其查询结果模式为(发送地区ID,终到站ID,发货月份,总重,总运价),该视图现以汇总表1为计算数据源。经监控发现,汇总表1的被访问频率太高,致使系统总体性能降低,而其它汇总表被访问频率较低。在不增长汇总表和索引的状况下,请给出一个改善系统服务性能的优化方案,并简要说明理由。ide

参考答案:
因为汇总表1和视图的模式访问频率都很高,并且视图的数据源来自汇总表1,又由于其余汇总表的访问频率较低,因此只须要将视图的数据源绑定为汇总表3,由于汇总表3也能够知足视图的输出模式。这样不只提高了汇总表3的数据访问率,并且下降了汇总表1的数据访问率,系统性能和服务性能获得了很大的优化。又由于货物约有500种,共10类,能够再创建一个视图绑定数据源为汇总表4,这样就能够充分利用汇总表4的数据信息,从而能够进一步完善系统的性能的优化。性能

设有商品表(商品号,商品名,单价)和销售表(销售单据号,商品号,销售时间,销售数量,销售单价)。其中,商品号表明一类商品,商品号、单价、销售数量和销售单价均为整型。
请编写查询某年某商品的销售总毛利的存储过程,毛利=销售数量×(销售单价-单价)。要求商品号和年份为输入参数,总毛利用输出参数返回。优化

参考答案:
CREATE PROCEDURE PRODUCT @商品号 int,@年份 int,@毛利 int output
AS
DELCARE
@某商品销售量 int,@某商品进价 int,@某商品销售单价 int
BEGIN
Select @某商品进价=单价 from 商品表 where@商品号=商品号
Select @商品销售单价=销售单价,@某商品销售量=count(
from 销售表 where@商品号=商品号 and销售时间=@年份
IF @某商品进价 is NULL THEN
ROLLBACK;
RETURN;
END IF;
IF @某商品销售单价 isNULL THEN
ROLLBACK;
RETURN;
RNDIF;
SET @毛利=(@某商品销售单价-@某商品进价)
@某商品销售量
GO索引

相关文章
相关标签/搜索