Symptomen
Neem het volgende scenario:
-
U hebt een opgeslagen procedure met een opgeslagen subproces in Microsoft SQL Server 2012.
-
Voor de onderliggende opgeslagen procedure wordt een tabel gebruikt als parameter.
-
U maakt een tijdelijke tabel en u geeft deze door aan de onderliggende opgeslagen procedure als parameter.
-
Met behulp van cursors wordt op basis van de opgeslagen procedure van een kind een aantal query's op de tijdelijke tabel uitgevoerd.
In dit scenario is er een geheugenlek die de prestaties van SQL Server 2012 nadelig beïnvloeden.
Oplossing
Cumulatieve updategegevens
Cumulatieve update 3 voor SQL Server 2012 Service Pack 1 (SP1)
De oplossing voor dit probleem werd voor het eerst uitgebracht in de cumulatieve update 3. Als u meer informatie wilt over het verkrijgen van dit cumulatieve updatepakket voor SQL Server 2012 SP 1, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
2812412 Cumulatief updatepakket 3 voor SQL Server 2012 Service Pack 1Opmerking Aangezien de builds cumulatief zijn, bevat elke nieuwe correctie release alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige SQL Server 2012 SP 1 fix release. U wordt aangeraden om de meest recente correctie voor deze hotfix toe te passen. Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie:
2772858 De versies van SQL Server 2012 die zijn uitgebracht na SQL Server 2012 Service Pack 1, zijn uitgebracht
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Meer informatie
In de volgende tabel vindt u meer informatie over de producten of hulpprogramma's die automatisch worden gecontroleerd op de voorwaarde die wordt beschreven in de sectie Symptomen in uw exemplaar van SQL Server en in de versies van SQL Server waartegen de regel wordt geëvalueerd:
Regel software |
Regel titel |
Beschrijving van de regel |
Product versies waartegen de regel wordt geëvalueerd |
---|---|---|---|
System Center-adviseur |
SQL Server-geheugenlekkage wanneer query's worden uitgevoerd op een tijdelijke tabel in een geneste opgeslagen procedure in SQL Server 2012 |
In deze SQL Server-exemplaar adviseur is de aanwezigheid van een SQL Server-build lager dan de vaste build voor een geheugenlek probleem. Dit kan gebeuren wanneer u een opgeslagen procedure hebt met een door een kind opgeslagen procedure, waarbij gebruik wordt gemaakt van tijdelijke tabellen die verder gebruikmaken van cursors. U zult merken dat MEMORYCLERK_SQLOPTIMIZER van sys.dm_os_memory_clerks en MEMOBJ_EXECCOMPILETEMP van sys.dm_os_memory_objects zeer hoog verloopt. Raadpleeg het KB-artikel voor meer informatie. |
SQL Server 2012 |