我遇到了我的SSMS 2012本地实例的问题,它突然开始非常缓慢地运行。 我的查询通常需要20-30秒,现在花费6+分钟。这些并不复杂,只是一个简单的连接。 我应该注意,在单个数据库上工作正常(就我的有限测试显示而言)
我最近做的唯一更改是使用ODBC和SQL Server的ODBC驱动程序11连接到R,直接来自Microsoft的网站。
我尝试删除我的ODBC连接,关闭RStudio,关闭SSMS甚至重新启动我的笔记本电脑以切断任何剩余的连接 - 一切都无济于事。
在这一点上的任何帮助将不胜感激,谢谢。
答案 0 :(得分:0)
也许你的统计数据已经过时了,因为如果数据库中发生了很多变化,这可能会导致查询运行正常。您可以使用以下方式更新它们:
EXEC sp_updatestats;
希望这会有所帮助。还要检查的另一件事是你的索引没有碎片化。
SELECT dbschemas.[name] as 'Schema',
dbtables.[name] as 'Table',
dbindexes.[name] as 'Index',
indexstats.avg_fragmentation_in_percent,
indexstats.page_count
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS indexstats
INNER JOIN sys.tables dbtables on dbtables.[object_id] = indexstats.[object_id]
INNER JOIN sys.schemas dbschemas on dbtables.[schema_id] = dbschemas.[schema_id]
INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]
AND indexstats.index_id = dbindexes.index_id
WHERE indexstats.database_id = DB_ID()
ORDER BY indexstats.avg_fragmentation_in_percent desc
这将显示当前数据库中的对象列表。 (在运行之前使用use语句选择数据库)
Use Northwind
GO
任何超过5%的东西然后使用
ALTER INDEX IndexName REBUILD
超过30%的任何东西然后使用a
ALTER INDEX IndexName REBUILD
这可能需要一些时间!
希望有所帮助