Update: Verringert Leistung nach ALTER INDEX... Online-Betrieb ist in SQL Server 2012 oder SQL Server 2014 abgebrochen.

Fehler #: 201049 (Content Maintenance) VSTS:1972462

Problembeschreibung

Betrachten Sie das folgende Szenario:

  • Ausführen einer ALTER INDEX... ONLINE Abfrage in Microsoft SQL Server 2012 oder SQL Server 2014.

  • Diese Abfrage ist entweder ein Deadlock oder eine Benutzerinitiierte Aktion oder Ausführen eines Befehls Kill Abbruch der Abfrage wurde abgebrochen.

In diesem Szenario DML-Vorgänge, Index Metadaten blockiert oder lange dauern abgeschlossen werden.

Darüber hinaus können die folgenden Symptome auftreten:

  • Höhere Werte für PWAIT_MD_RELATION_CACHE oder MD_LAZYCACHE_RWLOCK Wartetyps beim Abfragen der dm_os_wait_stats und dm_exec_requests dynamische Verwaltungsansichten (DMV)

  • Höhere Werte für SOS_RW Wartetyps beim sys.dm_os_spinlock_stats DMV Abfragen

Dieses Problem wird in der Regel eine Sperre Konvoi beobachtet, die bei jeder neuen Abfrage DML langsam die Synchronisierungsobjekte löscht. Aufgrund der Natur warten Synchronisierung Objekte ist die CPU-Nutzung in der Regel begrenzt.

Problemlösung

Informationen zum kumulativen Update

Das Problem wurde erstmals in folgenden kumulativen Update von SQL Server behoben.

Kumulative Update 1 für SQL Server 2014/en-us/help/2931693

Kumulative Update 9 für SQL Server 2012 SP1/en-us/help/2931078

Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheits-Updates, die im vorherigen kumulativen Update enthalten waren. Sehen Sie sich die neuesten kumulativen Updates für SQL Server an:


Hotfix-Informationen
Ein unterstützter Hotfix ist von Microsoft erhältlich. Dieser Hotfix soll nur der Behebung des Problems dienen, das in diesem Artikel beschrieben wird. Verwenden Sie diesen Hotfix nur auf Systemen, bei denen dieses spezielle Problem auftritt.

Wenn der Hotfix zum Download zur Verfügung steht, gibt es einen Abschnitt "Hotfix download available" ("Hotfixdownload verfügbar") im oberen Bereich dieses Knowledge Base-Artikels. Wenn dieser Abschnitt nicht angezeigt wird, senden Sie eine Anforderung an Microsoft Customer Service and Support, um den Hotfix zu erhalten.

Hinweis Falls weitere Probleme auftreten oder andere Schritte zur Problembehandlung erforderlich ist, müssen Sie möglicherweise eine separate Serviceanfrage erstellen. Die normalen Supportkosten gilt für zusätzliche Support-Fragen und Problemen, die für diesen speziellen Hotfix nicht qualifizieren. Eine vollständige Liste der Telefonnummern von Microsoft Customer Service and Support oder eine separate Serviceanfrage erstellen finden Sie auf folgender Microsoft-Website:

http://support.microsoft.com/contactus/?ws=supportHinweis Das Formular "Hotfix Download Available" zeigt die Sprachen an, für die der Hotfix verfügbar ist. Wenn Ihre Sprache nicht angezeigt wird, ist dieser Hotfix für Ihre Sprache nicht verfügbar.

Wichtig Nach Anwendung dieses Hotfix ALTER INDEX... ONLINE Abfrage abgebrochen werden kann, ohne die Leistung von SQL Server.

PROBLEMUMGEHUNG

Um dieses Problem zu umgehen, leeren Sie Metadaten verhindern die Sperrenkonvoi und potenzielle Recompile-Zyklen, die Leistung verringern. Hierzu verwenden Sie eine der folgenden Methoden für die Metadaten löschen:

  • Starten Sie die Instanz von SQL Server 2012 oder SQL Server 2014.

  • Offline-Status die problematische Datenbank gebracht, und schalten Sie ihn online erneut.

Status

Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.

Aufruflisteninformationenntdll!ZwSignalAndWaitForSingleObject+0xakernel32!SignalObjectAndWait+0x110
sqldk!SystemThread::SignalAndWait+0x2a
sqldk!SOS_Scheduler::Switch+0xb5
sqldk!SOS_Scheduler::SuspendNonPreemptive+0xd2
sqldk!SOS_Scheduler::Suspend+0x20
sqldk!EventInternal<SuspendQueueSLock>::Wait+0x2bc
sqldk!SOS_RWLock::GetLongWait+0x10b
sqlmin!SOS_RWLock::GetLock+0x1319e1
sqlmin!AutoRWLock::GetLock+0x1319e1
sqlmin!MDAutoRWLock::AcquireLock+0x129
sqlmin!MDAutoRWLock::GetReadLock+0xe
sqlmin!CMEDIndex::Release+0xc1
sqlmin!CMEDIndexStatsCollection::GetProxyIndexInternal+0x294
sqlmin!CMEDIndexStatsCollection::GetNextIndexWithLock+0x4b9
sqlmin!CMEDProxyRelation::GetNextIndexWithLock+0x1c
sqlmin!CMEDProxyRelation::GetNextIndex+0x71
sqllang!CTableMetadata::GatherIndexes+0x948
sqllang!CTableMetadata::LoadMetadata+0x10a
sqllang!CLogOp_Stats::DeriveGroupProperties+0x4b
sqllang!CLogOp_Get::DeriveGroupProperties+0x1d
RWLockbetrachten, wir die folgenden:0:308> dt 0x00000070`6bb435b8 SOS_RWLock +0x000 m_lock : RWSLock
+0x008 m_waiters : SEList<SOS_RWLock::RWLockWaiter,0>
+0x018 m_currentReaders : 3
+0x01c m_waitingWriters : 0xe
+0x020 m_mode : 1 ( RWLOCK_READ )
+0x028 m_pExclusiveOwner : (null)

Author:jannaw;
Ersteller: V-shysun
Technische Überprüfung: Bob Dorr; Bob Ward; Ajayj; Sureshka; Ramakoni; Jannaw; sqlprev
Redaktion: V-jesits

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×