问答题 10分

设在SQL Server 2008某数据库中存在销售单据明细表,其建表语句为:CREATE TABLE 销售单据明细表 (  &n...

设在SQL Server 2008某数据库中存在销售单据明细表,其建表语句为:
CREATE TABLE 销售单据明细表 (
    销售单据编号 varchar(10),
    商品编号     varchar(8),
    是否有效     varchar(4),
    单价         money,
    数量         int,
    总价         money
)
 在系统运行一段时间后,此表中有近千万条数据。该系统中存在如下操作:
       select * from 销售单据明细表
         where 销售单据编号 = '135671445' and 商品编号 = '021' and 是否有效 = '是';
在系统运行中发现此操作的效率比较低,系统工程师提出如下建议:
由于查询中使用了“销售单据编号”、“商品编号”和“是否有效”三个条件,因此可以分别在这三列上建立索引,提高查询效率。
(1)系统工程师建议中建立的三个索引是否能够提高查询效率?请简要说明原因。
(2)随着系统运行时间增长,系统运行速度逐渐变慢,经分析为磁盘IO不能满足数据库系统频繁读写的要求。工程师建议增加一块相同磁盘,将两块磁盘调整为RAID1模式。请从读写两方面分析,此操作是否能够改善磁盘IO问题。