sys.dm_clr_loaded_assemblies (Transact-SQL)
Gibt für jede in den Serveradressraum geladene verwaltete Benutzerassembly eine Zeile zurück. Mit dieser Sicht können Sie CLR-Integrationsobjekte für verwaltete Datenbanken, die in MicrosoftSQL Server ausgeführt werden, verstehen und behandeln.
Assemblys stellen DLL-Dateien mit verwaltetem Code dar, die zum Definieren und Bereitstellen von verwalteten Datenbankobjekten in SQL Server verwendet werden. Wenn ein Benutzer eines dieser verwalteten Datenbankobjekte ausführt, wird die Assembly (und ihre Verweise), in der das verwaltete Datenbankobjekt definiert wird, von SQL Server und der CLR geladen. Die Assembly bleibt in SQL Server geladen, damit die Leistung optimiert wird, sodass die in der Assembly enthaltenen verwalteten Datenbankobjekte in Zukunft aufgerufen werden können, ohne dass die Assembly neu geladen werden muss. Die Assembly wird erst entladen, wenn für SQL Server nicht mehr genügend Arbeitsspeicher vorhanden ist. Weitere Informationen zu Assemblys und zur CLR-Integration finden Sie unter Gehostete CLR-Umgebung. Weitere Informationen zu verwalteten Datenbankobjekten finden Sie unter Erstellen von Datenbankobjekten mit CLR-Integration (Common Language Runtime).
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
assembly_id |
int |
ID der geladenen Assembly. assembly_id kann für die Suche nach weiteren Informationen zur Assembly in der sys.assemblies (Transact-SQL)-Katalogsicht verwendet werden. Beachten Sie, dass im Transact-SQLsys.assemblies-Katalog nur Assemblys in der aktuellen Datenbank angezeigt werden. Mit der sqs.dm_clr_loaded_assemblies-Sicht werden alle geladenen Assemblys auf dem Server angezeigt. |
appdomain_address |
int |
Adresse der Anwendungsdomäne (AppDomain), in der die Assembly geladen wird. Alle Assemblys, die sich im Besitz eines einzelnen Benutzers befinden, werden stets in derselben AppDomain geladen. appdomain_address kann für die Suche nach weiteren Informationen zur AppDomain in der sys.dm_clr_appdomains-Sicht verwendet werden. |
load_time |
datetime |
Zeit, zu der die Assembly geladen wurde. Beachten Sie, dass die Assembly geladen bleibt, bis nicht mehr genügend Arbeitsspeicher in SQL Server vorhanden ist und die AppDomain entladen wird. Sie können load_time überwachen, um zu ermitteln, wie häufig in SQL Server nicht genügend Arbeitsspeicher vorhanden ist und die AppDomain entladen wird. |
Berechtigungen
Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.
Hinweise
Die dm_clr_loaded_assemblies.appdomain_address-Sicht besitzt eine n:1-Beziehung mit dm_clr_appdomains.appdomain_address. Die dm_clr_loaded_assemblies.assembly_id-Sicht besitzt eine 1:n-Beziehung mit sys.assemblies.assembly_id.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie Details zu allen Assemblys in der aktuellen Datenbank angezeigt werden können, die aktuell geladen sind.
select a.name, a.assembly_id, a.permission_set_desc, a.is_visible, a.create_date, l.load_time
from sys.dm_clr_loaded_assemblies as l
inner join sys.assemblies as a
on l.assembly_id = a.assembly_id
Im folgenden Beispiel wird veranschaulicht, wie Details der AppDomain angezeigt werden können, in der eine bestimmte Assembly geladen ist.
select appdomain_id, creation_time, db_id, user_id, state
from sys.dm_clr_appdomains a
where appdomain_address =
(select appdomain_address
from sys.dm_clr_loaded_assemblies
where assembly_id = 555)