服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

MS SQL Server随着时间的推移而变慢?

有没有人遇到以下问题,并find了解决办法: 我们网站后端的很大一部分是MS SQL Server 2005.每周或两周,网站开始运行速度较慢 – 而且我发现在SQL中查询花费的时间越来越长。 我有一个我喜欢使用的查询: USE master select text,wait_time,blocking_session_id AS "Block", percent_complete, * from sys.dm_exec_requests CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 order by start_time asc 这是相当有用的…它提供了在这个时候对你的SQL服务器运行正确的一切的快照。 有什么好处的是,即使你的CPU因为某种原因被挂在100%,活动监视器拒绝加载(我敢肯定你们中的一些人已经在那里),这个查询仍然会返回,你可以看到什么查询正在杀死你的数据库。 当我运行这个或活动监视器在SQL开始放缓的时候,我没有看到任何具体的查询导致这个问题 – 他们都在全线运行速度慢。 如果我重新启动MS SQL服务,那么一切都很好,它加快了速度 – 一两个星期,直到它再次发生。 没有什么我能想到的,但是这只是几个月前才开始的…想法? – 添加 请注意,当数据库减速发生时,如果我们每小时(每天繁忙的时间)获得100K页面浏览量,或者每小时(慢时间)10K页面浏览量,那么查询所需的时间比正常时间更长,这并不重要。 服务器并没有真正承受压力–CPU不高,磁盘使用似乎没有失控…感觉像索引碎片或类似的东西,但似乎并不是案件。 就粘贴上面查询的结果而言,我真的不能这么做。 上面的查询列出了执行任务的用户的login名,整个查询等等。我真的不喜欢在网上发布我的数据库,表格,列和login名:)…我可以告诉你当时正在运行的查询是正常的,我们网站的标准查询一直在运行,没有任何规范。 – 3月24日 自从上次重新启动以来已经过了大概两周了。 我做了一些改变:我发现了一些查询,在这些查询中我们大量使用了完全没有必要的临时表,并让我们的开发人员改变了他们的做法。 我将一些不断(缓慢但确定地)增长的数据库的大小调整为一个智能的增长数据库。 我调整了一切的自动增长设置,以更聪明(他们都被设置为1MB增长)。 最后我清理了一下MSDB。 我们做日志传送,并且确实不需要保存好几年和几年的备份点,我写了一些脚本,只保留了几个月。 我会不断更新这个线程,因为现在还不知道问题是否已经解决了。