1、SQL数据库性能优化:
   性能调整包括分析结构化查询语言 (structured query language,S Q L )语句,并决定相关的查询是否有效。低效率的查询通常使用过量的系统资源并需要使用过多的时间来运行
   通过修改 SQL Server的配置参数( configurationparameter),SQL Server调整包括改变它分配资源的方法以及它的工作方式。有些配置参数与资源的使用有关,有些则无关。那些与资源使用有关的参数紧密地依赖于系统中可用的硬件资源。这些参数必须基于系统中可用的硬件资源的类型与数量进行修改。
 
2、影响 数据库性能下降的原因:
  • I/O子系统过载通常是在RDBMS系统中导致性能衰退的一个原因
  • 在一个 OLTP (联机事务处理 )系统上运行大量的批作业也会导致严重的性能问题
3、解决方法:
   针对第一个原因,使用一个索引查找将会使工作完成得更好
 
  • 磁盘驱动器规格包括平均故障时间间隔(MTBF)数,一个典型的现代磁盘驱动器的 TMBF为1 000 000小时,或114年
  • 序列I/O每秒可进行250次I/O操作
  • 随机I/O每秒可进行85次I/O操作
  • RAID具有两个或多个磁盘驱动器,并创建一个磁盘阵列。对操作系统而言,这个阵列看起来像是一个逻辑磁盘。这个逻辑磁盘也称为磁盘卷,因为它是一个磁盘的集合,但对于用户、应用、甚至 Windows NT(如果使用了硬件 RAID)而言,它们看起来就像一个磁盘。然而,在许多情况下,这个单独的逻辑磁盘比你能够买得到的任何磁盘都要大得多。
4RAID级别
  • RAID 0是最基本的 RAID级别,它只提供磁盘分条。不支持任何冗余,也就不具备容错能力。
  • RAID 1是最基本的容错RAID级别,也称为镜像,创建一个数据磁盘的副本。需要容错性,而一个磁盘足以容纳所有的数据时, RAID 1是非常适合的。在计算每个磁逻辑盘的I / O数量时,写数量必须乘以 2
  • RAID 5是使用奇偶校验对数据引入冗余的 RAID容错级别。该阵列能够容忍阵列中失去一个磁盘驱动器的故障。RAID 5的优势在于这个 R A I D级别可用的空间等于 N - 1,其中N是阵列中磁盘驱动器的数量。因此,一个由 1 0个磁盘驱动器组成的 RAID 5阵列可以拥有 9个磁盘的空间,这使 RAID 5成为一种非常经济的容错选择。幸的是,RAID 5会带来性能损失。附加的开销包括维护奇偶校验。当写向 RAID 5阵列时,必须读所有的目标磁盘条和奇偶校验条,并计算奇偶校验,然后必须写出所有的条。因此,一个RAID 5写实际上导致四次物理 I/O
  • RAID 10是RAID 0与RAID 1的组合,RAID 10包括镜像一个磁盘条,每个磁盘将具有一个确切的副本,但每个磁盘将只含有一部分数据.当性能是关键性的时侯,使用 RAID 10;因为RAID 10支持分离查询,性能非常好,是最好的容错解决方案,但它需要一些代价。你必须购买使用 RAID 0时所需磁盘数量两倍的磁盘
5、读的性能:读性能并不受RAID控制器的显著影响
  
6、写的性能:写性能受 R A I D控制器的显著影响
 
RAID级别       性能                     容错性        造价
-------------------------------
RAID 0         最好                    没有容错性    最经济
RAID 1          好                        好         最昂贵
RAID 5      好的读性能                  可以         最经济
            慢的写性能
RAID 10         好                     非常好        最昂贵
 
7、配置I/O子系统的指导原则
  • 将SQL Server事务日志隔离到它自己的 RAID 1或RAID 1卷上。对事务日志的 I / O几乎百分之百是序列化的和百分之百是写操作。唯一中断事务日志的序列化本质的时间是在回滚操作期间。如果需要回滚的数据不在高速缓存中,就必须从事务日志读取信息 
  •  配置足够数量的磁盘,以保持数据文件卷低于每个磁盘上每秒 8 5次I / O。这可以简单地以如下方式实现:向阵列增加更多的磁盘驱动器直至有足够的盘为止。如果 I / O是随机的,并且通常都是随机 I / O,I / O将扩散到阵列中的所有磁盘上。
  • 如果写I / O低于1 0%,配置数据文件卷为 RAID 5;如果写的比率高于 I / O总量的1 0%,将数据文件卷配置为RAID 10
  • 经常监控每个磁盘每秒的 I / O数量。如果磁盘正接近它们的容量限制,增加更多的磁盘驱动器
8、各RAID级别的每秒I/O操作计算公式:
  • RAID 0  每个磁盘的I / O = (读+写) /磁盘数量
  • RAID 1  每个磁盘的I / O = [读+ ( 2×写)]/ 2
  • RAID 5  每个磁盘的I / O = [读+ ( 4×写)]/磁盘数量
  • RAID 10 每个磁盘的I / O = [读+ ( 2×写)]/磁盘数量
9、碰盘I/O计算公式:
  • 转动时延: 等待磁盘转到可用数据的时间称为转动时延 ,一般等于转动一圈时间的一半
  • 寻道时间:最大搜索时间发生在从盘片最里的磁道移动磁头到盘片最外的磁道,或从盘片最外的磁道移动磁头到盘片最里的磁道,这称为完全磁盘搜索,1 3毫秒。
  • I/O: I/O=1s /(转动时延+磁道之间搜索时间)