Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Fabric'te SQL Veritabanı
Genişletilmiş Olaylara giriş için bkz:
Azure SQL Veritabanı'ndaki Genişletilmiş Olaylar, Doku'daki SQL veritabanı ve Azure SQL Yönetilen Örneği için özellik kümesi, işlevsellik ve kullanım senaryoları, SQL Server'da sağlananlara benzer. Ana farklar şunlardır:
- Azure SQL Veritabanı, Fabric üzerinde SQL veritabanı ve Azure SQL Yönetilen Örneği'nde
event_filehedef her zaman diskteki dosyalar yerine Azure Depolama'daki blobları kullanır.- SQL Server'da hedef,
event_filediskteki dosyaları veya Azure Depolama'daki blobları kullanabilir.
- SQL Server'da hedef,
- Doku'daki Azure SQL Veritabanı ve SQL veritabanı'nda olay oturumları her zaman veritabanı kapsamındadır. Bu, şu anlama gelir:
- Bir veritabanındaki olay oturumu başka bir veritabanından olay toplayamaz.
- Bir olayın oturuma dahil edilmesi için kullanıcı veritabanı bağlamında gerçekleşmesi gerekir.
- Azure SQL Yönetilen Örneği'da hem sunucu kapsamlı hem de veritabanı kapsamlı olay oturumları oluşturabilirsiniz. Çoğu senaryo için sunucu kapsamlı olay oturumları kullanmanızı öneririz.
Get started
Genişletilmiş Olaylar'ı hızlı bir şekilde kullanmaya başlamanıza yardımcı olacak iki izlenecek yol örneği vardır:
-
Azure Depolama'da event_file hedefi ile bir olay oturumu oluşturun. Bu örnek, hedefi kullanarak Azure Depolama'daki bir dosyada (blob) olay verilerini nasıl yakalayabileceğinizi
event_filegösterir ve yaygın hatalara yönelik sorun giderme yönergelerini içerir. Yakalanan olay verilerini kalıcı hale getirmek istiyorsanız veya yakalanan verileri analiz etmek için SQL Server Management Studio'da (SSMS) olay görüntüleyicisini kullanmak istiyorsanız bunu kullanın. -
Bellekte ring_buffer hedefi olan bir etkinlik oturumu oluşturun. Bu örnek, hedefi kullanarak bellekteki bir olay oturumundan en son olayları nasıl yakalayabileceğinizi
ring_buffergösterir. Yakalanan olay verilerini depolamak zorunda kalmadan geçici araştırmalar veya sorun giderme sırasındaki son olaylara göz atmak için bunu hızlı bir yol olarak kullanın.
Genişletilmiş Olaylar salt okunur çoğaltmaları izlemek için kullanılabilir. Daha fazla bilgi için bkz . Çoğaltmalarla ilgili sorguları okuma.
En iyi yöntemler
Genişletilmiş Olayları güvenli, güvenilir ve veritabanı altyapısının sistem durumunu ve iş yükü performansını etkilemeden kullanmak için aşağıdaki en iyi yöntemleri benimseyin.
- Hedefi kullanırsanız
event_file:- Oturuma eklenen olaylara bağlı olarak, hedef tarafından
event_fileoluşturulan dosyalar hassas veriler içerebilir. Gereksiz okuma erişimi vermekten kaçınmak için, devralınan erişim de dahil olmak üzere depolama hesabı ve kapsayıcıdaki RBAC rol atamalarını ve erişim denetimi listelerini (ACL) dikkatle gözden geçirin. En az ayrıcalık ilkesini izleyin. - Olay oturumlarını oluşturduğunuz veritabanı veya yönetilen örnekle aynı Azure bölgesinde bir depolama hesabı kullanın.
- Depolama hesabının yedekliliğini veritabanının, elastik havuzun veya yönetilen örneğin yedekliliğiyle hizalayın. Yerel olarak yedekli kaynaklar için LRS, GRS veya RA-GRS kullanın. Alanlar arası yedekli kaynaklar için ZRS, GZRS veya RA-GZRS kullanın. Ayrıntılar için bkz . Azure Depolama yedekliliği .
- dışında bir
Hotkullanmayın. - Depolama hesabı için hiyerarşik ad alanını etkinleştirmeyin.
- Oturuma eklenen olaylara bağlı olarak, hedef tarafından
- Her Veritabanı Altyapısı yeniden başlatıldıktan sonra (örneğin, bir yük devretme veya bakım olayından sonra) otomatik olarak başlatılan sürekli çalışan bir olay oturumu oluşturmak istiyorsanız, veya
STARTUP_STATE = ONdeyimlerinizeCREATE EVENT SESSIONolay oturumu seçeneğiniALTER EVENT SESSIONekleyin. - Buna karşılık geçici sorun gidermede kullanılanlar gibi kısa süreli olay oturumları için kullanın
STARTUP_STATE = OFF. - Azure SQL Veritabanı yerleşik olay oturumundan kilitlenme olaylarını okumayın
dl. Toplanan çok sayıda kilitlenme olayı varsa, bunları sys.fn_xe_file_target_read_file() işleviyle okumak veritabanında bellek yetersiz hatasınamasterneden olabilir. Bu, oturum açma işlemlerini etkileyebilir ve uygulama kesintisine neden olabilir. Kilitlenmeleri izlemenin önerilen yolları için bkz. Genişletilmiş Olaylar ile Azure SQL Veritabanı'de kilitlenme graflarını toplama.
Olay oturumu hedefleri
Azure SQL Veritabanı, Fabric'teki SQL Veritabanı, Azure SQL Yönetilen Örneği ve SQL Server'da desteklenen Genişletilmiş Olaylar hedefleri hakkında daha fazla bilgi için bkz. Genişletilmiş Olaylar için Hedefler.
Transact-SQL farkları
CREATE EVENT SESSION, ALTER EVENT SESSION ve DROP EVENT SESSION deyimlerini SQL Server'da ve Azure SQL Yönetilen Örneği yürütürken yan tümcesini ON SERVER kullanırsınız. Azure SQL Veritabanı Azure SQL Veritabanı olay oturumlarında veritabanı kapsamlı olduğundan yan tümcesini ON DATABASE kullanırsınız.
Genişletilmiş Olaylar kataloğu görünümleri
Genişletilmiş Olaylar birkaç katalog görünümü sağlar. Katalog görünümleri size olay oturumu meta verileri veya tanımı hakkında bilgi gösterir. Bu görünümler etkin olay oturumlarının örnekleri hakkında bilgi döndürmez.
Her platform için katalog görünümlerinin listesi için bkz. Genişletilmiş Olaylar Kataloğu Görünümleri.
Genişletilmiş Olaylar dinamik yönetim görünümleri
Genişletilmiş Olaylar birkaç dinamik yönetim görünümü (DMV) sağlar. DMV'ler, başlatılan olay oturumları hakkında bilgi döndürür.
Her platform için DMV'lerin listesi için bkz. Genişletilmiş Olaylar Dinamik Yönetim Görünümleri.
Yaygın DMV'ler
Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve SQL Server için ortak olan ek Genişletilmiş Olaylar DMV'leri vardır:
Kullanılabilir olaylar, eylemler ve hedefler
Şu sorguyu kullanarak kullanılabilir olayları, eylemleri ve hedefleri alabilirsiniz:
SELECT o.object_type,
p.name AS package_name,
o.name AS db_object_name,
o.description AS db_obj_description
FROM sys.dm_xe_objects AS o
INNER JOIN sys.dm_xe_packages AS p
ON p.guid = o.package_guid
WHERE o.object_type IN ('action','event','target')
ORDER BY o.object_type,
p.name,
o.name;
Permissions
Platforma göre ayrıntılı izinler için izinlere bakın.
Depolama kapsayıcısı yetkilendirme ve denetimi
Azure Depolama bloblarıyla event_file hedefine kullandığınızda, olay oturumunu çalıştıran Veritabanı Motoru'nun blob kapsayıcısına belirli bir erişime sahip olması gerekir. Bu erişimi aşağıdaki yollardan biriyle vekleyebilirsiniz:
Depolama Blobu Veri Katkıda Bulunanı RBAC rolünü kapsayıcıdaki Azure SQL mantıksal sunucusunun veya Azure SQL yönetilen örneğinin yönetilen kimliğine atayın ve Veritabanı Altyapısı'na kimlik doğrulaması için yönetilen kimliği kullanmasını bildirmek üzere bir kimlik bilgisi oluşturun.
Depolama Blobu Veri Katkıda Bulunanı RBAC rolünü atamaya alternatif olarak, aşağıdaki RBAC eylemlerini atayabilirsiniz:
Namespace Action Microsoft.Storage/storageAccounts/blobServices/containers/readMicrosoft.Storage/storageAccounts/blobServices/containers/blobs/deleteMicrosoft.Storage/storageAccounts/blobServices/containers/blobs/readMicrosoft.Storage/storageAccounts/blobServices/containers/blobs/writeKapsayıcı için bir SAS belirteci oluşturun ve belirteci bir kimlik bilgisi içinde depolayın.
Azure SQL Veritabanı'de veritabanı kapsamlı bir kimlik bilgisi kullanmanız gerekir. Azure SQL Yönetilen Örneği ve SQL Server'da sunucu kapsamındaki bir kimlik bilgisi kullanın.
Azure Depolama kapsayıcınız için oluşturduğunuz SAS belirteci aşağıdaki gereksinimleri karşılamalıdır:
-
rwdl(Read,Write,Delete,List) izinlerine sahip olun. - Olay oturumunun ömrünü kapsayan başlangıç zamanına ve süre sonu süresine sahip olun.
- IP adresi kısıtlaması yoktur.
-
Kaynak idaresi
Azure SQL Veritabanı' de, genişletilmiş olay oturumları tarafından bellek tüketimi, kaynak çekişmelerini en aza indirmek için Veritabanı Altyapısı tarafından dinamik olarak denetlenmektedir.
Olay oturumları için kullanılabilir bellek sınırı vardır:
- Tek bir veritabanında toplam oturum belleği 128 MB ile sınırlıdır.
- Elastik havuzda tek tek veritabanları tek veritabanı sınırlarıyla sınırlıdır ve toplamda 512 MB'ı aşamaz.
Bellek sınırına başvuran bir hata iletisi alırsanız, gerçekleştirebileceğiniz düzeltici eylemler şunlardır:
- Daha az eşzamanlı olay oturumu çalıştırın.
- Olay oturumları için ve
CREATEdeyimlerini kullanarakALTER, oturum yan tümcesindeMAX_MEMORYbelirttiğiniz bellek miktarını azaltın.
Note
Genişletilmiş Olaylar'da yan MAX_MEMORY tümcesi iki bağlamda görünür: oturum oluştururken veya değiştirirken (oturum düzeyinde) ve hedefi kullanırken ring_buffer (hedef düzeyde). Yukarıdaki sınırlar oturum düzeyi belleği için geçerlidir.
Azure SQL Veritabanı'da başlatılan olay oturumlarının sayısıyla ilgili bir sınır vardır:
- Tek bir veritabanında sınır 100'dür.
- Elastik havuzda sınır, havuz başına veritabanı kapsamlı 100 oturumdur.
Yoğun elastik havuzlarda, yeni bir genişletilmiş olay oturumu başlatma işlemi, başlatılan toplam oturum sayısı 100'ün altında olsa bile bellek kısıtlamaları nedeniyle başarısız olabilir.
Bir olay oturumu tarafından tüketilen toplam belleği bulmak için, olay oturumunun başlatıldığı veritabanına bağlıyken aşağıdaki sorguyu yürütebilirsiniz:
SELECT name AS session_name,
total_buffer_size + total_target_memory AS total_session_memory
FROM sys.dm_xe_database_sessions;
Elastik havuzun toplam olay oturumu belleğini bulmak için bu sorgunun havuzdaki her veritabanında yürütülmesi gerekir.