Hat einer von Ihnen Folgendes erlebt und eine Lösung gefunden:
Ein großer Teil des Backends unserer Website ist MS SQL Server 2005. Jede oder zwei Wochen läuft die Website langsamer - und ich sehe, dass Abfragen in SQL immer länger dauern. Ich habe eine Abfrage, die ich gerne verwende:
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
Was ziemlich nützlich ist ... es gibt einen Schnappschuss von allem, was gerade auf Ihrem SQL Server läuft. Das Schöne ist, dass diese Abfrage auch dann zurückgegeben wird, wenn Ihre CPU aus irgendeinem Grund auf 100% festgelegt ist und Activity Monitor das Laden verweigert (ich bin sicher, dass einige von Ihnen dort waren), immer noch zurückgegeben wird und Sie sehen können, welche Abfrage Ihre Datenbank zerstört.
Wenn ich dies oder den Aktivitätsmonitor während der Zeit ausführe, in der SQL langsamer wird, werden keine spezifischen Abfragen angezeigt, die das Problem verursachen. ALLE werden auf der ganzen Linie langsamer ausgeführt. Wenn ich den MS SQL-Dienst neu starte, ist alles in Ordnung, es beschleunigt sich - für ein oder zwei Wochen, bis es wieder passiert.
Nichts, woran ich denken kann, hat sich geändert, aber das hat erst vor ein paar Monaten begonnen ... Ideen?
--Hinzugefügt
Beachten Sie, dass es bei dieser Datenbankverlangsamung keine Rolle spielt, ob 100.000 Seitenaufrufe pro Stunde (geschäftigere Tageszeit) oder 10.000 Seitenaufrufe pro Stunde (langsame Zeit) angezeigt werden. Die Abfragen dauern alle länger als normal. Der Server ist nicht wirklich unter Stress - die CPU ist nicht hoch, die Festplattennutzung scheint nicht außer Kontrolle zu sein ... es fühlt sich an wie Indexfragmentierung oder ähnliches, aber das scheint nicht der Fall zu sein Fall.
Was das Einfügen der Ergebnisse der oben eingefügten Abfrage angeht, kann ich das wirklich nicht. Die obige Abfrage listet die Anmeldung des Benutzers auf, der die Aufgabe ausführt, die gesamte Abfrage usw. usw. und ich möchte die Namen meiner Datenbanken, Tabellen, Spalten und Anmeldungen wirklich nicht online verteilen :) ... I. Ich kann Ihnen sagen, dass die zu diesem Zeitpunkt ausgeführten Abfragen normale Standardabfragen für unsere Website sind, die ständig ausgeführt werden und nichts Außergewöhnliches sind.
- 24. März
Seit dem letzten Neustart sind ungefähr zwei Wochen vergangen. Ich habe einige Änderungen vorgenommen: Ich habe einige Abfragen gefunden, bei denen wir temporäre Tabellen stark genutzt haben, die völlig unnötig waren, und unsere Entwickler haben ihre Vorgehensweise ändern lassen. Ich habe die Größe einiger der ständig (langsam aber sicher) wachsenden Datenbanken auf eine intelligente Größe für ihr Wachstum angepasst. Ich habe die Einstellungen für das automatische Wachstum so angepasst, dass alles intelligenter ist (alle waren auf 1 MB Wachstum eingestellt). Zuletzt habe ich MSDB ein bisschen aufgeräumt. Wir protokollieren den Versand und mussten wirklich keine jahrelangen Sicherungspunkte aufbewahren. Ich habe einige Skripte geschrieben, die dies nur auf wenige Monate beschränken. Ich werde diesen Thread weiter aktualisieren, da es noch zu früh ist, um festzustellen, ob das Problem noch gelöst ist.