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ı
Bu makalede, Genişletilmiş Olaylar ile ilgili iki sistem görünümü kümesi açıklanmaktadır. Makalede şunlar gösterilmektedir:
- Çeşitli sistem görünümleri nasıl yapılır
JOIN. - Sistem görünümlerinden belirli türdeki bilgileri nasıl alırsınız.
Genişletilmiş Olaylar için iki sistem görünümü kümesi vardır:
Katalog görünümleri
- Bu görünümler CREATE EVENT SESSION (Transact-SQL) tarafından oluşturulan her olay oturumunun tanımı hakkındaki bilgileri depolar. Ancak bu görünümler herhangi bir oturumun çalışmaya başlayıp başlamadığı hakkında hiçbir şey bilmez.
- Örneğin, SSMS Nesne Gezgini tanımlı bir olay oturumu göstermiyorsa, görünümden
sys.server_event_session_targetsSELECT işlemi sıfır satır döndürür.
- Örneğin, SSMS Nesne Gezgini tanımlı bir olay oturumu göstermiyorsa, görünümden
- Örneklerin çoğu SQL Server ve Azure SQL Yönetilen Örneği için yazılmıştır. Ancak, küçük düzenlemeler ile Azure SQL Veritabanı'nda ve Fabric'teki SQL veritabanında, DMV adındaki
serveröğesinidatabaseolarak değiştirerek çalıştırabilirsiniz.-
sys.server_event_session*SQL Server ve Azure SQL Yönetilen Örneği'nin ad ön ekidir. -
sys.database_event_session*, Azure SQL Veritabanı ve Fabric'teki SQL veritabanı için ad ön ekidir. - Her biriyle ilgili daha fazla bilgi için bkz. Genişletilmiş Olaylar Kataloğu Görünümleri.
-
Dinamik yönetim görünümleri (DMV' ler)
Olay oturumlarını çalıştırmanın geçerli etkinliği hakkındaki bilgileri depolayın. Ancak bu DMV'ler oturumların tanımı hakkında çok az şey bilir.
- Tüm olay oturumları şu anda durdurulmuş olsa bile,
SELECTçeşitli paketler etkin belleğe yüklendiği için bir sunucu başlatıldığında görünümdesys.dm_xe_packageshala satır döndürülür. - Aynı nedenle,
sys.dm_xe_objectsvesys.dm_xe_object_columnsyine de satır döndürüyor.
- Tüm olay oturumları şu anda durdurulmuş olsa bile,
Genişletilmiş Olaylar dinamik yönetim görünümleri (DMV'ler) için ön ek:
-
sys.dm_xe_*SQL Server ve Azure SQL Yönetilen Örneği'nin ad ön ekidir. -
sys.dm_xe_database_*genellikle Azure SQL Veritabanı ve Microsoft Fabric platformundaki SQL veritabanı için ad ön ekidir.
-
Permissions
Sistem görünümlerine erişim için SELECT aşağıdaki izin gereklidir:
- SQL Server 2019 (15.x) ve önceki sürümler sunucuda izin gerektirir
VIEW SERVER STATE. - SQL Server 2022 (16.x) ve sonraki sürümleri sunucuda izin gerektirir
VIEW SERVER PERFORMANCE STATE. - Azure SQL Veritabanı ve Azure Fabric'teki SQL veritabanı, veritabanında
VIEW DATABASE PERFORMANCE STATEizni gerektirir.
Katalog görünümleri
Bu sayfanın amaçları doğrultusunda SSMS veyaT-SQL ile genişletilmiş olaylar oturumu oluşturun. SQL Server Management Studio'nun (SSMS) en son sürümünü yükleyin.
SQL Server Management Studio'da (SSMS) oturum oluşturma
SSMS'de, Nesne Gezgini'ndeYönetim> genişleterek Yeni Oturum iletişim kutusunu başlatabilir ve ardından Oturumlar>Yeni Oturum'a sağ tıklayabilirsiniz.
Büyük Yeni Oturum iletişim kutusunda, Genel etiketli ilk bölümünde Olay oturumunu sunucu başlangıcında başlat seçeneğinin belirlendiğini görüyoruz.
Ardından Olaylar bölümünde olayın seçildiğini görüyoruz lock_deadlock . Bu olay için üç Eylem'in seçildiğini görüyoruz. Bu, Yapılandır düğmesinin seçildiği ve bunun seçilmesinin ardından griye döndüğü anlamına gelir.
Ardından, Olaylar>Yapılandır bölümünde resource_type ayarlandığını PAGEgörüyoruz. Bu, resource_type değeri dışındaPAGEbir değerse olay altyapısından hedefe olay verilerinin gönderilmeyeceği anlamına gelir.
Veritabanı adı ve sayaç için ek koşul filtreleri görüyoruz.
> Events, Filter Predicate Fields (Actions).
Veri Depolama bölümünde event_file hedef olarak seçildiğini görüyoruz. Ayrıca Dosya rol devretmeyi etkinleştir seçeneğinin belirlendiğini görüyoruz.
> Data Storage, eventfile_enablefileroleover.
Son olarak Gelişmiş bölümünde Maksimum dağıtım gecikme süresi değerinin 4 saniyeye düşürüldüğünü görüyoruz.
T-SQL'de olay oturumu oluşturma
Bir olay oturumu tanımının nasıl oluşturulduğundan bağımsız olarak, SSMS'den oturum mükemmel bir şekilde eşleşen bir Transact-SQL betiğine dönüştürülebilir. Yukarıdaki Yeni Oturum ekran görüntülerini inceleyebilir ve görünür belirtimlerini aşağıdaki oluşturulan T-SQL CREATE EVENT SESSION betiğindeki yan tümcelerle karşılaştırabilirsiniz.
Bir olay oturumuna ters mühendislik uygulamak için , Nesne Gezgini'nde oturum düğümünüzü sağ tıklatıp Betik Oturumu olarak>CREATE ** >Pano seçeneğini belirleyebilirsiniz.
CREATE EVENT SESSION [event_session_test3]
ON SERVER -- Or, if on Azure SQL Database, ON DATABASE.
ADD EVENT sqlserver.lock_deadlock
(
SET
collect_database_name = (1)
ACTION
(
package0.collect_system_time,
package0.event_sequence,
sqlserver.client_hostname
)
WHERE
(
[database_name] = N'InMemTest2'
AND [package0].[counter] <= (16)
AND [resource_type] = (6)
)
)
ADD TARGET package0.event_file
(
SET
filename = N'c:\temp\\event_session_test3_EF.xel',
max_file_size = (20),
max_rollover_files = (2)
)
WITH
(
MAX_MEMORY = 4096 KB,
EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
MAX_DISPATCH_LATENCY = 4 SECONDS,
MAX_EVENT_SIZE = 0 KB,
MEMORY_PARTITION_MODE = NONE,
TRACK_CAUSALITY = OFF,
STARTUP_STATE = ON
);
Katalog görünümü SELECT JOIN UNION
Aşağıdaki T-SQL SELECT deyimi, birkaç küçük SELECT'in UNION'lar ile birleştirilmesi nedeniyle uzundur. Küçük SELECT'lerden herhangi biri kendi başına çalıştırılabilir. Küçük SELECT'ler, çeşitli sistem kataloglama görünümlerinin birlikte nasıl joINed edilmesi gerektiğini gösterir.
SELECT
s.name AS [Session-Name],
'1_EVENT' AS [Clause-Type],
'Event-Name' AS [Parameter-Name],
e.name AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
JOIN sys.server_event_session_events AS e
ON e.event_session_id = s.event_session_id
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'2_EVENT_SET' AS [Clause-Type],
f.name AS [Parameter-Name],
f.value AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
JOIN sys.server_event_session_events AS e
ON e.event_session_id = s.event_session_id
JOIN sys.server_event_session_fields As f
ON f.event_session_id = s.event_session_id
AND f.object_id = e.event_id
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'3_EVENT_ACTION' AS [Clause-Type],
a.package + '.' + a.name
AS [Parameter-Name],
'(Not_Applicable)' AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
JOIN sys.server_event_session_events AS e
ON e.event_session_id = s.event_session_id
JOIN sys.server_event_session_actions As a
ON a.event_session_id = s.event_session_id
AND a.event_id = e.event_id
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'4_EVENT_PREDICATES' AS [Clause-Type],
e.predicate AS [Parameter-Name],
'(Not_Applicable)' AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
JOIN sys.server_event_session_events AS e
ON e.event_session_id = s.event_session_id
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'5_TARGET' AS [Clause-Type],
t.name AS [Parameter-Name],
'(Not_Applicable)' AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
JOIN sys.server_event_session_targets AS t
ON t.event_session_id = s.event_session_id
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'6_TARGET_SET' AS [Clause-Type],
f.name AS [Parameter-Name],
f.value AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
JOIN sys.server_event_session_targets AS t
ON t.event_session_id = s.event_session_id
JOIN sys.server_event_session_fields As f
ON f.event_session_id = s.event_session_id
AND f.object_id = t.target_id
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'7_WITH_MAX_MEMORY' AS [Clause-Type],
'max_memory' AS [Parameter-Name],
s.max_memory AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'7_WITH_STARTUP_STATE' AS [Clause-Type],
'startup_state' AS [Parameter-Name],
s.startup_state AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
WHERE
s.name = 'event_session_test3'
ORDER BY
[Session-Name],
[Clause-Type],
[Parameter-Name]
;
Çıktı
Aşağıdaki tabloda, önceki SELECT JOIN UNION çalıştırıldığında elde edilen çıktı gösterilmektedir. Çıkış parametresi adları ve değerleri, önceki CREATE EVENT SESSION ifadede açıkça görünen adlarla eşleşir.
| Oturum Adı | Madde Türü | Parametre Adı | Parametre-Değer |
|---|---|---|---|
event_session_test3 |
1_ETKİNLİK | Etkinlik Adı | kilit_kilitlenme |
event_session_test3 |
2_EVENT_SET | veritabanı_adı_topla | 1 |
event_session_test3 |
3_EVENT_ACTION | sqlserver.client_hostname | (Not_Applicable) |
event_session_test3 |
3_EVENT_ACTION | sqlserver.collect_system_time | (Not_Applicable) |
event_session_test3 |
3_EVENT_ACTION | sqlserver.event_sequence (SQL Server olay dizisi) | (Not_Applicable) |
event_session_test3 |
4_EVENT_PREDICATES | ([sqlserver]. [equal_i_sql_unicode_string]([database_name],N'InMemTest2') AND [package0]. [counter]<=(16)) |
(Not_Applicable) |
event_session_test3 |
5_TARGET | etkinlik_dosyası | (Not_Applicable) |
event_session_test3 |
6_TARGET_SET | filename | c:\temp\event_session_test3_EF.xel |
event_session_test3 |
6_TARGET_SET | maksimum_dosya_boyutu | 20 |
event_session_test3 |
6_TARGET_SET | maksimum_devir_dosyaları | 2 |
event_session_test3 |
7_WITH_MAX_MEMORY | maksimum bellek (max_memory) | 4096 |
event_session_test3 |
7_WITH_STARTUP_STATE | başlatma_durumu | 1 |
Bu işlem katalog görünümlerindeki bölümü tamamlar.
Dinamik yönetim görünümleri (DMV' ler)
Bu bölümde, her birinin belirli bir yararlı iş amacına hizmet eden çeşitli Transact-SQL SELECT deyimleri sağlanır. Ayrıca, SELECT'ler DMV'leri istediğiniz yeni kullanımlar için birlikte nasıl kullanabileceğinizi JOIN gösterir.
DMV'lerin başvuru belgeleri Genişletilmiş Olaylar Dinamik Yönetim Görünümleri'nde sağlanır
Genişletilmiş olaylar alanında kullanabileceğiniz tüm nesneler sisteme yüklenen paketlerden gelir. Bu bölümde tüm paketler ve açıklamaları listelenir.
SELECT --C.1
p.name AS [Package],
p.description AS [Package-Description]
FROM
sys.dm_xe_packages AS p
ORDER BY
p.name;
Çıktı
Paketlerin listesi aşağıdadır.
| Package | Paket Açıklaması |
|---|---|
filestream |
SQL Server FILESTREAM ve FileTable için genişletilmiş olaylar |
package0 |
Varsayılan paket. Tüm standart türleri, haritaları, karşılaştırma işleçlerini, eylemlerini ve hedeflerini içerir |
qds |
Sorgu Deposu için genişletilmiş olaylar |
SecAudit |
Güvenlik Denetimi Olayları |
sqlclr |
Genişletilmiş olaylar için SQL CLR |
sqlos |
SQL İşletim Sistemi için genişletilmiş olaylar |
SQLSatellite |
SQL Server Machine Learning Services için Genişletilmiş Olaylar |
sqlserver |
Microsoft SQL Server için genişletilmiş olaylar |
sqlsni |
Microsoft SQL Server için genişletilmiş olaylar |
ucs |
Birleşik İletişim Platformu için genişletilmiş olaylar |
XtpCompile |
XTP Derlemesi için genişletilmiş olaylar |
XtpEngine |
XTP Motoru için genişletilmiş olaylar |
XtpRuntime |
XTP Çalışma Zamanı için genişletilmiş olaylar |
Önceki baş harflerin tanımları:
-
clr= .NET'in Ortak Dil Çalışma Zamanı -
qds= Sorgu Veri Mağazası -
sni= Sunucu Ağ Arabirimi -
ucs= Birleşik İletişim Yığını -
xtp= Yoğun İşlem İşleme
Türe göre sıralanmış tüm kullanılabilir öğeleri SEÇ
Aşağıdaki SELECT , her nesne için bir satır döndürür.
SELECT --C.3
o.object_type AS [Type-of-Item],
p.name AS [Package],
o.name AS [Item],
o.description AS [Item-Description]
FROM
sys.dm_xe_objects AS o
JOIN sys.dm_xe_packages AS p ON o.package_guid = p.guid
WHERE
o.object_type IN ('action' , 'target' , 'pred_source')
AND
(
(o.capabilities & 1) = 0
OR
o.capabilities IS NULL
)
ORDER BY
[Type-of-Item],
[Package],
[Item];
Etkinliğiniz için kullanılabilir veri alanları
Aşağıda SELECT , olay türünüz için özel olan tüm veri alanları döndürülmektedir.
-
WHEREMaddeye dikkat edin:column_type = 'data'. - Ayrıca,
WHEREiçino.name =yan tümce değerini düzenlemeniz gerekir.
SELECT -- C.4
p.name AS [Package],
c.object_name AS [Event],
c.name AS [Column-for-Predicate-Data],
c.description AS [Column-Description]
FROM
sys.dm_xe_object_columns AS c
JOIN sys.dm_xe_objects AS o
ON o.name = c.object_name
JOIN sys.dm_xe_packages AS p
ON p.guid = o.package_guid
WHERE
c.column_type = 'data'
AND
o.object_type = 'event'
AND
o.name = '\<EVENT-NAME-HERE!>' --'lock_deadlock'
ORDER BY
[Package],
[Event],
[Column-for-Predicate-Data];
Çıktı
Önceki SELECT ve WHERE o.name = 'lock_deadlock' tarafından aşağıdaki satırlar döndürüldü.
- Her satır, olay için isteğe bağlı bir filtreyi
sqlserver.lock_deadlocktemsil eder. - Aşağıdaki gösterimden sütun
Column-Descriptionçıkarılmıştır. Değeri genellikleNULLşeklindedir. - Bu, genellikle
NULLolan atlanan Açıklama sütunu dışında gerçek çıktıdır. - Bu satırlar şeklindedir
WHERE object_type = 'lock_deadlock'.
| Package | Event | Predicate-Data için sütun |
|---|---|---|
sqlserver |
lock_deadlock |
associated_object_id |
sqlserver |
lock_deadlock |
database_id |
sqlserver |
lock_deadlock |
database_name |
sqlserver |
lock_deadlock |
deadlock_id |
sqlserver |
lock_deadlock |
duration |
sqlserver |
lock_deadlock |
lockspace_nest_id |
sqlserver |
lock_deadlock |
lockspace_sub_id |
sqlserver |
lock_deadlock |
lockspace_workspace_id |
sqlserver |
lock_deadlock |
mode |
sqlserver |
lock_deadlock |
object_id |
sqlserver |
lock_deadlock |
owner_type |
sqlserver |
lock_deadlock |
resource_0 |
sqlserver |
lock_deadlock |
resource_1 |
sqlserver |
lock_deadlock |
resource_2 |
sqlserver |
lock_deadlock |
resource_description |
sqlserver |
lock_deadlock |
resource_type |
sqlserver |
lock_deadlock |
transaction_id |
sys.dm_xe_map_values ve olay alanları
Aşağıdaki SELECT, JOIN görünümüne bir sys.dm_xe_map_values içerir.
öğesinin SELECT amacı, olay oturumunuz için seçebileceğiniz çok sayıda alanı görüntüler. Olay alanları iki şekilde kullanılabilir:
- Hedefinize hangi alan değerlerinin yazılacağını her olay oluşumu için seçmek.
- Hedefinize hangi olay oluşumlarının gönderileceğini ve hangilerinin gönderilmeyeceğini filtrelemek için.
SELECT --C.5
dp.name AS [Package],
do.name AS [Object],
do.object_type AS [Object-Type],
'o--c' AS [O--C],
dc.name AS [Column],
dc.type_name AS [Column-Type-Name],
dc.column_type AS [Column-Type],
dc.column_value AS [Column-Value],
'c--m' AS [C--M],
dm.map_value AS [Map-Value],
dm.map_key AS [Map-Key]
FROM sys.dm_xe_objects AS do
JOIN sys.dm_xe_object_columns AS dc
ON dc.object_name = do.name
JOIN sys.dm_xe_map_values AS dm
ON dm.name = dc.type_name
JOIN sys.dm_xe_packages AS dp
ON dp.guid = do.package_guid
WHERE
do.object_type = 'event'
AND
do.name = '\<YOUR-EVENT-NAME-HERE!>' --'lock_deadlock'
ORDER BY
[Package],
[Object],
[Column],
[Map-Value];
Çıktı
Sırada, bir önceki T-SQL'den SELECT elde edilen 100'den fazla gerçek çıktı satırının bir örneklemesi bulunmaktadır. Bu makalenin başka bir yerindeki resource_type örneğinde kullanılan öncül filtrelemesi ile satırı ilgilidir.
/*** 5 sampled rows from the actual rows returned.
NOTE: 'resource_type' under 'Column'.
Package Object Object-Type O--C Column Column-Type-Name Column-Type Column-Value C--M Map-Value Map-Key
------- ------ ----------- ---- ------ ---------------- ----------- ------------ ---- --------- -------
sqlserver lock_deadlock event o--c CHANNEL etw_channel readonly 2 c--m Operational 4
sqlserver lock_deadlock event o--c KEYWORD keyword_map readonly 16 c--m access_methods 1024
sqlserver lock_deadlock event o--c mode lock_mode data NULL c--m IX 8
sqlserver lock_deadlock event o--c owner_type lock_owner_type data NULL c--m Cursor 2
sqlserver lock_deadlock event o--c resource_type lock_resource_type data NULL c--m PAGE 6
Therefore, on your CREATE EVENT SESSION statement, in its ADD EVENT WHERE clause,
you could put:
WHERE( ... resource_type = 6 ...) -- Meaning: 6 = PAGE.
***/
Hedefler için parametreler
Aşağıdaki SELECT , hedefiniz için her parametreyi döndürür. Her parametre zorunlu olup olmadığını belirtmek için etiketlendi. Parametrelere atadığınız değerler hedefin davranışını etkiler.
-
WHEREMaddeye dikkat edin:object_type = 'customizable'. - Ayrıca,
WHEREiçino.name =yan tümce değerini düzenlemeniz gerekir.
SELECT --C.6
p.name AS [Package],
o.name AS [Target],
c.name AS [Parameter],
c.type_name AS [Parameter-Type],
CASE c.capabilities_desc
WHEN 'mandatory' THEN 'YES_Mandatory'
ELSE 'Not_mandatory'
END AS [IsMandatoryYN],
c.description AS [Parameter-Description]
FROM
sys.dm_xe_objects AS o
JOIN sys.dm_xe_packages AS p
ON o.package_guid = p.guid
LEFT OUTER JOIN sys.dm_xe_object_columns AS c
ON o.name = c.object_name
AND c.column_type = 'customizable' -- !
WHERE
o.object_type = 'target'
AND
o.name LIKE '%' -- Or '\<YOUR-TARGET-NAME-HERE!>'.
ORDER BY
[Package],
[Target],
[IsMandatoryYN] DESC,
[Parameter];
Çıktı
Aşağıdaki parametre satırları, önceki SELECTtarafından döndürülenlerin küçük bir alt kümesidir.
/*** Actual output, all rows, where target name = 'event_file'.
Package Target Parameter Parameter-Type IsMandatoryYN Parameter-Description
------- ------ --------- -------------- ------------- ---------------------
package0 event_file filename unicode_string_ptr YES_Mandatory Specifies the location and file name of the log
package0 event_file increment uint64 Not_mandatory Size in MB to grow the file
package0 event_file lazy_create_blob boolean Not_mandatory Create blob upon publishing of first event buffer, not before.
package0 event_file max_file_size uint64 Not_mandatory Maximum file size in MB
package0 event_file max_rollover_files uint32 Not_mandatory Maximum number of files to retain
package0 event_file metadatafile unicode_string_ptr Not_mandatory Not used
***/
DMV SELECT target_data sütununu XML'ye dönüştürme
Bu DMV SELECT, aktif olay oturumunuzun hedefinden veri satırları döndürür. Veriler XML'e yayınlanır ve bu da döndürülen hücrenin SSMS'de kolayca görüntülenmesi için seçilebilir olmasını sağlar.
- Olay oturumunuz durdurulursa, bu
SELECTişlem sıfır satır döndürür. -
WHEREyan tümce değerinis.name =için düzenlemeniz gerekir.
SELECT --C.7
s.name,
t.target_name,
CAST(t.target_data AS XML) AS [XML-Cast]
FROM
sys.dm_xe_session_targets AS t
JOIN sys.dm_xe_sessions AS s
ON s.address = t.event_session_address
WHERE
s.name = '\<Your-Session-Name-Here!>';
Çıktı, yalnızca XML hücresini de içeren tek satırdır.
İşte önceki SELECT çıktısından alınan tek satır. Sütun XML-Cast , SSMS'nin XML olduğunu anladığı bir XML dizesi içerir. Bu nedenle SSMS, XML-Cast hücresini seçilebilir hale getirmesi için gerektiğini anlar.
Bu işlem için:
- Değer,
s.name =olayı için bir olay oturumundacheckpoint_beginolarak ayarlandı. - Hedef bir ring_buffer.
name target_name XML-Cast
---- ----------- --------
checkpoint_session_ring_buffer2 ring_buffer <RingBufferTarget truncated="0" processingTime="0" totalEventsProcessed="2" eventCount="2" droppedCount="0" memoryUsed="104"><event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T01:28:23.508Z"><data name="database_id"><type name="uint32" package="package0" /><value>5</value></data></event><event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T01:28:26.975Z"><data name="database_id"><type name="uint32" package="package0" /><value>5</value></data></event></RingBufferTarget>
Çıkış, hücre seçildiğinde XML güzel görüntüleniyor
XML-Cast hücre seçildiğinde aşağıdaki güzel ekran görüntülenir.
<RingBufferTarget truncated="0" processingTime="0" totalEventsProcessed="2" eventCount="2" droppedCount="0" memoryUsed="104">
<event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T01:28:23.508Z">
<data name="database_id">
<type name="uint32" package="package0" />
<value>5</value>
</data>
</event>
<event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T01:28:26.975Z">
<data name="database_id">
<type name="uint32" package="package0" />
<value>5</value>
</data>
</event>
</RingBufferTarget>
İşlevden SELECT kullanarak disk sürücüsünden event_file verilerini alın
Etkinlik oturumunun bazı veriler topladıktan sonra durdurulduğunu varsayalım. Oturumunuz event_file hedefini kullanacak şekilde tanımlanmışsa işlevini sys.fn_xe_target_read_fileçağırarak verileri almaya devam edebilirsiniz.
- Bunu çalıştırmadan
SELECTönce, yolunuz ve dosya adınızı işlev çağrısının parametresinde düzenlemeniz gerekir.- Oturumunuzu her yeniden başlattığınızda, SQL sistemi tarafından gerçek .XEL dosya adlarınıza eklenen fazladan basamaklara dikkat etmeyin. Normal kök adını ve uzantısını vermeniz yeter.
SELECT --C.8
f.module_guid,
f.package_guid,
f.object_name,
f.file_name,
f.file_offset,
CAST(f.event_data AS XML) AS [Event-Data-As-XML]
FROM
sys.fn_xe_file_target_read_file(
'\<YOUR-PATH-FILE-NAME-ROOT-HERE!>*.xel',
--'c:\temp\\Checkpoint_Begins_ES*.xel', -- Example.
NULL, NULL, NULL
) AS f;
Çıkış, SELECT FROM fonksiyonu tarafından döndürülen satırlar
Sonraki satırlar, önceki SELECT FROM işlev tarafından döndürülen satırlardır.
Event-Data-As-XML XML sütunu, özellikle olay oluşumuyla ilgili verileri içerir.
module_guid package_guid object_name file_name file_offset Event-Data-As-XML
----------- ------------ ----------- --------- ----------- -----------------
D5149520-6282-11DE-8A39-0800200C9A66 03FDA7D0-91BA-45F8-9875-8B6DD0B8E9F2 checkpoint_begin c:\temp\\Checkpoint_Begins_ES_20160615bb-_0_131125086091700000.xel 5120 <event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T03:30:14.023Z"><data name="database_id"><value>5</value></data><action name="session_id" package="sqlserver"><value>60</value></action><action name="database_id" package="sqlserver"><value>5</value></action></event>
D5149520-6282-11DE-8A39-0800200C9A66 03FDA7D0-91BA-45F8-9875-8B6DD0B8E9F2 checkpoint_end c:\temp\\Checkpoint_Begins_ES_20160615bb-_0_131125086091700000.xel 5120 <event name="checkpoint_end" package="sqlserver" timestamp="2016-07-09T03:30:14.025Z"><data name="database_id"><value>5</value></data></event>
D5149520-6282-11DE-8A39-0800200C9A66 03FDA7D0-91BA-45F8-9875-8B6DD0B8E9F2 checkpoint_begin c:\temp\\Checkpoint_Begins_ES_20160615bb-_0_131125086091700000.xel 5632 <event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T03:30:17.704Z"><data name="database_id"><value>5</value></data><action name="session_id" package="sqlserver"><value>60</value></action><action name="database_id" package="sqlserver"><value>5</value></action></event>
D5149520-6282-11DE-8A39-0800200C9A66 03FDA7D0-91BA-45F8-9875-8B6DD0B8E9F2 checkpoint_end c:\temp\\Checkpoint_Begins_ES_20160615bb-_0_131125086091700000.xel 5632 <event name="checkpoint_end" package="sqlserver" timestamp="2016-07-09T03:30:17.709Z"><data name="database_id"><value>5</value></data></event>
Çıkış, bir XML hücresi
Burada, önceki döndürülen satır kümesindeki ilk XML hücresinin içeriği yer alır.
<event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T03:30:14.023Z">
<data name="database_id">
<value>5</value>
</data>
<action name="session_id" package="sqlserver">
<value>60</value>
</action>
<action name="database_id" package="sqlserver">
<value>5</value>
</action>
</event>