某商品经营管理系统使用SQL Server数据库。在数据库中存在销售单据表,建表语句为: CREATE TABLE销售单据表( 销售单据编号 char(20), 付款总金额 money, 销售日期 datetime, 销售人员

admin2020-05-25  372

问题 某商品经营管理系统使用SQL Server数据库。在数据库中存在销售单据表,建表语句为:
CREATE TABLE销售单据表(
销售单据编号    char(20),
付款总金额      money,
销售日期        datetime,
销售人员编号    varchar(8),
收银台编号      varchar(6)
);
由于该表数据量巨大,因此建立了销售单据历史表,将1年以前的数据从销售单据表转入销售单据历史表。销售单据历史表的建表语句如下:
CREATE TABLE销售单据历史表(
销售单据编号    char(20),
付款总金额      money,
销售日期        datetime,
销售人员编号    varchar(8),
收银台编号      varchar(6)
);
其中销售单据编号为主键,在收银台编号和销售人员编号上有索引。
在系统运行过程中,磁盘I/O很重,数据库数据量近200G且磁盘写入性能要求非常高。考虑对硬件进行升级,3位工程师给出了不同配置方案:
·方案1:CPU保持不变,内存16G,2块300GB SAS硬盘,使用硬件RAID卡做RAID 1
·方案2:CPU保持不变,内存8G,4块300GB SAS硬盘,使用硬件RAID卡做RAID 0
·方案3:CPU保持不变,内存16G,3块146GB SAS硬盘,使用硬件RAID卡做RAID 5
在不考虑成本的情况下,请指出哪种方案更适合此应用并给出原因。

选项

答案RAID 0并行读/写于多个磁盘上,具有很高的数据传输率,但它只是单纯地提高性能,并没有为数据的可靠性提供保障。RAID 1数据可靠性高,通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能,但是CPU占用率同样也很高,而磁盘的利用率比较低。RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。故方案3更合适。

解析 磁盘阵列RAID所采用的方法不同,可以将其分为很多级别,常见的RAID级别有RAID O、RAID 1、RAID 5等。下面分别对不同级别RAID的特点进行介绍。
①RAID 0:向RAID 0写入数据时,RAID将数据分成许多块,然后并行地将它们写到RAID中各个硬盘上;读出数据时,RAID从各个硬盘上读取数据,把这些数据恢复为原来顺序后传给主机。RAID 0的优点是采用数据分块、并行传送方式,能够提高读写速度。但RAID中存储空间没有冗余,对系统的可靠性没有任何提高,任一个硬盘介质出现故障时,数据将无法恢复。
②RAID 1:RAID 1通常也被称为Mirror,RAID中的硬盘分为相同的两组,互为镜像,当其中一块磁盘出现故障时,可以利用其镜像上的数据恢复,从而提高系统的容错能力。RAID 1对数据的操作仍然采用分块后并行传输方式。RAID 1提高了读速度,加强了系统的可靠性。但其缺点是硬盘利用率低,冗余度为50%,同时写速度并未提高。
③RAID 5:RAID 5可以为系统提供数据安全保障,但保障程序要比RAID 1低而磁盘空间利用率要比RAID 1高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。
转载请注明原文地址:https://kaotiyun.com/show/RzID777K
0

相关试题推荐
最新回复(0)