Simptomi
Iedomājieties šādu scenāriju:
-
Jums ir iekļauta procedūra, kurā ir iekļauta bērnu saglabātā procedūra programmā Microsoft SQL Server 2012.
-
Bērnam saglabātajā procedūrā tiek izmantota tabula kā parametrs.
-
Jūs izveidojat pagaidu tabulu, un pēc tam to nosūtāt uz bērnam saglabāto procedūru kā parametru.
-
Bērna saglabātajā procedūrā tiek izpildīti daži vaicājumi pret pagaidu tabulu, izmantojot kursorus.
Šajā scenārijā tiek veikta atmiņas noplūde, kas pasliktina SQL Server 2012 veiktspēju.
Risinājums
Kumulatīvās atjaunināšanas informācija
Kumulatīvais atjauninājums 3 SQL Server 2012 1. servisa pakotnei (SP1)
Šīs problēmas labojums pirmo reizi tika izlaists kumulatīvajā atjauninājumā 3. Lai iegūtu papildinformāciju par to, kā iegūt šo kumulatīvo atjaunināšanas pakotni SQL Server 2012 SP 1, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2812412 Kumulatīvās atjaunināšanas pakotne 3 SQL Server 2012 1. servisa pakotneiPiezīme. Tā kā būvējums ir kumulatīvs, katrā jaunajā laidienā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā SQL Server 2012 SP 1 labošanas laidienā. Iesakām apsvērt jaunāko labojumu laidienu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2772858 SQL Server 2012 būvējumi, kas tika izlaisti pēc tam, kad tika izlaists SQL Server 2012 1. servisa pakotne
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".
Papildinformācija
Tālāk esošajā tabulā ir sniegta papildinformācija par produktiem vai rīkiem, kas automātiski pārbauda nosacījumus, kas ir aprakstīti sadaļā "Simptomi" savā SQL Server un SQL Server versijās, attiecībā uz kuru tiek novērtēta kārtula:
Kārtulas programmatūra |
Kārtulas nosaukums |
Kārtulas apraksts |
Produkta versijas, par kurām kārtula tiek novērtēta |
---|---|---|---|
System Center padomnieks |
SQL Server atmiņas noplūde, kad vaicājumi tiek palaisti ar pagaidu tabulu ligzdotā saglabātā procedūrā SQL Server 2012 |
Šajā SQL Server instancē padomnieks atklāja SQL Server būvējuma esamību, kas ir zemāka par fiksēto būvējumu atmiņas noplūdes problēmai. Tā var gadīties, ja jums ir iekļauta procedūra, kurā ir iekļauta bērnobjekts, kas izmanto pagaidu tabulas, kurās tālāk tiek izmantoti kursori. Jūs varat pamanīt, MEMORYCLERK_SQLOPTIMIZER sys.dm_os_memory_clerks un MEMOBJ_EXECCOMPILETEMP no sys.dm_os_memory_objects notiek ļoti augsta. Papildinformāciju skatiet rakstā KB. |
SQL Server 2012 |