Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Microsoft distribuie remedieri Microsoft SQL Server 2008 R2 ca un fișier descărcabil. Deoarece remedierile sunt cumulative, fiecare lansare nouă conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 R2 fixă.

Simptome

Luați în considerare următorul scenariu:

  • O aplicație rulează o interogare care face referire la unele tabele temporare din Microsoft SQL Server 2008 și în Microsoft SQL Server 2008 R2. Tabelele temporare sunt create într-o sesiune în locul unei proceduri stocate.

  • Planul de interogare este memorat în cache.

  • Mulți utilizatori rulează aceeași interogare într-un mediu foarte concomitent. De exemplu, mulți utilizatori utilizează o aplicație care rulează următoarea interogare:

    create table #x (col1 int) go insert into #x values (1) go select * from #x where col1 = 1 go

În acest scenariu, aplicația întâmpină probleme de performanță.Notă Pentru mai multe informații despre cum să identificați această problemă, consultați secțiunea "mai multe informații".

Cauză

Această problemă apare deoarece aceleași planuri de interogare sunt inserate în cache în aceeași găleată hash pentru fiecare utilizator atunci când textul interogării este identic. Atunci când un număr mare de planuri sunt hashate la aceeași găleată (denumită și lanț hash), timpul pentru a căuta un plan în memoria cache crește semnificativ și problemele de performanță pot apărea. În plus, subiectele de lucrător pot întâmpina o spinlock severă și alte fire sunt afectate atunci când aceste fire de lucrător nu efectuează randamentele corecte ale programatorilor.

Rezolvare

Notă Doar actualizarea pentru SQL Server 2008 R2 este disponibilă în prezent. Pentru SQL Server 2008, consultați secțiunea "soluție" pentru a rezolva această problemă.

Informații despre actualizarea cumulativă

SQL Server 2008 R2 Service Pack 1

Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 1 pentru SQL Server 2008 R2 Service Pack 1. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:

2544793 Pachetul de actualizare cumulativă 1 pentru SQL Server 2008 R2 Service Pack 1Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 R2 remediată. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:

2567616 SQL Server 2008 R2 construiește care au fost lansate după ce s-a lansat SQL Server 2008 R2 Service Pack 1

SQL Server 2008 R2

Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 7. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativă pentru SQL Server 2008 R2, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:

2507770 Pachetul de actualizare cumulativă 7 pentru SQL Server 2008 R2 Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 R2 remediată. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:

981356 SQL Server 2008 R2 construiește care au fost lansate după ce s-a lansat SQL Server 2008 R2

Stare

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

Soluție de evitare

Pentru a rezolva această problemă în SQL Server 2008 și în SQL Server 2008 R2, mutați orice referințe ale tabelelor temporare în interiorul procedurilor stocate.

Mai multe informații

Pentru mai multe informații despre cum să creați și să modificați elementele de bază ale tabelului, vizitați următorul site Web MSDN:

Cum se creează și se modifică noțiunile de bază despre tabelSpinlock de conținut poate fi identificată din sys.dm_os_spinlock_stats vizualizare dinamică a gestiunii (DMV) care are o rată de conținut mare pe SOS_CACHESTORE spinlock. Pentru a identifica această problemă, derulează o interogare care seamănă cu următorul:

select cp.bucketid, count(cp.bucketid) as BucketCount, st.text from sys.dm_exec_cached_plans cp cross apply sys.dm_exec_sql_text(cp.plan_handle) as st group by cp.bucketid, st.text having count(cp.bucketid) >1 order by BucketCount descDacă următoarele condiții sunt adevărate atunci când rulați această interogare, este posibil să întâmpinați probleme de performanță:

  • Această interogare generează același text de interogare.

  • Numărul pentru aceeași bucketid este mare.Notă Un număr mare pentru același bucketid este de obicei peste 1000.

  • Tabelele temporare de referință ale interogărilor

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×