日期:2014-05-17  浏览次数:20639 次

数据查询问题,求帮助
我们学校有一个教师课时统计程序,是ASP做的,就是统计教师每周上课的次数的综合,然后统计当月的总和,之前运行都很良好。教师的数据都放置在一个SQL数据库的一个表里面;由于时间长了,前几年的表中的数据都已经过时了,我就在数据库的该表中删除了前几年的数据;现在再来调用ASP这个统计程序,就会查询的相当的慢,而且超时并且查询数据不全,是不是和删除了之前旧的数据有关呢?有什么办法可以解决?

------解决方案--------------------
一直没详细看你问题,你的是SQLServer多少?你要做的其实不仅仅是重建索引。
1、更新统计信息:http://blog.csdn.net/dba_huangzj/article/details/8041267
2、检查索引碎片,如果10%~30%,使用重组,30%以上,重建,不过你可以偷懒一点全部重建。下面是2005以上才能用的,检查索引碎片的代码:
SQL code
SELECT top 10  object_name(a.object_id) [TableName] ,a.index_id ,name [IndexName] ,avg_fragmentation_in_percent 
 FROM sys.dm_db_index_physical_stats ( DB_ID() , NULL , NULL, NULL, NULL ) AS a 
 JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id
 where object_name(a.object_id)='sd_pos_salemaster'
 order by avg_fragmentation_in_percent desc