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:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Genişletilmiş Olaylar, kullanıcıların sorunları izlemek ve gidermek için veri toplamasına olanak tanıyan basit bir performans izleme özelliğidir. Genişletilmiş Olaylar'ı kullanarak, performans izleme ve sorun giderme amaçlarıyla ilgili veritabanı altyapısı iç işlemlerinin ayrıntılarını görebilirsiniz. Genişletilmiş Olaylar hakkında daha fazla bilgi edinmek için bkz. Genişletilmiş Olaylara genel bakış.
Bu makale Genişletilmiş Olaylar'ı kullanmaya yeni başlayan ve yalnızca birkaç dakika içinde olay verilerini görmek isteyen SQL yöneticilerine, mühendislerine ve geliştiricilerine yardımcı olmayı amaçlamaktadır.
Genişletilmiş Olaylar XEvents olarak da bilinir ve bazen yalnızca XE olarak da bilinir.
Bu makaleyi okuduktan sonra şunları yapabilirsiniz:
- Örnek ekran görüntüleriyle SQL Server Management Studio'da (SSMS) bir olay oturumu oluşturmayı öğrenin.
- Ekran görüntülerini eşdeğer Transact-SQL deyimleriyle ilişkilendirin.
- SSMS kullanıcı arabiriminin ve XEvents T-SQL deyimlerinin ardındaki terimleri ve kavramları ayrıntılı olarak anlayın.
- Etkinlik oturumunuzu nasıl test edeceğinizi öğrenin.
- Aşağıdakiler dahil olmak üzere oturum sonuçlarını anlama:
- Sonuç depolama için kullanılabilir seçenekler
- İşlenen ve ham sonuçlar karşılaştırması
- Sonuçları farklı şekillerde ve farklı zaman ölçeklerinde görüntüleme araçları
- Kullanılabilir tüm olayları nasıl arayabileceğinizi ve keşfedebileceğinizi görün.
- Genişletilmiş Olaylar sistem görünümleri arasındaki ilişkileri anlama.
Tavsiye
Kod örnekleri de dahil olmak üzere Azure SQL Veritabanı'ndaki Genişletilmiş Olaylar hakkında daha fazla bilgi için bkz. Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği'nde Genişletilmiş Olaylar.
Önkoşullar
Başlamak için şunları yapmanız gerekir:
- SQL Server Management Studio'nun (SSMS) en son sürümünü yükleyin.
- Hesabınızın (SQL Server 2022'de kullanıma sunulmuştur) veya
CREATE ANY EVENT SESSIONALTER ANY EVENT SESSIONsahip olduğundan emin olun. - Ayrıca, SSMS kullanırken ve oluşturulan oturumları görüntülemek için oturum açma izni
VIEW SERVER PERFORMANCE STATEgerekir. - Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Fabric platformundaki SQL veritabanı için Genişletilmiş Olay dosyaları Azure Depolama'da depolanır. Bir Azure depolama hesabına ihtiyacınız olacaktır.
Genişletilmiş Olaylar ile ilgili güvenlik ve izinlerle ilgili ayrıntılara ekteki bu makalenin sonundan ulaşabilirsiniz.
SSMS'de Genişletilmiş Olaylar
SSMS, Genişletilmiş Olaylar için tam işlevsel bir kullanıcı arabirimi (UI) sağlar. T-SQL veya dinamik yönetim görünümlerini (DMV) kullanmak zorunda kalmadan bu kullanıcı arabirimi kullanılarak birçok senaryo gerçekleştirilebilir.
Sonraki bölümde, Genişletilmiş Olaylar oturumu oluşturmak için kullanıcı arabirimi adımlarını ve rapor edilen verileri görebilirsiniz. Bu makaledeki adımları uygulamalı olarak inceledikten veya gözden geçirdikten sonra, daha derin bir anlayış için adımlarda yer alan kavramlar hakkında bilgi edinebilirsiniz.
SSMS'de bir olay oturumu oluşturun
Genişletilmiş Olaylar oturumu oluşturduğunuzda sisteme şunları söylersiniz:
- Hangi etkinliklerle ilgileniyorsunuz?
- Sistemin verileri size nasıl raporlamasını istediğinizi.
Tanıtımda Yeni Oturum iletişim kutusu açılır ve adlı dört sayfanın nasıl kullanılacağı gösterilir:
- General
- Events
- Veri Depolama
- Advanced
Metin ve destekleyici ekran görüntüleri SSMS sürümünüzde biraz farklı olabilir, ancak temel kavramların açıklamasıyla ilgili olmalıdır.
Bir veritabanı altyapısı örneğine bağlanın. Genişletilmiş Olaylar, SQL Server 2014 (12.x), Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği ile başlayarak desteklenir.
Nesne Gezgini'nde Yönetim > Genişletilmiş Olaylar'ı seçin. Azure SQL Veritabanı'nda olay oturumları veritabanı kapsamındadır, bu nedenle Genişletilmiş Olaylar seçeneği Yönetim altında değil her veritabanının altında bulunur.
Oturumlar klasörüne sağ tıklayın ve Yeni Oturum... öğesini seçin. Yeni Oturum... iletişim kutusu, Yeni Oturum Sihirbazı'na tercih edilir, ancak ikisi benzerdir.
Tavsiye
Bu öğretici adımlarında, dört sayfayı da ilerletene kadar Tamam'a basmayın: Genel, Olaylar, Veri Depolama ve Gelişmiş.
Genel sayfasını seçin. Ardından
YourSessionmetin kutusuna , veya istediğiniz herhangi bir adı yazın. Henüz Tamam'ı seçmeyin, çünkü diğer sayfalara yine de bazı ayrıntılar girmeniz gerekir.Olaylar sayfasını seçin.
Olay kitaplığı alanındaki açılan listede Yalnızca olay adları'nı seçin.
- Metin kutusuna yazın
sql_statement. Bu, listeyi yalnızca adında olansql_statementolayları gösterecek şekilde filtreler. - Ekranı kaydırarak
sql_statement_completedadlı olayı seçin. - Olayı
>kutusuna taşımak için sağ ok düğmesini seçin.
- Metin kutusuna yazın
Olaylar sayfasında kalarak Yapılandır düğmesini seçin. Bu, seçili olaylar için Olay yapılandırma seçenekleri kutusunu açar.
Filtre (Koşul) sekmesini seçin. Ardından, Yan tümce eklemek için buraya tıklayın yazan yeni filtre satırını seçin. Bu öğreticide, tüm
SELECTifadelerini birHAVINGkoşuluyla yakalamak için bu filtreyi (önerme olarak da bilinir) yapılandıracağız.Alan açılan listesinde bir seçenek seçin
sqlserver.sql_text.-
İşleç için
like_i_sql_unicode_stringseçin. Burada işleçiadında case-insensitive anlamına gelir. -
Değer için yazın
%SELECT%HAVING%. Burada, yüzde işaretleri (%) herhangi bir karakter dizisini temsil eden joker karakterlerdir.
Uyarı
Alanın iki bölümden
sqlserveroluşan adında paket adı vesql_textalan adı yer alır. Daha önce seçtiğimiz olay,sql_statement_completedseçtiğimiz alanla aynı pakette olmalıdır.-
İşleç için
Veri Depolama sayfasını seçin.
Hedefler alanında, Hedef eklemek için buraya tıklayın yazan yeni Hedef Türü satırını seçin. Bu öğreticide, yakalanan genişletilmiş olay verilerimizi bir olay dosyasına yazacağız. Bu, olay verilerinin daha sonra açıp görüntüleyebileceğimiz bir dosyada depolandığı anlamına gelir. SQL Server 2019 (15.x) ile başlayarak olay verileri De Azure Depolama'da depolanacak şekilde yazılabilir. Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Fabric'deki SQL veritabanı için olay dosyaları her zaman Azure Depolama'da depolanır.
-
Tür açılır listesinden
event_fileöğesini seçin.
-
Tür açılır listesinden
Özellikler alanında, sunucudaki dosya adı metin kutusuna tam yolu ve dosya adını yazın. Gözat butonunu da kullanabilirsiniz. Dosya adı uzantısı olmalıdır
xel. Örneğimizde kullandıkC:\temp\YourSession_Target.xel.Gelişmiş sayfasını seçin. Varsayılan yapılandırmada, genişletilmiş olay oturumunun bu .xel hedefinin sunucu performansı üzerinde en az etkiye sahip olması veya hiç etkisi olmamalıdır, ancak Gelişmiş sayfasındaki bu ayarlar kaynakları ve gecikme süresini artırmak veya azaltmak için kullanılabilir.
Bu olay oturumunu oluşturmak için alttaki Tamam düğmesini seçin.
SSMS Nesne Gezgini'ne dönün, Oturumlar klasörünü açın veya yenileyin ve genişletilmiş olaylar oturumu için
YourSessionyeni düğümü görün. Oturum henüz başlatılmadı. Bu öğreticide daha sonra başlatacağız.
SSMS'de olay oturumlarını düzenleme
SSMS Nesne Gezgini'nde, düğümüne sağ tıklayıp Özellikler'i seçerek olay oturumunuzu düzenleyebilirsiniz. Aynı çok sayfalı iletişim kutusu görüntülenir.
T-SQL kullanarak olay oturumu oluşturma
SSMS'de, olay oturumunuzu oluşturmak için aşağıdaki gibi bir T-SQL betiği oluşturabilirsiniz:
- Olay oturumu düğümüne sağ tıklayın, ardından Oturum Betiği Olarak > OLUŞTUR'u Seç ve >Panoya kopyalayın.
- Herhangi bir metin düzenleyicisine yapıştırın.
için oluşturulan CREATE EVENT SESSION T-SQL deyimi YourSessionaşağıdadır:
CREATE EVENT SESSION [YourSession]
ON SERVER -- For SQL Server and Azure SQL Managed Instance
-- ON DATABASE -- For Azure SQL Database
ADD EVENT sqlserver.sql_statement_completed
(
ACTION(sqlserver.sql_text)
WHERE
( [sqlserver].[like_i_sql_unicode_string]([sqlserver].[sql_text], N'%SELECT%HAVING%')
)
)
ADD TARGET package0.event_file
(SET filename=N'C:\temp\YourSession_Target.xel');
GO
Uyarı
Azure SQL Veritabanı'nda ON DATABASE yerine ON SERVER kullanın.
Olay oturumunun koşullu silinmesi
CREATE EVENT SESSION deyiminden önce, aynı ada sahip bir oturumun zaten mevcut olması durumunda, bir DROP EVENT SESSION deyimini koşullu olarak yürütebilirsiniz. Bu işlem mevcut oturumu siler. Bu olmadan, aynı ada sahip bir oturum oluşturmaya çalışmak bir hataya neden olur.
IF EXISTS (SELECT *
FROM sys.server_event_sessions
WHERE name = 'YourSession')
BEGIN
DROP EVENT SESSION YourSession
ON SERVER;
END
GO
T-SQL kullanarak olay oturumunu başlatma ve durdurma
Bir olay oturumu oluşturduğunuzda, varsayılan ayar otomatik olarak çalışmaya başlamamasıdır. Aşağıdaki ALTER EVENT SESSION T-SQL deyimini kullanarak istediğiniz zaman olay oturumunuzu başlatabilir veya durdurabilirsiniz.
ALTER EVENT SESSION [YourSession]
ON SERVER
STATE = START; -- STOP;
Veritabanı altyapısı örneği başlatıldığında olay oturumunu otomatik olarak başlatacak şekilde yapılandırma seçeneğiniz vardır.
STARTUP STATE = ON içindeki CREATE EVENT SESSION anahtar sözcüğüne bakın.
SSMS kullanıcı arabirimi, sayfasında sunucu > adlı ilgili bir onay kutusu sunar.
Olay oturumlarını test edin
Olay oturumunuzu şu adımlarla test edin:
- Nesne Gezgini'nde olay oturumu düğümünüze sağ tıklayın ve Oturum Başlat'ı seçin.
- Olay oturumunu oluşturduğunuz aynı sunucuya (veya Azure SQL Veritabanı'ndaki aynı veritabanına) bağlıyken aşağıdaki
SELECT...HAVINGdeyimi birkaç kez çalıştırın. Her çalıştırmadaHAVINGcümlesindeki değeri değiştirmeyi ve dönüşümlü olarak 2 ile 3 arasında geçiş yapmayı düşünün. Bu, sonuçlardaki farkları görmenizi sağlar. - Oturum düğümünüzü sağ tıklatın ve Oturumu Durdur'u seçin.
- SELECT ve sonuçları görüntüleme hakkında sonraki alt bölümü okuyun.
SELECT c.name,
COUNT(*) AS [Count-Per-Column-Repeated-Name]
FROM sys.syscolumns AS c
INNER JOIN sys.sysobjects AS o
ON o.id = c.id
WHERE o.type = 'V'
AND c.name LIKE '%event%'
GROUP BY c.name
HAVING Count(*) >= 3 --2 -- Try both values during session.
ORDER BY c.name;
Eksiksiz bir şekilde, önceki SELECT...HAVING örnek çıktısı aşağıda verilmiştir.
/* Approximate output, 6 rows, all HAVING Count >= 3:
name Count-Per-Column-Repeated-Name
--------------------- ------------------------------
event_group_type 4
event_group_type_desc 4
event_session_address 5
event_session_id 5
is_trigger_event 4
trace_event_id 3
*/
Olay oturumu verilerini XML olarak görüntüleme
SSMS'deki bir sorgu penceresinde, oturumunuz tarafından yakalanan olay verilerini görmek için aşağıdaki SELECT deyimi çalıştırın. Her satır bir olay oluşumunu temsil eder.
CAST(... AS xml), sütunun veri türünü nvarchar'dan xml'ye değiştirir. Bu, sütun değerini seçerek daha kolay okunması için yeni bir pencerede açmanıza olanak tanır.
Uyarı
event_file hedef dosya adına her zaman sayısal bir parça xel olarak ekler. Aşağıdaki sorguyu çalıştırabilmeniz için önce, bu sayısal bölümü içeren dosyanın gerçek tam adını xel kopyalamanız ve deyimine SELECT yapıştırmanız gerekir. Aşağıdaki örnekte, sayısal bölüm şeklindedir _0_131085363367310000.
SELECT object_name,
file_name,
file_offset,
event_data,
'CLICK_NEXT_CELL_TO_BROWSE_XML RESULTS!' AS [CLICK_NEXT_CELL_TO_BROWSE_XML_RESULTS],
CAST(event_data AS XML) AS [event_data_XML]
-- TODO: In the SSMS results grid, click this XML cell
FROM sys.fn_xe_file_target_read_file(
'C:\Temp\YourSession_Target_0_131085363367310000.xel', NULL, NULL, NULL
);
Bu sorgu, belirli bir olay satırının tam sonuçlarını görüntülemek için iki yol sağlar:
SSMS'de komutunu
SELECTçalıştırın ve sütundaevent_data_XMLbir hücre seçin.Bir hücreden XML dizesini
event_datasütununa kopyalayın. Not Defteri gibi herhangi bir metin düzenleyicisine yapıştırın ve uzantılıxmldosyayı kaydedin. Ardından dosyayı bir tarayıcıda veya XML verilerini görüntüleyebilen bir düzenleyicide açın.
XML'de olay verileri
Ardından sonuçların XML biçimindeki bir bölümünü göreceğiz. Kısalık için aşağıdaki XML düzenlenmiştir.
<data name="row_count"> değerini görüntüler. Bu değer 6, daha önce görüntülenen altı sonuç satırımızla eşleşir. Ve tüm SELECT ifadeyi görebiliriz.
<event name="sql_statement_completed" package="sqlserver" timestamp="2016-05-24T04:06:08.997Z">
<data name="duration">
<value>111021</value>
</data>
<data name="cpu_time">
<value>109000</value>
</data>
<data name="physical_reads">
<value>0</value>
</data>
<data name="last_row_count">
<value>6</value>
</data>
<data name="offset">
<value>0</value>
</data>
<data name="offset_end">
<value>584</value>
</data>
<data name="statement">
<value>SELECT c.name,
COUNT(*) AS [Count-Per-Column-Repeated-Name]
FROM sys.syscolumns AS c
INNER JOIN sys.sysobjects AS o
ON o.id = c.id
WHERE o.type = 'V'
AND c.name LIKE '%event%'
GROUP BY c.name
HAVING Count(*) >= 3 --2 -- Try both values during session.
ORDER BY c.name;</value>
</data>
</event>
SSMS'de olay oturumu verilerini görüntüleme
SSMS kullanıcı arabiriminde bir olay oturumu tarafından yakalanan verileri görüntülemek için kullanabileceğiniz çeşitli gelişmiş özellikler vardır. Daha fazla bilgi için bkz. SQL Server Management Studio'da olay verilerini görüntüleme.
Hedef Verileri Görüntüle ve Canlı Verileri İzle etiketli bağlam menüsü seçenekleriyle başlarsınız.
Hedef verileri görüntüleme
SSMS Nesne Gezgini'nde, olay oturumu düğümünüzün altındaki hedef düğüme sağ tıklayabilirsiniz, örneğin package0.event_counter. Bağlam menüsünde Hedef Verileri Görüntüle'yi seçin. SSMS verileri görüntüler.
Bir oturumda yeni olaylar gerçekleştiğinde görüntü güncelleştirilmez. Ancak Hedef Verileri Görüntüle'yi yeniden seçebilirsiniz.
Canlı verileri izleme
SSMS Nesne Gezgini'nde olay oturumu düğümünüzü sağ tıklatabilirsiniz. Bağlam menüsünde Canlı Verileri İzle'yi seçin. SSMS, gelen verileri gerçek zamanlı olarak gelmeye devam ettikçe görüntüler.
Genişletilmiş Olaylar'daki terimler ve kavramlar
Aşağıdaki tabloda Genişletilmiş Olaylar için kullanılan terimler listelenmiştir ve anlamları açıklanmaktadır.
| Süre | Description |
|---|---|
event session |
Bir veya daha fazla olaya odaklanmış bir yapı ve eylemler gibi destekleyici öğeler, hedef olarak kullanılır. deyimi CREATE EVENT SESSION her olay oturumunu oluşturur. Bir olay oturumunu istediğiniz gibi başlatmak ve durdurmak için ALTER yapabilirsiniz.Bağlamın "olay oturumu" anlamına geldiği durumlarda, olay oturumu bazen yalnızca oturum olarak adlandırılır. Olay oturumlarıyla ilgili diğer ayrıntılar şu bölümde açıklanmıştır: Genişletilmiş Olaylar oturumları. |
event |
Sistemde etkin bir olay oturumu tarafından takip edilen belirli bir olay. Örneğin, sql_statement_completed olay belirli bir T-SQL deyiminin tamamlandığını gösterir. Etkinlik süresini ve diğer verileri raporlayabilir. |
target |
Yakalanan bir olaydan çıkış verilerini alan öğe. Hedef, verileri size görüntüler. Örneğin, bu hızlı başlangıçta daha önce kullanılmakta olan event_file hedefi ve en son olayları bellekte tutan ring_buffer hedefi verilebilir.Herhangi bir olay oturumu için her tür hedef kullanılabilir. Ayrıntılar için bkz. Genişletilmiş Olaylar için Hedefler. |
action |
Olayca bilinen bir alan. Alandaki veriler hedefe gönderilir. Eylem alanı koşul filtresiyle yakından ilişkilidir. |
predicateveya filtreleyin |
Bir olay alanındaki verilerin testi, olay oluşumlarının yalnızca ilginç bir alt kümesinin hedefe gönderilmesi için kullanılır. Örneğin, bir filtre yalnızca T-SQL deyiminin sql_statement_completed dizgesini içerdiği olay oluşumlarını içerebilir. |
package |
Bir dizi olayı merkeze alan bir yapıda, öğelerin her birine eklenen bir ad niteleyicisi. Örneğin, bir pakette T-SQL metniyle ilgili olaylar olabilir. Bir etkinlik toplu işlem içindeki tüm T-SQL ile ilgili olabilir. Bu arada, daha dar başka bir olay da bireysel T-SQL ifadeleriyle ilgili. Ayrıca, herhangi bir T-SQL deyimi için started ve completed olayları vardır.Olaylar için uygun alanlar da olaylarla birlikte pakette yer alır. package0 içindeki hedeflerin çoğu, diğer birçok paketin olayları ile birlikte kullanılır. |
Genişletilmiş Olay senaryoları ve kullanım ayrıntıları
Veritabanı altyapısını ve sorgu iş yüklerini izlemek ve sorunlarını gidermek için Genişletilmiş Olaylar'ı kullanmak için çok sayıda senaryo vardır. Aşağıdaki makalelerde kilitle ilgili senaryoları kullanan örnekler verilmiştir:
-
Üzerinde En Çok Kilit Bulunan Nesneleri Bulma
- Bu senaryo, ham olay verilerini özetlenmiş (dilimlenmiş) bir biçimde size görüntülemeden önce işleyen histogram hedefini kullanır.
-
Kilit Tutan Sorguları Belirleme
- Bu senaryo, çift eşleştirme hedefini kullanır, burada olay çiftleri
sqlserver.lock_acquirevesqlserver.lock_releaseolarak tanımlanır.
- Bu senaryo, çift eşleştirme hedefini kullanır, burada olay çiftleri
Paketlerde mevcut olayları keşfetme
Aşağıdaki sorgu, adı üç karakter dizesini sqliçeren kullanılabilir her olay için bir satır döndürür. Yan tümcesini LIKE düzenleyerek farklı olay adları arayabilirsiniz. Sonuç kümesi, olayı içeren paketi de tanımlar.
SELECT -- Find an event you want.
p.name AS [Package-Name],
o.object_type,
o.name AS [Object-Name],
o.description AS [Object-Descr],
p.guid AS [Package-Guid]
FROM sys.dm_xe_packages AS p
INNER JOIN sys.dm_xe_objects AS o
ON p.guid = o.package_guid
WHERE o.object_type = 'event' --'action' --'target'
AND p.name LIKE '%'
AND o.name LIKE '%sql%'
ORDER BY p.name,
o.object_type,
o.name;
Aşağıdaki sonuç örneği, döndürülen satırın burada column name = value biçiminde döndürülmüş halini gösterir. Veriler, önceki örnek adımlarda kullanılan olaydan sql_statement_completed alınıyor. Nesnenin açıklaması (bu örnekte bir olay), belge dizesi olarak görev alır.
Package-Name = sqlserver
object_type = event
Object-Name = sql_statement_completed
Object-Descr = Occurs when a Transact-SQL statement has completed.
Package-Guid = 655FD93F-3364-40D5-B2BA-330F7FFB6491
SSMS kullanıcı arabirimini kullanarak olayları bulma
Olayları ada göre bulmanın bir diğer seçeneği de önceki ekran görüntüsünde gösterilen Yeni Oturum > Olayları > Olay kitaplığı iletişim kutusunu kullanmaktır. Kısmi bir olay adı yazabilir ve eşleşen tüm olay adlarını bulabilirsiniz.
SQL İzleme olay sınıfları
Genişletilmiş Olayların SQL Trace olay sınıfları ve sütunlarıyla kullanılması hakkında açıklamaya şu adresten ulaşabilirsiniz: SQL İzleme Olay Sınıfları ile Genişletilmiş Olaylar Eşdeğerlerini Görüntüleme.
Windows için Olay İzleme (ETW)
Windows için Olay İzleme (ETW) ile Genişletilmiş Olayları kullanma açıklamaları şu konumda bulunabilir:
- Windows hedefi için Olay İzleme
- Genişletilmiş Olayları kullanarak Sistem Etkinliğini İzleme
Sistem etkinlik oturumları
SQL Server ve Azure SQL Yönetilen Örneği'nde, varsayılan olarak birkaç sistem olayı oturumu oluşturulur ve bu oturumlar, veritabanı motoru başlatıldığında başlatılacak şekilde yapılandırılmıştır. Çoğu olay oturumunda olduğu gibi az miktarda kaynak kullanır ve iş yükü performansını önemli ölçüde etkilemez. Microsoft, bu oturumların etkin ve çalışır durumda kalmasını önerir. Sistem durumu oturumları, özellikle system_health oturumu, genellikle izleme ve sorun giderme için yararlıdır.
Bu olay oturumlarını SSMS Nesne Gezgini'nde Yönetim > Genişletilmiş Olaylar > Oturumları altında görebilirsiniz. Örneğin, SQL Server'da bu sistem olayı oturumları şunlardır:
AlwaysOn_healthsystem_healthtelemetry_events
PowerShell sağlayıcısı
Genişletilmiş Olayları SQL Server PowerShell sağlayıcısını kullanarak yönetebilirsiniz. Daha fazla bilgi için bkz. Genişletilmiş Olaylar için PowerShell Sağlayıcısı'nı kullanma.
Sistem görünümleri
Genişletilmiş Olaylar için sistem görünümleri şunlardır:
-
Katalog görünümleri: tarafından
CREATE EVENT SESSIONtanımlanan olay oturumları hakkında bilgi için. - Dinamik yönetim görünümleri (DMV'ler): etkin (başlatılan) olay oturumları hakkında bilgi için.
SQL Server'da Genişletilmiş Olaylar için Sistem Görünümlerinden SELECT'ler ve JOIN'ler aşağıdakiler hakkında bilgi sağlar:
- Görünümleri birleştirme
- Bu görünümleri temel alan birkaç yararlı sorgu
- Aşağıdakiler arasındaki bağıntı:
- Sütunları görüntüleme
-
CREATE EVENT SESSIONCümleler - SSMS Kullanıcı Arabirimi
Ek: Genişletilmiş Olay izin sahiplerini bulmak için sorgular
Bu makalede belirtilen izinler şunlardır:
ALTER ANY EVENT SESSIONVIEW SERVER STATECONTROL SERVER
Aşağıdaki SELECT...UNION ALL deyim, olay oturumları oluşturmak ve Genişletilmiş Olaylar için sistem kataloğu görünümlerini sorgulamak için gerekli izinlere sahip olan kişileri gösteren satırları döndürür.
-- Ascertain who has the permissions listed in the ON clause.
-- 'CONTROL SERVER' permission includes all lower permissions like
-- 'ALTER ANY EVENT SESSION' and 'VIEW SERVER STATE'.
SELECT 'Owner-is-Principal' AS [Type-That-Owns-Permission],
NULL AS [Role-Name],
prin.name AS [Owner-Name],
PERM.permission_name COLLATE Latin1_General_CI_AS_KS_WS AS [Permission-Name]
FROM sys.server_permissions AS PERM
INNER JOIN sys.server_principals AS prin
ON prin.principal_id = PERM.grantee_principal_id
WHERE PERM.permission_name IN (
'CREATE ANY EVENT SESSION',
'ALTER ANY EVENT SESSION',
'VIEW SERVER PERFORMANCE STATE',
'VIEW SERVER STATE',
'CONTROL SERVER'
)
UNION ALL
-- Plus check for members of the 'sysadmin' fixed server role,
-- because 'sysadmin' includes the 'CONTROL SERVER' permission.
SELECT 'Owner-is-Role',
prin.name, -- [Role-Name]
CAST((IsNull(pri2.name, N'No members')) AS NVARCHAR(128)),
NULL
FROM sys.server_role_members AS rolm
RIGHT JOIN sys.server_principals AS prin
ON prin.principal_id = rolm.role_principal_id
LEFT JOIN sys.server_principals AS pri2
ON rolm.member_principal_id = pri2.principal_id
WHERE prin.name = 'sysadmin';
HAS_PERMS_BY_NAME işlevi
Aşağıdaki SELECT deyim izinlerinizi bildirir. Yerleşik işlev HAS_PERMS_BY_NAME dayanır.
Ayrıca, diğer oturum açma bilgilerinin kimliğini geçici olarak kullanma yetkiniz varsa, diğer oturum açma bilgilerinin izne olmadığını görmek için REVERT ve ALTER ANY EVENT SESSION deyimlerinin açıklamasını kaldırabilirsiniz.
--EXECUTE AS LOGIN = 'LoginNameHere';
SELECT HAS_PERMS_BY_NAME(NULL, NULL, 'ALTER ANY EVENT SESSION');
--REVERT;