问题:
我有个库,里面数据比较多,有的表里面有400万条数据,所在的服务器是在公网上,由于数据比较多这就有个查询的问题,我查询的时候加上某些条件(比如时间、倒叙)都可能要运行10~20多分钟,结果不能马上出来,这时候服务器上的服务器程序可能就表现的不正常,感觉象资源被sql server抢占了,而客户端的程序执行一些查询的话(或在1、2台机器上查询数据库),如果其中1、2个查询不正常,其他的查询也将不正常,具体表现就是如果是客户端就会提示查询超时,我觉得sql server的查询没这么弱吧?!!!我们作的是查询又不是修改,可以对一份数据同时进行,所以这个问题很不明白!希望有经验的能提供帮助,谢谢!
解决共享:
前段时间我在这个版面提出了一个问题,我的数据库总是在运行了一段比较长的时间后不能再向里面插入数据,这时候库里面的某张表可能有120万条记录,然后我就删点记录,服务器程序又能运行啦(先跑起来吧),一小段时间后又出现这样的情况,而且随着删除,此表的记录数量有可能越来越少,有一次慢慢的变成70万就插不进了,我在这也提过问,没有得到解决,通过服务器程序获得代码也令人云里雾里的,某天突然想到事件日志里会不会有什么可以得到帮助的信息,查看数据库 'DBSERVER' 中文件 'DBSERVER_Data' 的自动增长在 40008 毫秒后已取消或出现超时。
使用 ALTER DATABASE 设置更小的 FILEGROWTH 或设置新的大小。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。看了一下ALTER DATABASE的帮助有点晕,后来觉得40008很奇怪,那就是自动增长了很长时间没有反应啦,再一想我的设置数据文件是10%增长的,开始10%可能还正常,但是我那时的数据文件已经有10多个G了,我把设置改成每次5M,问题解决了,最近运行还挺正常的,现在数据文件已经28G了。

解决方案 »

  1.   

    其实这也是一个语句执行时间过长的问题!我最近2天做了个存储过程,当数据库超过一定大小时将N天前的记录删除,但是第一次执行,因为历史数据太多,造成运行时间过长,在企业管理器里查看活动,在删除一个表的记录后,停在下一个表(含图片,阻塞的spid有18600个项目)的删除过程中了,不过服务器程序在阻塞了一段时间后(数据未处理),恢复成正常运行处理速度。有人能解释一下这些现象吗?