Share via


sys.dm_clr_appdomains (Transact-sql)

Sunucu her uygulama etki alanı için bir satır döndürür. Uygulama etki alanı (AppDomain) bir yapı olduğunu Microsoft .NET Frameworkbir uygulama yalıtım birimi olan ortak dil çalışma zamanı (clr). Sen-ebilmek kullanma bu görünüm içinde yürütme clr tümleştirme nesnelerde sorun giderme ve anlamak için Microsoft   SQL Server.

clr tümleştirme yönetilen veritabanı nesnelerini çeşitli türleri vardır. Bu nesneler hakkında genel bilgi için bkz: Bina veritabanı nesneleri ile ortak dil çalışma zamanı (clr) tümleştirme. Bu nesneler yürütülen her SQL Serveroluşturur bir AppDomain altında hangi o yük ve gerekli kodu yürütün. Yalıtım düzeyi için bir AppDomain bir AppDomain başına veritabanı başına sahibi. Başka bir deyişle, bir kullanıcıya ait olan tüm clr nesneleri her zaman aynı yürütülen AppDomain (kullanıcı clr veritabanı nesnelerini farklı veritabanları, clr veritabanı nesnelerini farklı uygulama alanlarında çalışır kaydederse) veritabanı başına. Bir AppDomain kod yürütme tamamlandığında yok edilmez. Bunun yerine, ileride yürütmeler için bellekte önbelleğe alınır. Bu, performansı artırır.

Daha fazla bilgi için bkz: Uygulama etki alanlarının.

Sütun adı

Veri türü

Açıklama

appdomain_address

varbinary(8)

Adresi, AppDomain. Tüm yönetilen veritabanı, bir kullanıcının sahip olduğu nesneler her zaman yüklenir aynı AppDomain. Şu anda bu yüklenen tüm derlemelere aramak için bu sütunu kullanabilirsiniz AppDomain içinde sys.dm_clr_loaded_assemblies.

appdomain_id

int

Kımlığı AppDomain. Her AppDomain benzersiz bir kimliği vardır.

appdomain_name

varchar(386)

Adı AppDomain tarafından atanmış olarak SQL Server.

creation_time

datetime

Zaman zaman AppDomain oluşturuldu. Çünkü AppDomains'in önbelleğe alınmış olup, daha iyi performans için yeniden creation_time mutlaka zaman kodu yürütülen zaman değil.

DB_ID

int

Bu veritabanı Kımlığı AppDomain oluşturuldu. Kodu iki farklı veritabanlarında depolanan bir pay olamaz AppDomain.

user_id

int

Nesneleri bu yürütebilirsiniz kullanıcı Kımlığı AppDomain.

Devlet

nvarchar(128)

Bir tanımlayıcısı geçerli durumunu AppDomain. AppDomain oluşturma farklı Devletleri'nden silinmesi için olabilir. Bu konuda daha fazla bilgi için açıklamalar bölümüne bakın.

strong_refcount

int

Bu güçlü başvuru sayısı AppDomain. Bu kullanma bu toplu işlemleri yürütülmekte sayısını yansıtır AppDomain. Bu görünüm yürütülmesini oluşturacağını unutmayın bir güçlü refcount; hatta ise yürütülmekte, kod strong_refcount 1 değerine sahiptir.

weak_refcount

int

Bu zayıf başvuru sayısı AppDomain. Bu, içinde kaç nesneleri gösterir AppDomain önbelleğe alınır. Bir yönetilen veritabanı nesnesi çalıştırdığınızda SQL Serveriçinde önbelleğe AppDomain ileride yeniden kullanmak için. Bu, performansı artırır.

Maliyet

int

Maliyeti AppDomain. Yüksek maliyet, daha büyük olasılıkla bu AppDomain bellek baskısı altında boş etmektir. Maliyet genellikle bağlıdır ne kadar bellek bu yeniden oluşturmak için gerekli AppDomain.

değer

int

Değer, AppDomain. Düşük değeri, daha büyük olasılıkla bu AppDomain bellek baskısı altında boş etmektir. Genellikle bağlıdır kaç bağlantıları veya toplu işlemleri bu kullanmakta olduğunuz AppDomain.

