2016-06-21 13 views
0

Ich habe eine Abfrage, die eine lange, lange Laufzeit braucht (relativ gesehen). Es ruft viele Zeilen mit mehreren varbinary(max) Spalten ab. Diese Abfrage muss optimiert werden, ohne Zweifel - aber meine Frage ist sehr spezifisch für den sich ständig ändernden "Task-Status", den ich im SQL-Aktivitätsmonitor beobachte.Mein SQL-Prozess wechselt ständig von "suspended" zu "running" und wieder zurück

Alle 5 Sekunden wechselt der Taskstatus von suspended zu running und dann wieder zurück. Was bedeutet das?

Hinweis: Ich kann eine separate Frage bezüglich der Optimierung einer solchen Abfrage stellen - aber ich frage nicht für jetzt, ich frage sehr spezifisch über die schnelle Änderung im Zustand.

keine Dublette WEIL:

Ich bin über die Änderung in schnellen Folge des Task-Zustandes zu fragen, ich frage nicht, was Mittel ausgesetzt. Ich frage (wenn suspended eine Wartezeit auf I/O bedeutet), warum es auf I/O warten würde, dann nicht, schnell, viele Male pro Abfrage.

+1

Mögliche Duplikat (http : //stackoverflow.com/questions/17817177/what-does-a-status-of-suspended-and-high-diskio-means-from-sp-who2) –

+0

Ich google'd, was ausgesetzt Chris bedeutete, was mich führte auf diese Frage - es ist nicht das, was ich hier frage. Danke trotzdem. –

+0

Entschuldigung, ich dachte, dass die Erklärung in der anderen Frage ausgereicht hätte. Der Status ändert sich schnell, da auf Seiten auf der Festplatte zugegriffen und diese dann wiederholt verarbeitet werden. Wie Sie bereits erwähnt haben, würde das Optimieren der Abfrage zum Reduzieren der Datenträger-E/A den Prozentsatz der ausgesetzten Aufgaben verringern. –

Antwort

2

Dies ist normal, SUSPENDED bedeutet einfach, dass die Sitzung auf ein Ereignis wie I/O wartet, um abzuschließen. Sie werden feststellen, dass Sitzungen häufig in diesem Zustand ein- und ausgehen.

Sie können die Erklärungen zu den verschiedenen Status in diesem Dokument hier: [? Was Status "Suspended" tut und hohe DiskIO bedeutet aus sp \ _who2]

sp_who (Transact-SQL)