解决SQL Server性能问题的关键是确定瓶颈在哪里,最容易造成瓶颈的顺序是:
磁盘I/O>CPU> RAM>用户连接数>网络带宽
对于大的数据库,有些地方要注意一下:
1)定期DBCCCHECKDB (建议在服务器负荷较少的时候运行 DBCC CHECKDB。如果在负荷高峰期运行 DBCC CHECKDB,那么事务吞吐量性能和 DBCC CHECKDB 完成时间性能都会受到影响。)
2)定期重建索引(对于这种大数据库,重建索引前把日志模式转到bulk_logged,完成后再改回full)
3)避免收缩数据库(如果数据库在用户查询繁忙时扩大,就会非常忙,这都可能是你遇到的问题的原因)如果并行度改为1,SQLServer总是用1个处理器去处理一个查询。
---------------------------------------------------------------------------------------------------------------------------------------------
SQLServer做小应用比较方便,入门容易,但并不代表就只适合做小应用。
对于系统有点规模的,多CPU,磁盘阵列都有。这种硬件配置就不能使用默认的SQLServer配置,
默认的SQLServer配置参数只适合大多数情况。
你有2个4核CPU,算是8个核,那么要为tempdb建8个数据文件(datafile),默认只有1个数据文件。
这个在多核系统里面非常重要,各个CPU才能同时使用不同的数据文件去操作tempdb,否则就只有排队等。
关键是8个数据文件大小必须一样。细节参看:http://support.microsoft.com/kb/328551/zh-cn
上面设置并行度为1的部分,你可以参看:http://support.microsoft.com/kb/329204/zh-cn
--------------------------------------------------------------------------------------------------------------------------------------------
并行度(MAXDOP)
注意MAXDOP选项不会限制 SQL Server 使用的处理器数。使用亲和力掩码配置选项来配置 SQL Server 使用的处理器数。
当您配置MAXDOP值时,请遵循以下准则:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------