Aracılığıyla paylaş


SQL İzleme

Şunlar için geçerlidir: SQL Server

SQL İzleme'de olaylar, izleme tanımında listelenen olay sınıflarının örnekleriyse toplanır. Bu olaylar izleme işleminden filtrelenebilir veya hedefleri için kuyruğa alınabilir. Hedef, SQL Server'ı yöneten uygulamalarda izleme bilgilerini kullanabilen bir dosya veya SQL Server Yönetim Nesneleri (SMO) olabilir.

Önemli

SQL İzleme ve SQL Server Profiler kullanım dışı bırakıldı. Microsoft SQL Server İzleme ve Yeniden Yürütme nesnelerini içeren Microsoft.SqlServer.Management.Trace ad alanı da kullanım dışıdır.

Bu özellik, SQL Server'ın gelecek bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.

Bunun yerine Genişletilmiş Olaylar'ı kullanın. Genişletilmiş Olaylarhakkında daha fazla bilgi için bkz. Hızlı Başlangıç: SQL Server genişletilmiş olaylar ve SSMS XEvent Profiler.

SQL İzlemenin Avantajları

Microsoft SQL Server, SQL Server Veritabanı Altyapısı örneğinde izlemeler oluşturmak için Transact-SQL sistem saklı yordamları sağlar. Bu sistem saklı yordamları, SQL Server Profiler yerine el ile izleme oluşturmak için kendi uygulamalarınızdan kullanılabilir. Bu, kuruluşunuzun gereksinimlerine özgü özel uygulamalar yazmanızı sağlar.

SQL İzleme Mimarisi

Olay Kaynağı, Transact-SQL toplu işleri veya kilitlenmeler gibi SQL Server olayları dâhil olmak üzere izleme olayını üreten herhangi bir kaynak olabilir. Olaylar hakkında daha fazla bilgi için bkz. SQL Server Olay Sınıfı Başvurusu. Bir olay oluştuktan sonra, olay sınıfı bir izleme tanımına eklenmişse, olay bilgileri izleme tarafından toplanır. İzleme tanımında olay sınıfı için filtreler tanımlanmışsa, filtreler uygulanır ve izleme olayı bilgileri kuyruğa geçirilir. Kuyruktan izleme bilgileri bir dosyaya yazılır veya SQL Server Profiler gibi uygulamalarda SMO tarafından kullanılabilir. Aşağıdaki diyagramda SQL İzleme'nin izleme sırasında olayları nasıl topladığı gösterilmektedir.

Veritabanı Altyapısı olay izleme işlemi

SQL İzleme Terminolojisi

Aşağıdaki terimler SQL İzleme'nin temel kavramlarını açıklar.

Etkinlik
Microsoft SQL Server Veritabanı Altyapısı örneği içinde bir eylemin oluşumu.

Veri sütunu
Bir olayın özniteliği.

Olay sınıfı
İzlenebilir bir olay türü. olay sınıfı, bir olay tarafından bildirilebilen tüm veri sütunlarını içerir.

Olay kategorisi
İlgili olay sınıflarından oluşan bir grup.

İzleme (isim)
Veritabanı Altyapısı tarafından döndürülen olay ve veri koleksiyonu.

İzle (fiil)
SQL Server örneğindeki olayları toplamak ve izlemek için.

tracedefinition
Bir izleme sırasında toplanacak olay türlerini tanımlayan olay sınıfları, veri sütunları ve filtrelerden oluşan bir koleksiyon.

Filtre
İzlemede toplanan olayları sınırlayan ölçütler.

İzleme dosyası
Bir izleme kaydedildiğinde oluşturulan bir dosya.

Template
SQL Server Profiler'da, bir izlemede toplanacak olay sınıflarını ve veri sütunlarını tanımlayan bir dosya.

İzleme tablosu
SQL Server Profiler'da, bir izleme bir tabloya kaydedildiğinde oluşturulan bir tablodur.

Döndürülen Olayları Açıklamak için Veri Sütunlarını Kullanma

SQL trace, izleme çalıştırıldığında döndürülen olayları açıklamak için izleme çıkışındaki veri sütunlarını kullanır. Aşağıdaki tabloda, SQL İzleme tarafından kullanılanlarla aynı veri sütunları olan SQL Server Profiler veri sütunları açıklanır ve varsayılan olarak seçilen sütunlar gösterilir.

