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 Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) sau Microsoft SQL Server 2012 remedieri într-un singur fișier descărcabil. Deoarece remedierile sunt cumulative, fiecare lansare nouă conține toate remedierile rapide și toate actualizările de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 R2 Service Pack 1 (SP1) sau SQL Server 2012 Update release.

Simptome

Luați în considerare următorul scenariu. Rulați o interogare în Microsoft SQL Server 2008 R2 sau în Microsoft SQL Server 2012, iar Optimizatorul de interogare generează un plan de execuție care conține operatorul de top. În acest scenariu, interogarea poate dura mult timp pentru a se executa. De exemplu, rulează o interogare care seamănă cu următorul:

SELECT TableA.Col1 FROM TableA JOIN TableB ON TableA.Col1 = TableB.Col1 WHERE TableA.Col2 = N'A' AND TableB.Col3 IN (SELECT Col1 FROM TableC )Această interogare implică două asocieri. O asociere este între TableB și TableC. (Acest lucru este sugerat de prezența predicatului în.) Cealaltă asociere este între tabelul A și rezultatul primei asocieri. Predicatul IN va returna True dacă interogarea găsește cel puțin un rând care îndeplinește primul predicat de asociere. Prin urmare, Optimizatorul de interogare adaugă operatorul de top în planul de execuție a interogării. O astfel de interogare poate returna doar câteva rânduri. Cu toate acestea, poate dura mai mult timp pentru a executa această interogare decât ar fi de așteptat. În planul real de execuție a interogărilor, numărul estimat de rânduri diferă semnificativ de numărul real de rânduri. Acest lucru afectează capacitatea Optimizer-ului de interogare de a estima cu exactitate costul diferitelor opțiuni de plan. Problema poate apărea și dacă utilizați operatorul superior în mod explicit sau dacă utilizați unul dintre următorii operatori:

  • OPȚIUNE (FAST N)

  • ÎN

  • Există

Rezolvare

Informații despre actualizarea cumulativă

SQL Server 2008 R2 Service Pack 2

Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 1 pentru SQL Server 2008 R2 Service Pack 2. 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:

2720425 Pachetul de actualizare cumulativă 1 pentru SQL Server 2008 R2 Service Pack 2Notă 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:

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

SQL Server 2008 R2 Service Pack 1

Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 7 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:

2703282 Pachetul de actualizare cumulativă 7 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 2012

Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 2 pentru SQL Server 2012. Pentru mai multe informații despre 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:

2703275 Pachetul de actualizare cumulativă 2 pentru SQL Server 2012Notă 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 2012 fix release. Microsoft recomandă 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:

2692828 SQL Server 2012 construiește care au fost lansate după ce s-a lansat SQL Server 2012 Trebuie să aplicați o remediere rapidă SQL Server 2012 la o instalare de SQL Server 2012.

SQL Server 2008 R2

Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 13. 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:

2679366 Pachetul de actualizare cumulativă 13 pentru SQL Server 2008 R2Notă 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 R2Notă După ce instalați actualizarea cumulativă, ar trebui să activați Trace Flag 4199 pentru a activa remedierea care este furnizată în această actualizare cumulativă dacă sunt adevărate următoarele condiții:

  • Planul de interogare are un operator superior deasupra unui operator de asociere la bucla imbricată (asociere 1) în partea din dreapta a unui alt operator Apply/JOIN (Join 2).

  • Partea exterioară a asocierii 1 are o referință exterioară la partea exterioară a asocierii 2.

  • Asocierea 1 utilizează un predicat de egalitate pe o coloană din partea stângă care este unică.

Un exemplu de interogare apare în secțiunea "simptome". (Acest lucru presupune că există restricții unice în baza de date.) Dacă există alte interogări care conțin TOP, OPTION (FAST N), IN sau există operatori și prezintă simptome similare, dar nu se potrivesc modelului descris aici, activați Trace Flag 4138.Avertisment Dacă activați Trace Flag 4138, performanța poate scădea pentru alte câteva interogări care conțin TOP, OPTION (FAST N), IN sau există operatori. Semnalizatorul de urmărire 4138 trebuie utilizat numai atunci când sunt adevărate următoarele condiții:

  • Efectul său asupra interogărilor lente care implică acești operatori este confirmat.

  • Nu există alte soluții utile.

  • Nu sunt detectate regrese în alte interogări care conțin operatori similari.

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ă, utilizați operatorul de asociere externă la stânga sau la oricare dintre mai multe indicii de optimizare.

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!

×