访问 SQL Server 2012 数据库的第 3 方应用程序正在获取[Microsoft][ODBC SQL Server Driver]Query timeout expired
执行大约20分钟后出现错误。
这是应用程序开始接收错误后我在数据库上看到的内容:
SPID 102 未在上面的查询中显示。它是同一进程的同一应用程序的另一个连接。我在下面的屏幕截图中捕获了一些细节。它是此屏幕截图中最上面一行的一个。抱歉,截图时滚动条移至右侧。
AutoShrink
被设置为TRUE
发生这种情况时在此数据库上。
看起来像:
问题:
根据下面链接中的 TechNet 文章,AutoShrink 不应对数据库上的任何活动产生影响
如果数据库的 AUTO_SHRINK 选项设置为 ON,则数据库
引擎减小了数据库中文件的大小。本次活动
发生在后台,不会影响任何用户活动
数据库。
缩小数据库 http://technet.microsoft.com/en-us/library/ms189080%28v=sql.105%29.aspx
Notes:
AUTO SHRINK 以循环方式工作,如果它在任何数据库上看到可用空间,就会释放它。
虽然它没有像长期阻塞那样的效果,但它确实占用了大量的资源,无论是IO还是CPU。它还通过缓冲池移动大量数据,因此可能导致热页被推送到磁盘,从而进一步减慢速度。如果服务器已经超出了 IO 子系统的限制,则运行收缩可能会超出其极限,从而导致磁盘队列长度过长,并可能导致 IO 超时。
您将在这里得到很多答案和澄清 -http://www.sqlskills.com/blogs/paul/auto-shrink-turn-it-off/ http://www.sqlskills.com/blogs/paul/auto-shrink-turn-it-off/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)