FIX: Funcționare lentă sau impas atunci când restabili o bază acoperire de date și execută declarații în același marcă de timp în SQL Server 2012

Traduceri articole Traduceri articole
ID articol: 2725950 - View products that this article applies to.
Microsoft distribuie remedieri Microsoft SQL Server 2012 ca un fișier descărcabil. Pentru că remedierile sunt cumulative, fiecare versiune nou conține toate remedierile rapide și toate remedierile de securitate care au fost incluse anterior SQL Server 2012 fix de presă.
Măriți totul | Reduceți totul

În această pagină

Simptome

Scenariul 1

Luați în considerare următorul scenariu:
  • Restaura?i o bază acoperire de date Microsoft SQL Server 2012.
  • Înainte de a terminat opera?ia de restaurare acoperire de date, un alt proces de referințe sys.database_recovery_status catalog Vezi și necesită o blocare pe aceeași bază acoperire de date. De exemplu, executați următoarea instrucțiune SELECT :

    SELECT * FROM sys.database_recovery_status
În acest scenariu, lent de performanță are loc în care un proces de instrucțiune SELECT așteaptă până se termină procesul de restaurare acoperire de date.

Scenariul 2

Luați în considerare următorul scenariu:
  • Restaura?i o bază acoperire de date SQL Server 2012.
  • Înainte de a terminat opera?ia de restaurare acoperire de date, executați următoarea declarație:

    IF EXISTS (SELECT * FROM sys.database_recovery_status WHERE database_id= DataBaseID AND database_guid IS NOT NULL)
    Notă The DataBaseID reprezintă ID-ul bazei acoperire de date pe care ați efectua opera?ia de restaurare a bazei acoperire de date.
În acest scenariu, un impas apare în procesul de restaurare acoperire de date. Acest impas provoacă procesul de restaurare a bazei acoperire de date să nu reușească.

Cauză

Două scenarii care sunt descrise în secțiunea "Simptome" sunt cauzate de cauze același.

În secțiunea "Scenario1", problema apare deoarece procesul de restaurare acoperire de date necesită un blocaj exclusiv pe baza acoperire de date. Atunci când executați instrucțiunea care este menționat în această secțiune, o blocare partajate este necesar pe aceeași bază acoperire de date. Prin urmare, blocare partajate așteaptă pentru blocare exclusivă până blocare exclusivă este lansat.

În secțiunea "Scenariul 2", atunci când executați instrucțiunea care este menționat în această secțiune, o blocare partajate este necesar atât pe aceeași bază acoperire de date și tabelul sys.sysdbreg . La ultima fază a procesului de restaurare acoperire de date, procesul necesită o actualizare de blocare de pe tabelul de sys.sysdbreg . Cu toate acestea, partajate de blocare nu este eliberat din baza acoperire de date. Prin urmare, un impas apare pe masa sys.sysdbreg , și procesul de restaurare a bazei acoperire de date este determinată a fi victima impas.

Rezoluție

Actualizarea cumulativă informații

Pachet de actualizare cumulativ 1 SQL Server 2012 pachet Service Pack 1

Fix pentru această problemă a fost primul lansat în Cumulative Update 1. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativ pentru SQL Server 2012 pachet Service Pack 1, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
2765331 Pachet de actualizare cumulativ 1 SQL Server 2012 pachet Service Pack 1
Notă Deoarece construiește sunt cumulative, fiecare versiune fix nou conține toate remedierile rapide și toate remedierile de securitate care au fost incluse anterior SQL Server 2012 fix de presă. Vă recomandăm să luați în considerare aplicarea cele mai recente fix de presă care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
2772858 SQL Server 2012 construiește care au fost lansate după SQL Server 2012 pachet Service Pack 1 a fost lansat

Pachet de actualizare cumulativ 3 pentru SQL Server 2012

Fix pentru această problemă a fost primul lansat în 3 actualizare cumulativă. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativ pentru SQL Server 2012, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
2723749 Actualizarea cumulativă 3 pentru SQL Server 2012
Notă Deoarece construiește sunt cumulative, fiecare versiune fix nou conține toate remedierile rapide și toate remedierile de securitate care au fost incluse anterior SQL Server 2012 fix de presă. Vă recomandăm să luați în considerare aplicarea cele mai recente fix de presă care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
2692828 SQL Server 2012 construiește care au fost lansate după SQL Server 2012 a fost lansat

Stare

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

Remediere

Pentru a soluționa problema în scenariul 2, utilizați una dintre următoarele metode.
Metoda 1


Modificați instrucțiunea pentru a evita blocare partajate pe masa de sys.sysdbreg folosind indiciu "NOLOCK".
IF EXISTS (SELECT * FROM sys.database_recovery_status with(NOLOCK) WHERE database_id= DataBaseID AND database_guid IS NOT NULL)
Metoda 2
Setați prioritatea impas declarație pentru a "Scăzut."
SET DEADLOCK_PRIORITY LOW
IF EXISTS(SELECT * FROM sys.database_recovery_status where database_id = DataBaseID AND database_guid IS NOT NULL)
Notă Când utilizați a doua metodă pentru a evita impas atât în declarație, și în procesul de restaurare acoperire de date, coduri în instrucțiunea IF nu va fi executat.

Referințe

Pentru informații suplimentare despre blocare exclusivă, partajate de blocare și actualizare lock, du-te la următorul site Web MSDN:
Informații generale despre modurile de blocare
Pentru mai multe informații elementare service Model pentru SQL Server, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
935897 Un Model elementare de service este disponibil de la echipa de SQL Server pentru a livra remedierile rapide pentru problemele raportate
Pentru mai multe informații despre schema de numire pentru actualizări de SQL Server, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
822499 Schemă de denumire pentru pachetele de actualizare a software-ului Microsoft SQL Server
Pentru mai multe informații despre terminologia de actualizare software, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
824684 Descrierea terminologiei standard utilizate în descrierea actualizărilor de software Microsoft

Proprietă?i

ID articol: 2725950 - Ultima examinare: 20 noiembrie 2012 - Revizie: 2.0
Se aplică la:
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
Cuvinte cheie: 
kbtshoot kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2725950 KbMtro
Traducere automată
IMPORTANT: Acest articol a fost tradus de software-ul de traducere automată Microsoft, si nu de un traducător. Microsoft vă oferă atât articole traduse de persoane, cât și articole traduse automat, astfel incat aveti access la toate articolele din Baza noastră de informatii în limba dvs. materna. Totuși, un articol tradus automat nu este întotdeauna perfect. Acesta poate conține greșeli de vocabular, sintaxă sau gramatică, la fel cum un vorbitor străin poate face greșeli vorbind limba dvs. materna. Compania Microsoft nu este responsabilă pentru nici o inexactitate, eroare sau daună cauzată de traducerea necorespunzătoare a conținutului sau de utilizarea traducerii necorespunzătoare de către clienții nostri. De asemenea, Microsoft actualizează frecvent software-ul de traducere automată.
Face?i clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 2725950

Trimite?i feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com