2017-07-21 6 views
0

Ich stoße auf ein Problem mit meiner lokalen Instanz von SSMS 2012, wo es plötzlich extrem langsam gestartet hat. Ich habe Anfragen, die normalerweise 20-30 Sekunden dauern würden und jetzt 6+ Minuten dauern. Diese sind nicht notwendigerweise komplex, nur ein einfacher Join. Ich sollte beachten, dass die Arbeit an einer einzigen Datenbank normal funktioniert (soweit meine begrenzten Tests zeigen)SSMS 2012 lokale Instanz langsam

Die einzigen Änderungen, die ich vor kurzem gemacht habe, ist die Verbindung zu R mit ODBC mit dem ODBC-Treiber 11 für SQL Server, direkt von der Microsoft-Website.

Ich habe versucht, meine ODBC-Verbindungen zu löschen, RStudio geschlossen, SSMS geschlossen und sogar meinen Laptop neu gestartet, um alle verbleibenden Verbindungen zu trennen - alles ohne Erfolg.

Jede Hilfe an dieser Stelle wäre dankbar, danke.

Antwort

0

Vielleicht sind Ihre Statistiken veraltet, da dies dazu führen kann, dass eine Abfrage in Ordnung ausgeführt wird, wenn es viele Änderungen in der Datenbank gibt. Sie können sie aktualisieren mit:

EXEC sp_updatestats; 

Hoffentlich wird dies helfen. Eine andere Sache zu überprüfen ist, dass Ihre Indizes nicht fragmentiert sind.

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 

Dies zeigt eine Liste der Objekte in der aktuellen Datenbank. (Verwenden Sie eine Verwendung Anweisung, um die Datenbank vor dem Laufen zu wählen)

Use Northwind 
GO 

Alles, was mehr als 5% dann verwenden ist ALTER INDEX IndexName REBUILD

Alles, was mehr als 30% ist dann ein ALTER INDEX IndexName REBUILD

verwenden Das könnte einige Zeit dauern!

hoffe es hilft

Verwandte Themen