SQL Server高级性能调优策略
2010-10-21 04:22:15 来源:WEB开发网论坛里经常有人问“我的数据库很慢,有什么办法提高速度呢?”。这是个古老的话题,又是常见的问题,也是DBA们最想解决的问题之一。我想就SQLServer调优大家一起论一论,如果可以的话尽量发表自己观点,如果有转帖就只要地址就可以了。调优可以从多个方法可面调优,一般可以调优的多个部分。下面我先就存储方面起个头。
在建立一个新的实例后,mssql会先生成master,model,msdb,tempdb 四个系统数据库,就master,model,msdb这三个系统数据库建议最后与用户数据库分开存储,一般系统数据库应该特别小心。主数据库保护着自己及其他数据库的分类信息、配置信息、用户数据库信息、作业信息、还有数据库模版。一旦系统数据库受到破坏,整个实例就有可能崩溃。
而tempdb这个临时数据库,它对性能的影响较大。tempdb和其他数据库一样可以增大,可以缩小。当数据文件需要增长的时候,通常不能保持剩余部分的连续性。这时文件就会产生碎片,这种碎片会造成性能下降。这种碎片属于外来性碎片。要阻止在tempdb中产生外来性碎片,必须保证有足够的硬盘空间。一般将tempdb的容量放到平均使用容量。而你也应该允许tempdb自动增长,比如你有个一个超大的join操作,它建立了一个超过tempdb容量的时候,该查询将失败。你还要设置一个合理的单位增长量。因为如果你设得太小,将会产生许多外来性碎片,反而会占用更多资源。sqlserver调优最有效的做法之一,就是把争夺资源的操作独立出去。tempdb就是一个需要独立出去的部分而tempdb和其他系统库一样是公用的,是存取最可能频繁的库,所有处理临时表、子查询、GROUP BY、排序、DISTINCT、连接等等。它最适合放到一个具有快速读写能力的设备上。比如RAID0卷或RAID0+1卷上。移动tempdb的方法:
1、用Enterprise Manager或sp_helpdb查看tempdb现在存放的位置
2、用
alter database tempdb modify file(name='tempdev',filename='newpath\newfilename',size=20mb)
alter database tempdb modify file(name='templog',filename='newpath\newfilename',size=20mb)
3、关闭sqlserver重起
4、删掉旧的tempdb文件
存储还有一点就是最后使用NTFS格式,NTFS格式的读取速度比FAT32快。其实这是属于SQLServer调优中,系统优化的部分。
更多精彩
赞助商链接