SSMS 2012本地实例缓慢

时间:2017-07-21 13:04:19

标签: sql sql-server odbc ssms

我遇到了我的SSMS 2012本地实例的问题,它突然开始非常缓慢地运行。 我的查询通常需要20-30秒,现在花费6+分钟。这些并不复杂,只是一个简单的连接。 我应该注意,在单个数据库上工作正常(就我的有限测试显示而言)

我最近做的唯一更改是使用ODBC和SQL Server的ODBC驱动程序11连接到R,直接来自Microsoft的网站。

我尝试删除我的ODBC连接,关闭RStudio,关闭SSMS甚至重新启动我的笔记本电脑以切断任何剩余的连接 - 一切都无济于事。

在这一点上的任何帮助将不胜感激,谢谢。

1 个答案:

答案 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

这可能需要一些时间!

希望有所帮助