问答题
某商场商品经营管理系统使用SQL Server 2008数据库管理系统,此系统上线运行1年后,业务人员使用某统计功能(此功能每月使用一次)时发现速度很慢。该统计功能主要执行的SQL语句如下:
SELECT 商品号, SUM(销售数量*销售价格) 销售额
FROM 销售明细
GROUP BY 商品号;
该销售明细表的建表语句如下:
CREATE TABLE 销售明细(
序列号 intIDENTITY(1,1) NOT NULL,
商品号 intNOT NULL,
销售日期 datetime NULL,
销售数量 intNOT NULL,
销售价格 intNOT NULL
);
并在销售明细表上建有如下索引:
CREATE index ix_销售明细_商品号 on 销售明细(商品号);
某技术人员提出通过执行下述语句以提高此查询的运行效率:
CREATE VIEW 商品销售额视图
WITH SCHEMABINDING
AS
SELECT 商品号,SUM(销售数量*销售价格) 销售额,
COUNT_BIG(*) cnt
FROM dbo.销售明细
GROUP BY 商品号;
CREATE UNIQUE CLUSTERED INDEX ix_商品销售额
ON 商品销售额视图(商品号);