Simptome
Luați în considerare următorul scenariu:
-
Aveți o procedură stocată care conține o procedură stocată pentru copii în Microsoft SQL Server 2012.
-
Procedura stocată a copilului utilizează un tabel ca parametru.
-
Creați un tabel temporar, apoi îl treceți la procedura stocată a copilului ca parametru.
-
Procedura stocată a copilului rulează câteva interogări împotriva tabelului temporar, utilizând cursoare.
În acest scenariu, apare o scurgere de memorie care degradează performanța SQL Server 2012.
Rezolvare
Informații despre actualizarea cumulativă
Actualizarea cumulativă 3 pentru SQL Server 2012 Service Pack 1 (SP1)
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 3. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativă pentru SQL Server 2012 SP 1, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2812412 Pachetul de actualizare cumulativă 3 pentru SQL Server 2012 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 în versiunea anterioară SQL Server 2012 SP 1 fix release. 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:
2772858 SQL Server 2012 construiește care au fost lansate după ce s-a lansat SQL Server 2012 Service Pack 1
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Mai multe informații
Următorul tabel furnizează mai multe informații despre produsele sau instrumentele care verifică automat condiția descrisă în secțiunea "simptome" din instanța SQL Server și în versiunile de SQL Server pentru care se evaluează regula:
Software de regulă |
Titlul regulii |
Descrierea regulii |
Versiunile de produs cu care se evaluează regula |
---|---|---|---|
Consultant centru de sistem |
Pierderi de memorie SQL Server atunci când interogările sunt executate împotriva unui tabel temporar într-o procedură stocată imbricată în SQL Server 2012 |
În acest consilier de instanță SQL Server a detectat prezența unui SQL Server de compilare mai mic decât compilarea fixă pentru o problemă de pierderi de memorie. Acest lucru se poate întâmpla atunci când aveți o procedură stocată care conține o procedură stocată de copii, care utilizează tabelele temp care utilizează în continuare cursoare. Este posibil să observați MEMORYCLERK_SQLOPTIMIZER de sys.dm_os_memory_clerks și MEMOBJ_EXECCOMPILETEMP de la sys.dm_os_memory_objects merge foarte mare. Consultați articolul din baza de cunoștințe pentru mai multe detalii. |
SQL Server 2012 |