Veri sütunu Sütun numarası Description
* Applicationname 10 SQL Server örneğine bağlantı oluşturan istemci uygulamasının adı. Bu sütun, programın adıyla değil, uygulama tarafından geçirilen değerlerle doldurulur.
BigintData1 52 İzlemede belirtilen olay sınıfına bağlı olan değer (bigint veri türü).
BigintData2 53 İzlemede belirtilen olay sınıfına bağlı olan değer (bigint veri türü).
* İkili Veriler 2 İzleme sırasında yakalanan olay sınıfına bağlı olan ikili değer.
* ClientProcessID 9 Ana bilgisayar tarafından istemci uygulamasının çalıştığı sürece atanan ID. İstemci işlem kimliği istemci tarafından sağlanmışsa bu veri sütunu doldurulur.
ColumnPermissions 44 Bir sütun izninin ayarlanıp ayarlanmadığını gösterir. Hangi izinlerin hangi sütunlara uygulandığını belirlemek için deyim metnini ayrıştırabilirsiniz.
* CPU 18 Olay tarafından kullanılan CPU süresi (milisaniye cinsinden) miktarı.
Veritabanı Kimliği 3 USE database_name deyimi tarafından belirtilen veritabanının kimliği veya belirli bir örnek için use database_namedeyimi verilmediyse varsayılan veritabanının kimliği. SQL Server Profiler, ServerName veri sütunu izde yakalandığında ve sunucu müsaitse veritabanının adını gösterir. DB_ID işlevini kullanarak veritabanının değerini belirleyin.
DatabaseName 35 Kullanıcı deyiminin çalıştığı veritabanının adı.
DBUserName 40 İstemcinin SQL Server kullanıcı adı.
* Süre 13 Olayın süresi (mikrosaniye cinsinden).

Sunucu bir olayın süresini mikrosaniye cinsinden (saniyenin bir milyonda biri veya 10-6'sı) ve olay tarafından kullanılan CPU süresini milisaniye cinsinden (saniyenin binde biri veya 10-3'ünü) bildirir. SQL Server Profiler grafik kullanıcı arabirimi, Süre sütununu varsayılan olarak milisaniye cinsinden görüntüler, ancak bir dosyaya veya veritabanı tablosuna bir izleme kaydedildiğinde , Süre sütun değeri mikrosaniye cinsinden yazılır.
* Bitiş Zamanı 15 Olayın sona erdiği saat. Bu sütun, SQL:BatchStarting veya SP:Starting gibi, başlatılan bir olaya başvuran olay sınıfları için doldurulmuyor.
Error 31 Belirli bir olayın hata numarası. Bu genellikle sysmessages içinde depolanan hata numarasıdır.
* Eventclass 27 Yakalanan olay sınıfının türü.
EventSequence 51 Bu olayın dizi numarası.
EventSubClass 21 Her olay sınıfı hakkında daha fazla bilgi sağlayan olay alt sınıfı türü. Örneğin, Yürütme Uyarısı olay sınıfının olay alt sınıfı değerleri yürütme uyarısının türünü temsil eder:

1 = Sorgu beklentisi. Sorgunun yürütülebilmesi için önce kaynakları beklemesi gerekir; örneğin, bellek.

2 = Sorgu zaman aşımı. Gerekli kaynakların yürütülmesi beklenirken sorgu zaman aşımına uğradı. Bu veri sütunu tüm olay sınıfları için doldurulmuyor.
GUID 54 İzlemede belirtilen olay sınıfına bağlı GUID değeri.
Dosyaadı 36 Değiştirilen dosyanın mantıksal adı.
Kulp 33 ODBC, OLE DB veya DB-Library tarafından sunucu yürütmesini koordine etmek için kullanılan tamsayı.
Ana Bilgisayar Adı 8 İstemcinin çalıştığı bilgisayarın adı. Konak adı istemci tarafından sağlanıyorsa bu veri sütunu doldurulur. Ana bilgisayar adını belirlemek için HOST_NAME fonksiyonunu kullanın.
IndexID yirmi dört Olaydan etkilenmiş nesnedeki dizinin kimliği (ID). Bir nesnenin indeks kimliğini belirlemek için, sysindexes sistem tablosunun indid sütununu kullanın.
IntegerData Yirmi beş İzlemede yakalanan olay sınıfına bağımlı tamsayı değeri.
IntegerData2 55 İzlemede yakalanan olay sınıfına bağımlı tamsayı değeri.
IsSystem 60 Olayın bir sistem işleminde mi yoksa kullanıcı işleminde mi gerçekleştiğini gösterir:

