Příznaky
V případě, že aplikace používající Microsoft SQL Server Service Broker jsou nakonfigurovány tak, aby pro každou konverzaci byly nastavené zprávy o jedné zprávě, všimnete si neočekávaného růstu datových souborů databáze tempdb . Tento vzor připomíná vzor "oheň a kulhavky", který se obvykle používá v aplikacích pro auditování. Pokud se k tomuto problému dostanu Sys.dm_db_task_space_usage dynamické zobrazení pro správu (DMV), může se stát, že se hodnota "internal_objects_dealloc_page_count" nezvýší o stejnou sazbu jako "internal_objects_alloc_page_count" pro ID relace, na kterých běží interní úkoly služby Service Broker. Kromě toho se prostor tempdb neuvolní ani po uzavření a vyčištění všech probíhajících konverzací.
Příčina
Růst datových souborů je hlavně pomocí konstantních vložení a aktualizací tabulky Sys. sysdesend . V této situaci se datové soubory databáze tempdb při používání služby Service Broker nadále zvětšují.
Řešení
Tento problém je opravený v Microsoft SQL serveru 2016.
Informace o kumulativní aktualizaci
Kumulativní aktualizace 5 pro SQL server 2012 Service Pack 3 (SP3) kumulativní aktualizace 10 pro SQL Server 2014 SP1 kumulativní aktualizace 3 pro SQL Server 2014 SP2
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:nejnovější kumulativní aktualizace pro SQL server 2012 SP3– nejnovější kumulativní aktualizace pro SQL Server 2014 SP1/SP2
Další informace
Pokud chcete uvolnit uvolněné místo z databáze tempdb, restartujte službu SQL Server. Chcete-li se vyhnout tomuto problému, postupujte podle obecných doporučení v části způsoby výkonu a škálovatelnosti v tomto tématu na webu TechNet:
Service Broker: techniky výkonu a škálovatelnosti
Stav
Microsoft potvrzuje, že se jedná o známý problém v rámci aktuálního návrhu služby Service Broker.