Sintomi
Quando si usa il tipo di dati spaziale e i metodi associati in Microsoft SQL Server 2012 o Microsoft SQL Sever 2014, le destinazioni quantistiche del sistema operativo SQL Server (SQLOS) sono protette dal livello di hosting CLR di SQL Server. Questa protezione include gli interruttori preemptive, SQLOS può aumentare il consumo della CPU. Il motivo per cui l'opzione preemptive switch è proteggere l'utilità di pianificazione SQLOS. Una chiamata in un'implementazione basata su CLR di SQL Server può richiedere tempo non specificato senza cedere all'utilità di pianificazione SQLOS o modificare il comportamento e i modelli di concorrenza. Di conseguenza, il tipo di dati spaziali è progettato per cambiare preemptive durante ogni chiamata. Nota Il tipo di dati spaziali è basato su CLR di SQL Server, ma può essere associato a vari livelli di consumo di memoria .NET e di comportamento di commutazione dei thread.
Causa
Le esecuzioni dei metodi del tipo di dati spaziali sono in genere Sub-millisecondi e potrebbero non richiedere l'utilità di pianificazione e la protezione preventiva completa di SQL OS. L'overhead del passaggio da e verso la modalità preemptive può essere molto più grande dell'esecuzione del metodo spaziale stesso.
Risoluzione
Questa correzione introduce il flag di traccia 6531 per indicare al livello di hosting SQLOS che il tipo di dati spaziali deve evitare protezioni preventive. Ciò può ridurre il consumo di CPU e migliorare le prestazioni complessive per le attività spaziali. Usa questo flag di traccia solo se le chiamate individuali e di metodo spaziale (per riga e colonna) impiegano meno di ~ 4ms. Le chiamate più lunghe senza protezione preventiva potrebbero portare a problemi di concorrenza di utilità di pianificazione e messaggi di punizione SQLCLR registrati nel log degli errori. Il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server.
Aggiornamento cumulativo 4 per SQL Server 2012 SP2 /en-us/help/3007556
Aggiornamento cumulativo 5 per SQL Server 2014 /en-us/help/3011055
Aggiornamento cumulativo 13 per SQL Server 2012 SP1 /en-us/help/3002044
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:
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".