1 = sistem

0 = kullanıcı
LineNumber 5 Hatayı içeren satırın numarasını içerir. SP:StmtStarting gibi Transact-SQL deyimleri içeren olaylar için LineNumber, saklı yordamdaki veya toplu işlemdeki deyimin satır numarasını içerir.
LinkedServerName 45 Bağlantılı sunucunun adı.
* Loginname 11 Kullanıcının giriş adıdır (SQL Server güvenlik girişi veya Windows giriş kimlik bilgileri DOMAIN\Kullanıcı adı biçiminde).
LoginSid 41 Oturum açmış kullanıcının güvenlik tanımlayıcısı (SID). Bu bilgileri ana veritabanının sys.server_principals görünümünde bulabilirsiniz. Sunucudaki her oturum açma işleminin benzersiz bir kimliği vardır.
MethodName 47 OLEDB yönteminin adı.
Mod 32 Çeşitli olaylar tarafından olayın istediği veya aldığı durumu açıklamak için kullanılan tamsayı.
NestLevel 29 @@NESTLEVEL tarafından döndürülen verileri temsil eden tamsayı.
NTDomainName 7 Kullanıcının ait olduğu Microsoft Windows etki alanı.
* NTUserName 6 Windows kullanıcı adı.
ObjectID 22 Nesnenin sistem tarafından atanan kimliği.
ObjectID2 56 Varsa, ilgili nesnenin veya varlığın kimliği.
ObjectName 34 Başvuruda bulunan nesnenin adı.
** Nesne Türü 28 Olaya dahil olan nesnenin türünü temsil eden değer. Bu değer sysobjects içindeki tür sütununa karşılık gelir.
Ofset 61 Saklı yordam veya toplu iş içindeki deyimin başlangıç kayması.
Sahiplik Kimliği 58 Yalnızca kilit olayları için. Kilidi olan nesnenin türü.
Sahibi Adı 37 Nesne sahibinin veritabanı kullanıcı adı.
Ebeveyn Adı 59 Nesnenin bulunduğu şemanın adı.
Permissions 19 denetlenen izinlerin türünü temsil eden tamsayı değeri. Değerler şunlardır:

1 = TÜMÜNÜ SEÇ

2 = TÜMÜNÜ GÜNCELLEŞTIR

4 = TÜMÜNE REFERANS

8 = INSERT

16 = DELETE

32 = EXECUTE (yalnızca yordamlar)

4096 = HERHANGİ Bİrİ SEÇİN (en az bir sütun)

8192 = HERHANGİ BİR GÜNCELLEME

16384 = HERHANGİ BİR REFERANS
ProviderName 46 OLEDB sağlayıcısının adı.
* Okur 16 Olay adına sunucu tarafından gerçekleştirilen mantıksal disk üzerindeki okuma işlemlerinin sayısı. Bu okuma işlemleri, deyimin yürütülmesi sırasında tablolardan ve arabelleklerden gelen tüm okumaları içerir.
RequestID 49 Ifadeyi içeren talebin kimliği.
RoleName 38 Etkinleştirilmekte olan uygulama rolünün adı.
RowCounts 48 İşlem kümesi içerisindeki satır sayısı.
SunucuAdı 26 İzlenen SQL Server örneğinin adı.
SessionLoginName 64 Oturumu başlatan kullanıcının giriş adı. Örneğin, Login1 kullanarak SQL Server'a bağlanır ve Login2 olarak bir deyim yürütürseniz, SessionLoginNameLogin1, LoginName ise Login2 görüntüler. Bu veri sütunu hem SQL Server hem de Windows oturum açma bilgilerini görüntüler.
Severity 20 Özel durum olayının önem düzeyi.
SourceDatabaseID 62 Nesnenin kaynağının bulunduğu veritabanının kimliği.
* SPID 12 SQL Server tarafından istemciyle ilişkili işleme atanan oturum kimliği (SPID).
SqlHandle 63 64-bit hash, bir ad hoc sorgu metnine veya bir SQL nesnesinin veritabanı ve nesne kimliğine dayanır. bu değer, ilişkili SQL metnini almak için sys.dm_exec_sql_text() öğesine geçirilebilir.
* Starttime 14 Etkinliğin başladığı zaman, mümkün olduğunda.
State 30 Hata durum kodu.
Başarı 23 Olayın başarılı olup olmadığını temsil eder. Değerler şunlardır:

