我公司用来一套ERP物流软件,基于server 2003平台的MSSQL 2000数据库,在一次大批量的数据操作后发生了一些问题:大批量的删除数据->立即恢复->大批量删除,数据库开始频繁的以极慢的速度运行,在软件中的任何操作都会慢,每次停滞时间在2分钟左右。DBCC 后发现是某个表的索引丢失,重建索引后数据库运行正常了。最近将删除的数据全部恢复回来,有发生慢的现象,DBCC也没发现什么问题,数据库也不大,才7G,我觉得就是跟删除、恢复数据有很大关系,求各位大神帮帮忙啊!!大家经常反应,领导很恼火!!!
然后 用性能分析,分析这个追踪文件,sqlserver会给你一个分析结果,按此结果处理即可
2)对表重新索引 alter index all on tblname rebuild 或 dbcc reindex
查询优化的统计信息是一些对象,这些对象包含与值在表或索引视图的一列或多列中的分布有关的统计信息。 查询优化器使用这些统计信息来估计查询结果中的基数或行数。 通过这些基数估计,查询优化器可以创建高质量的查询计划。 例如,查询优化器可以使用基数估计选择索引查找运算符而不是耗费更多资源的索引扫描运算符,从而提高查询性能。 每个统计信息对象都在包含一个或多个表列的列表上创建,并且包括显示值在第一列中的分布的直方图。 在多列上的统计信息对象也存储与各列中的值的相关性有关的统计信息。 这些相关性统计信息(或密度)根据列值的不同行的数目派生。 有关统计信息对象的详细信息,请参阅 DBCC SHOW_STATISTICS (Transact-SQL)。 参考:http://msdn.microsoft.com/zh-cn/library/ms190397.aspx比如一个字段有多少行,多少不重复的数值等等都包括在统计信息中。
1。减少SQL对于IO的操作(比如使用索引)
2。使用更快的磁盘
3。将数据库文件放到不同的磁盘
4。日志和数据文件分离
。