Simptome
Să presupunem că creați o sesiune de evenimente extinse sau o urmărire SQL Profiler care capturează evenimentul rpc_starting sau rpc_completed în Microsoft SQL Server 2016, iar instrucțiunea de colectare sau fluxul de date nu este activat (nu ați setat parametrul collect_statement sau collect_data_stream pentru sesiunea Xevents sau parametrul Datetext sau Date binare pentru SQL Profiler). Dacă activitatea SQL Server implicată de parametri cu valori de tabel (TVP) este capturată în timpul sesiunii, utilizarea memoriei SQL Server poate crește mult mai mult decât este necesar. Acest lucru poate cauza o încetinire severă și, în cazuri extreme, poate epuiza memoria SQL Server și primiți următorul mesaj de erori hard 701 pentru operațiunile în curs:
Notă
Nu există suficientă memorie de sistem în rezervorul de resurse "implicit" pentru a rula această interogare
Notă: Dacă utilizați DBCC MEMORYSTATUS sau sys.dm_os_memory_clerks de interogare, este posibil să observați că OBJECTSTORE_LBSS de memorie afișează un consum mare de memorie.
Rezolvare
Problema în care o sesiune de evenimente extinse sau o urmărire de profiler care nu este configurată pentru a colecta instrucțiunea sau fluxul de date necesită în continuare tampoane mari de memorie, deoarece materialul TVP este abordat de această remediere.
Notă Dacă sesiunea de evenimente extinse sau urmărirea SQL Profiler este configurată pentru a colecta instrucțiune sau flux de date/binar, iar activitatea SQL Server implicată de TVP-uri este capturată în timpul acestei sesiuni, utilizarea memoriei SQL Server poate crește în continuare, chiar și cu remedierea curentă aplicată, deoarece în acest caz consumul de memorie este necesar pentru a gestiona fluxul TVP din urmărire și este complet așteptat.
Prin urmare, vă recomandăm să nu rulați sesiuni permanente sau urmăriri cu combinațiile de evenimente și câmpuri de date menționate anterior în instanțele SQL Server care ar putea să primească activități intensive (în număr sau în dimensiune) bazate pe TVP.
Pachet Service Pack pentru SQL Server:
Această remediere este inclusă în pachetul Service Pack 2 pentru SQL Server 2016.
Notă: Pentru o altă remediere care limitează numărul de rânduri trasate într-un TVP, consultați 4468102 KB.
Despre compilările SQL Server 2016
Fiecare versiune nouă pentru SQL Server 2016 conține toate remedierile rapide și remedierile de securitate din compilarea anterioară. Vă recomandăm să instalați cea mai recentă versiune pentru SQL Server 2016.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.
Referințe
Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.