1 = Başarı.

0 = Hata

Örneğin, 1 başarılı bir izin denetimi, 0 ise başarısız bir denetim anlamına gelir.
TargetLoginName 42 Bir oturum açmayı hedefleyen eylemler için hedeflenen oturum açmanın adı; örneğin, yeni bir oturum açma eklemek için.
TargetLoginSid 43 Bir oturum açmayı hedefleyen eylemler için, hedeflenen oturum açmanın SID'si; örneğin yeni bir oturum açma eklemek için.
TargetUserName 39 Veritabanı kullanıcısını hedefleyen eylemler için bu kullanıcının adı; örneğin, bir kullanıcıya izin vermek için.
* Textdata 1 İzlemede yakalanan olay sınıfına bağlı metin değeri. Ancak parametreli bir sorguyu izlerseniz değişkenler TextData sütunundaki veri değerleriyle görüntülenmez.
İşlem Kimliği 4 İşlemin sistem tarafından atanan kimliği.
Türü 57 İzlemede yakalanan olay sınıfına bağımlı tamsayı değeri.
* Yazar 17 Sunucu tarafından olay adına gerçekleştirilen fiziksel disk yazma işlemlerinin sayısı.
XactSequence 50 Geçerli işlemi tanımlamak için bir belirteç.

* Bu veri sütunları tüm olaylar için varsayılan olarak doldurulur.

** ObjectType veri sütunu hakkında daha fazla bilgi için bkz. ObjectType İzleme Olay Sütunu.

SQL İzleme Görevleri

Görev Açıklaması Konu
Transact-SQL saklı yordamları kullanarak izleme oluşturma ve çalıştırmayı açıklar. Transact-SQL Saklı Yordamları Kullanarak İzler Oluşturma ve Çalıştırma
SQL Server Veritabanı Altyapısı örneğinde saklı yordamları kullanarak el ile izlemelerin nasıl oluşturulacağını açıklar. Saklı Yordamları Kullanarak Manuel İzler Oluşturma
İzleme sonuçlarının, izleme sonuçlarının yazıldığı dosyaya nasıl kaydedileceği açıklanır. İzleme Sonuçlarını Dosyaya Kaydetme
Geçici dizindeki alanı kullanarak izleme verilerine erişimi geliştirmeyi açıklar. İzleme Verilerine Erişimi Geliştirme
İzleme oluşturmak için saklı prosedürlerin nasıl kullanılacağını açıklar. İzleme Oluşturma (Transact-SQL)
Yalnızca izlenmekte olan bir olayda ihtiyacınız olan bilgileri alan bir filtre oluşturmak için saklı yordamların nasıl kullanılacağını açıklar. İzleme Filtresi Ayarlama (Transact-SQL)
Var olan bir izlemeyi değiştirmek için saklı yordamların nasıl kullanılacağını açıklar. Var Olan İzlemeyi Değiştirme (Transact-SQL)
Kaydedilmiş bir izlemeyi görüntülemek için yerleşik işlevlerin nasıl kullanılacağını açıklar. Kaydedilmiş İzlemeyi Görüntüleme (Transact-SQL)
İzleme filtresi bilgilerini görüntülemek için yerleşik işlevlerin nasıl kullanılacağını açıklar. Filtre Bilgilerini Görüntüle (Transact-SQL)
Bir izi silmek için saklı yordamların nasıl kullanılacağını açıklar. İzleme Silme (Transact-SQL)
İzleme sebebiyle ortaya çıkan performans maliyetini en aza indirme yöntemi belirtilir. SQL İzlemeyi İyileştirme
İzleme sırasında tahakkuk eden ek yükü en aza indirmek için izlemenin nasıl filtrelendiğini açıklar. İzi Filtreleme
İzlemenin topladığı veri miktarının nasıl en aza indirildiğini açıklar. İzleme Dosyası ve Tablo Boyutlarını Sınırla
Microsoft SQL Server'da izlemeyi zamanlamanın iki yolunu açıklar. İzleme Zamanlamaları

Ayrıca Bkz.

SQL Server Profiler Şablonları ve İzinleri
SQL Server Yönetim Nesneleri (SMO) Programlama Kılavuzu