Remediere: Performanța scade după un INDEX ALTER... Operațiune ONLINE este abandonat în SQL Server 2012 sau SQL Server 2014

Număr eroare: 201049 (întreținere conținut) VSTS:1972462

Simptome

Să luăm în considerare următorul scenariu:

  • Când executați un ALTER INDEX ... ONLINE interogare în Microsoft SQL Server 2012 sau SQL Server 2014.

  • Această interogare este anulată fie din cauza unei blocări sau o acțiune inițiată de utilizator, cum ar fi execută o comandă de suprimare sau anularea interogarea.

În acest scenariu, operațiunile de LMD care trebuie să utilizați indexul metadate sunt blocate sau dura mult timp pentru a fi terminată.

În plus, pot apărea următoarele simptome:

  • Valori privilegiat pentru PWAIT_MD_RELATION_CACHE sau MD_LAZYCACHE_RWLOCK așteptați tip când interogați sys.dm_os_wait_stats și sys.dm_exec_requests vizualizări ale gestionării dinamice (DMV)

  • Valori privilegiat pentru SOS_RW așteptați tip când interogați sys.dm_os_spinlock_stats DMV

Această problemă este de obicei observat ca un convoi de blocare care apare atunci când fiecare interogare LMD nou lent golește obiecte de sincronizare. Din cauza naturii aşteptare obiecte de sincronizare, modul de utilizare CPU este de obicei limitat.

Rezolvare

Informații despre actualizarea cumulativă

Problema a fost rezolvată mai întâi în următoarea actualizare cumulativă de SQL Server.

Actualizare cumulativă 1 pentru SQL Server 2014/en-us/help/2931693

Actualizare cumulativă 9 pentru SQL Server 2012 SP1/en-us/help/2931078

Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Verifica cele mai recente actualizări cumulative pentru SQL Server:


Informații despre remedierea rapidă
O remediere rapidă compatibilă este disponibilă de la Microsoft. Cu toate acestea, această remediere rapidă este destinată pentru a corecta doar problema descrisă în acest articol. Aplicați această remediere rapidă numai pentru sistemele care întâmpină această problemă anume.

Dacă remedierea rapidă este disponibilă pentru descărcare, există o secțiune "Descărcare disponibilă pentru remediere rapidă" în partea de sus a acestui articol din baza de cunoștințe. Dacă nu apare această secţiune, trimite o solicitare de la serviciul pentru clienți Microsoft de asistență pentru a obţine remedierea rapidă.

Notă Dacă apar probleme suplimentare sau este necesară depanarea, poate fi necesar să creați o solicitare de asistenţă separată. Se vor aplica costurile uzuale de asistenţă pentru întrebări suplimentare de asistență și probleme care nu fac obiectul remedierii rapide în chestiune. Pentru o listă completă cu numerele de telefon ale clienților servicii și asistență Microsoft sau pentru a crea o solicitare de asistenţă separată, vizitați următorul site Web Microsoft:

http://support.microsoft.com/contactus/?ws=supportNotă Formularul "Descărcare disponibilă pentru remediere rapidă" afişează limbile pentru care este disponibilă remedierea rapidă. Dacă nu vedeți limba dvs., înseamnă că o remediere rapidă nu este disponibilă pentru respectiva limbă.

Important După ce Aplicați această remediere rapidă, ALTER INDEX... ONLINE interogare poate fi anulată fără să scadă performanțele de SQL Server.

Soluție

Pentru a rezolva această problemă, puteți golirea intrarea metadatele pentru a preveni blocare convoi și potențiale cicluri de recompilare care scad performanțele de interogare. Pentru aceasta, utilizați una dintre următoarele metode pentru a ajuta la golirea intrarea metadate:

  • Reporniți instanța de SQL Server 2012 sau SQL Server 2014.

  • Pune probleme bazei de date în stare offline și apoi s-o online din nou.

Stare

Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".

Informații despre stiva de apelurintdll!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
Privind RWLock, vom vedea următoarele: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;
Scris de: v-shysun
Examinare tehnică: Bob Dorr; Bob cartier; Ajayj; Sureshka; ramakoni; jannaw; sqlprev
Editor: v-jesits

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

V-a fost de ajutor această informație?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×