Príznaky
Zoberme si nasledujúcu situáciu:
-
Máte uloženú procedúru, ktorá obsahuje podriadenú uloženú procedúru v Microsoft SQL Server 2012.
-
Podradený postup uložený používa tabuľku ako parameter.
-
Vytvoríte dočasnú tabuľku a potom ju prepustíte do podriadenej uloženej procedúry ako parameter.
-
Podradený postup sa spustí s niektorými dotazmi v porovnaní s dočasnou tabuľkou pomocou kurzorov.
V tomto scenári sa vyskytuje pretečenie pamäte, ktorá znižuje výkonnosť SQL servera 2012.
Riešenie
Kumulatívna aktualizácia informácií
Kumulatívna aktualizácia 3 pre SQL Server 2012 Service Pack 1 (SP1)
Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 3. Ďalšie informácie o možnostiach získania tohto balíka kumulatívnych aktualizácií pre SQL Server 2012 SP 1 nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:
2812412 Kumulatívna aktualizácia balíka 3 pre SQL Server 2012 Service Pack 1Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2012 SP 1 opraviť uvoľnenia. Odporúčame, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:
2772858 Zostavy SQL servera 2012, ktoré boli vydané po vydaní SQL servera 2012 Service Pack 1
Stav
Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.
Ďalšie informácie
Nasledujúca tabuľka obsahuje ďalšie informácie o produktoch alebo nástrojoch, ktoré automaticky vyhľadajú podmienky popísané v časti príznaky v inštancii programu SQL Server a vo verziách servera SQL Server, na základe ktorých sa vyhodnotí pravidlo:
Pravidlá softvéru |
Názov pravidla |
Popis pravidla |
Verzie produktov, na základe ktorých sa vyhodnotí pravidlo |
---|---|---|---|
Poradca pre System Center |
Pretečenie pamäte SQL servera pri spustení dotazov na dočasnú tabuľku v vnorenej uloženej procedúre v SQL Server 2012 |
V tejto inštancii SQL Server readvisor zistil prítomnosť SQL servera stavať nižšie ako fixná zostava problému pretečenie pamäte. Môže sa to stať, keď máte uloženú procedúru, ktorá obsahuje uloženú procedúru s dieťaťom, ktorá používa dočasné tabuľky, ktoré ďalej používajú kurzory. Môžete si všimnúť, MEMORYCLERK_SQLOPTIMIZER sys.dm_os_memory_clerks a MEMOBJ_EXECCOMPILETEMP z sys.dm_os_memory_objects bude veľmi vysoká. Ďalšie podrobnosti nájdete v článku vedomostnej databázy KB. |
SQL Server 2012 |