大家有没有遇到过以下情况,有没有找到解决办法:
我们网站后端的很大一部分是 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
Run Code Online (Sandbox Code Playgroud)
这是相当有用的......它提供了当时针对您的 SQL 服务器运行的所有内容的快照。好消息是,即使您的 CPU 由于某种原因被锁定在 100% 并且活动监视器拒绝加载(我相信你们中的一些人已经在那里)这个查询仍然返回,您可以看到什么查询正在杀死您的数据库。
当我在 SQL 开始变慢的时候运行它或活动监视器时,我没有看到任何导致问题的特定查询 - 它们的运行速度都变慢了。如果我重新启动 MS SQL 服务,那么一切都很好,它会加快速度 - 一两个星期,直到它再次发生。
我能想到的一切都没有改变,但这只是几个月前开始的......想法?
- 添加
请注意,当发生这种数据库速度下降时,无论我们是每小时获得 100K 页面浏览量(一天中的繁忙时间)还是每小时 10K 页面浏览量(缓慢时间),查询都需要比正常情况更长的时间来完成。服务器并没有真正承受压力 - CPU 不高,磁盘使用率似乎没有失控......感觉像是索引碎片或类似的东西,但这似乎不是案件。
至于粘贴我上面粘贴的查询的结果,我真的做不到。上面的查询列出了执行任务的用户的登录名、整个查询等。我真的不想在线分发我的数据库、表、列和登录名的名称:)...我可以告诉您当时运行的查询是正常的,我们网站一直运行的标准查询,没有任何异常。
——3月24日
距离上次重启已经过去了大约两周。我做了几处更改:我发现了一些查询,其中我们大量使用了完全不必要的临时表,并且让我们的开发人员改变了他们的工作方式。我将一些不断(缓慢但肯定)增长的数据库的大小调整为适合其增长的智能大小。我调整了所有内容的自动增长设置,使其更加智能(它们都设置为 1MB 增长)。最后我稍微清理了 MSDB。我们进行日志传送,并且真的不需要保留数年和数年的备份点,我已经编写了一些脚本,将其保留到只有几个月的时间。我会继续更新这个帖子,因为现在判断问题是否已经解决还为时过早。
我有一个依赖于多个包的 Python 应用程序。不幸的是,其中一个包不在 PyPi 中,所以我必须直接从 git 存储库安装它。
我一直在尝试将它添加到我的 setup.py 中,如下所示:
setup(
..,
..,
dependency_links = [
'https://github.com/marcuz/libpynexmo.git#egg=nexmomessage'
],
install_requires=[
..,
'nexmomessage'
],
packages=['localpackage']
Run Code Online (Sandbox Code Playgroud)
但是它失败了:根本没有找到 nexmomessage 的发行版
我看到它在哪里创建依赖链接列表:将dependency_links 写入common.egg-info/dependency_links.txt - 当我查看该文件时,URL 是正确的。
如果我在命令行运行它: pip install -e git+ https://github.com/marcuz/libpynexmo.git#egg=nexmomessage
它安装没有问题。
想法?