KB4013128 – FIX: Verringerte Leistung und lange Wartezeiten für CLR_AUTO_EVENT und CMEMTHREAD, wenn SQLCLR UDT als Parameter für gespeicherte Prozeduren für einen SQL RPC-Aufruf verwendet wird

Gilt für
SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Enterprise Core SQL Server 2012 Standard SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Symptome

Sie verwenden Microsoft SQL Server 2012, 2014 oder 2016 und erstellen einen benutzerdefinierten Typ (User-Defined Type, UDT) mithilfe SQL Server Integration der Common Language Runtime (SQL CLR).

Wenn Sie den UDT als Parameter für gespeicherte Prozeduren verwenden, wird der Parameter über den RPC-Mechanismus (Remote Procedure Call) an den Server übergeben. Dieser Mechanismus versucht intern, eine Assembly zu laden, die die UDT im Arbeitsspeicher hostet.

In diesem Fall kann die Leistung bei der Ausführung der gespeicherten Prozedur beeinträchtigt werden. Dies liegt an einer Ineffizienz, die verursacht wird, wenn der RPC die SQLCLR-Assembly unerhört lädt und entlädt.

Dieses Problem tritt als lange Wartezeiten für CLR_AUTO_EVENT - und CMEMTHREAD-Typen auf. Dies gilt insbesondere, wenn mehrere gleichzeitige Benutzer dieselbe gespeicherte Prozedur ausführen.

Lösung

Service Pack-Informationen für SQL Server

Dieses Update wurde in den folgenden Service Packs für SQL Server behoben:

Service Pack 2 für SQL Server 2016

Service Pack 3 für SQL Server 2014

Service Pack 4 für SQL Server 2012

Informationen zu Service Packs für SQL Server:

Service Packs sind kumulativ. Jedes neue Service Pack enthält neben neuen Updates alle Updates früherer Service Packs. Es wird empfohlen, das neueste Service Pack und das neueste kumulative Update für dieses Service Pack anzuwenden. Sie müssen also keine älteren Versionen eines Service Packs installieren, bevor Sie das neueste Service Pack installieren. Verwenden Sie Tabelle 1 im folgenden Artikel, um weitere Informationen zum neuesten Service Pack und zum neuesten kumulativen Update zu finden.

Ermitteln der Version, Edition und Updatestufe von SQL Server und seinen Komponenten

Status

Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.

Referenzmaterial

Informieren Sie sich über die Terminologie, die Microsoft zum Beschreiben von Softwareupdates verwendet.