total_processor_time_ms

bigint

Geçerli uygulama etki alanındaki işlem başlatıldığından bu yana yürütülürken tüm iş parçacıkları tarafından kullanılan milisaniye cinsinden toplam işlemci süresi. Bu denktir System.AppDomain.MonitoringTotalProcessorTime.

total_allocated_memory_kb

bigint

Toplam boyutu, kilobayt olarak toplanmış olan bellek çıkarılarak olmadan oluşturulduktan sonra uygulama etki alanı tarafından yapılmış olan tüm bellek ayırmalarını. Bu denktir System.AppDomain.MonitoringTotalAllocatedMemorySize.

survived_memory_kb

bigint

Geçerli uygulama etki alanı tarafından başvurulan son tam olarak toplanması ve bu engelleme, hayatta kilobayt olarak bilinmektedir. Bu denktir System.AppDomain.MonitoringSurvivedMemorySize.

Açıklamalar

Bir Mayıs ilişkisi arasında dm_clr_appdomains.appdomain_address ve dm_clr_loaded_assemblies.appdomain_address.

Aşağıdaki tablo listesi mümkün devlet değerleri, açıklamalar, ve ne zaman gerçekleşeceğini AppDomain ömrü. Lifecyle, izlemek için bu bilgiyi kullanabilirsiniz bir AppDomain ve şüpheli veya tekrarlayan izlemeye AppDomain boşaltma, Windows olay günlüğüne ayrıştırmak zorunda kalmadan örnekleri.

AppDomain başlatma

Durum

Açıklama

E_APPDOMAIN_CREATING

AppDomain oluşturulmaktadır.

AppDomain kullanımı

Durum

Açıklama

E_APPDOMAIN_SHARED

Çalışma Zamanı AppDomain birden fazla kullanıcı tarafından kullanılmak üzere hazırdır.

E_APPDOMAIN_SINGLEUSER

AppDomain ddl işlemleri kullanılmaya hazırdır. Bu E_APPDOMAIN_SHARED paylaşılan AppDomains'in clr tümleştirme infaz ddl işlemleri olarak kullanılan bakımından farklıdır. Böyle AppDomains'in başka eşzamanlı işlemler izole edilmiştir.

E_APPDOMAIN_DOOMED

AppDomain kaldırılmış, planlanmıştır vardır ama şu anda içinde çalışan iş parçacıklarının.

AppDomain Temizleme

Durum

Açıklama

E_APPDOMAIN_UNLOADING

SQL Serverclr kaldırın ki istedi AppDomain, çünkü genellikle yönetilen veritabanı nesnelerini içeren derleme değiştirilmiş bırakılan veya.

E_APPDOMAIN_UNLOADED

clr kaldırıldı AppDomain. Bu genellikle bir eskalasyon prosedürü nedeniyle sonucudur ThreadAbort, OutOfMemory, ya da kullanıcı kodunda işlenmeyen bir özel durum.

E_APPDOMAIN_ENQUEUE_DESTROY

AppDomain clr kaldırıldı ve tarafından yok edilmesi için SQL Server.

E_APPDOMAIN_DESTROY

AppDomain tarafından sürecinde yok SQL Server.

E_APPDOMAIN_ZOMBIE

AppDomain tarafından tahrip edilmiş SQL Server; Ancak, tüm başvuruları AppDomain Temizlenen.

İzinler

Veritabanı VIEW server state izni gerektirir.

Örnekler

Aşağıdaki örnek ayrıntılarını görüntülemek nasıl gösterir bir AppDomain için verilen derleme:

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 = 500)

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 = 500)

Aşağıdaki örnek içinde tüm derlemelere görüntülemek nasıl gösterir bir verilen AppDomain:

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
where l.appdomain_address = 
(select appdomain_address 
from sys.dm_clr_appdomains
where appdomain_id = 15)

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
where l.appdomain_address = 
(select appdomain_address 
from sys.dm_clr_appdomains
where appdomain_id = 15)

Ayrıca bkz.

Başvuru

sys.dm_clr_loaded_assemblies (Transact-sql)

Common Language Runtime ilgili dinamik yönetim görünümleri (Transact-sql)