SQLServer服务器优化技术探讨

1。数据和日志文件分别存储在不同的磁盘上。

数据文件和日志文件的操作会产生大量的我/ o.under可能的条件下,日志文件应该存放在硬盘上的,不同的数据和索引的数据文件,从而驱散我 / O,同时,有利于对数据库的灾难恢复。

的2.tempdb数据库分别存储在不同的磁盘上

tempdb数据库是一个所有其他数据库可能会使用临时数据库。当使用SELECT INTO和索引列进行排序的临时表执行,在tempdb数据库生成的存储中间数据,建立临时表的填充会严重降低系统的性能,它应该被索引该列必须在尽可能最好的情况下排序。同时,tempdb数据库是所有用户和应用程序共享的,所以如果一个用户占所有tempdb数据库的空间,其他的数据库将不再被使用。如果可能的话,tempdb数据库应单独放置在一个更快的硬盘或RAID阵列,我 / O是tempdb数据库操作分离ED的加速性能。tempdb数据库必须满足用户的需要适当的能力。对tempdb数据库空间自动增长应该是允许的。如果被设置为不允许自动增长操作将无法完成时,查询操作已超过临时tempdb数据库容量表。

正确设置tempdb数据库的增长,太小的增长将产生更多的外部碎片,会占用更多的资源。

三.避免热数据的出现

在sqlserver7.0,新插入的数据线总是放在桌子的尾端在磁盘的表(堆表)没有聚集索引。如果有多个并发用户,同时,插入或更新表中的数据的操作将导致数据热点在忙碌表结束。同时我/ O操作集中在几页的操作,这将导致在数据库性能下降。

在SQLServer中,新的数据行的物理存储空间的分配是通过PFS页进行。PFS页的管理算法分散插入操作来避免产生数据热点。

在设计应用系统和数据库时,避免在自然增长的列上设置主关键字,这可能导致热数据的出现。

4。较少的数据类型

当您设计一个表时,尽可能少地使用数据类型,最多的信息可以保存在这样的数据页上,数据页较少,并且检索数据页的I/O操作较少,因此效率很高。

5。监测和组织空间碎片

文件空间的自动增长增加了自动管理,但会导致空间碎片,物理空间和数据的逻辑空间不再是连续的,常规的监视和空间碎片化有助于提高I/O的性能。

6。使用主数据文件和辅助数据文件

其中每个数据库的主数据文件属主文件组的数据库大约1GB,数据文件是不够的。如果有辅助数据文件,则有一个指针来管理主数据文件中的辅助数据文件。

当使用多个数据文件时,主数据文件用于存储系统的对象和表,二次数据文件用于存储用户数据和索引。在可能的情况下,主数据和辅助数据文件可以分别存储在不同磁盘上以分散i/O。

如果我们使用多个数据文件,我们推荐主数据文件来存储系统数据,以及次要数据文件来存储用户数据和索引,这将有助于提高I/O性能。