Sintomi
Si nota una crescita imprevista dei file di dati di tempdb se le applicazioni che usano Microsoft SQL Server Service Broker sono configurate per avere un modello di messaggio di un messaggio per ogni conversazione. Questo modello è simile al modello "Fire-and-Forget" che in genere viene usato nelle applicazioni di controllo. Se si esegue una query sulla sys.DM_DB_TASK_SPACE_USAGE DMV mentre si verifica questo problema, è possibile che il valore "internal_objects_dealloc_page_count" non venga aumentato alla stessa velocità di "internal_objects_alloc_page_count" per gli ID sessione che eseguono attività interne di Service Broker. Inoltre, lo spazio di tempdb non viene rilasciato anche quando tutte le conversazioni in sospeso vengono chiuse e ripulite.
Causa
La crescita dei file di dati è causata principalmente da inserimenti costanti e aggiornamenti della tabella sys. sysdesend . In questo caso, i file di dati di tempdb continuano a crescere man mano che si usa Service Broker.
Risoluzione
Questo problema è stato risolto in Microsoft SQL Server 2016.
Informazioni sull'aggiornamento cumulativo
Aggiornamento cumulativo 5 per SQL server 2012 Service Pack 3 (SP3) aggiornamento cumulativo 10 per SQL Server 2014 SP1 aggiornamento cumulativo 3 per SQL Server 2014 SP2
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:Ultimo aggiornamento cumulativo per SQL server 2012 SP3Ultimo aggiornamento cumulativo per SQL Server 2014 SP1/SP2
Ulteriori informazioni
Per recuperare lo spazio inedito da tempdb, riavviare il servizio SQL Server. Per evitare questo problema, seguire le raccomandazioni generali della sezione "tecniche di prestazioni e scalabilità" dell'argomento TechNet seguente:
Service Broker: tecniche di prestazioni e scalabilità
Stato
Microsoft conferma che si tratta di un problema noto nella progettazione corrente di Service Broker.