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 event_file hedefi tarafından oluşturulan olay günlüğü XEL dosyalarını okur. Sonuç kümesindeki her satır bir olayı temsil eder. Olay verileri XML biçiminde döndürülür.
XEL dosyaları SQL Server Management Studio tarafından da okunabilir. İzlenecek yol için bkz . Hızlı Başlangıç: Genişletilmiş Olaylar.
Transact-SQL söz dizimi kuralları
Sözdizimi
sys.fn_xe_file_target_read_file ( path , mdpath , initial_file_name , initial_offset )
Arguments
yol
Okunacak dosyaların yolu. yol, varsayılan olmayan nvarchar(260)şeklindedir.
Yerel dosya sistemindeki dosyalarla kullanıldığında , yol bir olay oturumu günlük dosyasının adını içermelidir. Dosya adı, birden çok dosyadaki verileri okumak için joker karakter olarak içerebilir
*.Azure Depolama kapsayıcısında bloblarla kullanıldığında yol , iki bölümün birleştirilmiş olmasıyla oluşturulan bir HTTP URL'dir:
Azure Depolama depolama kapsayıcısının yolu ve ardından eğik çizgi (
/).Kapsayıcıdaki blobların adları için okunması gereken ortak bir ön ek. Tek bir blobu okumak için blobun tam adını kullanın.
Örneğin
https://<storage-account-name>.blob.core.windows.net/container-name>/xe_session, ile başlayanxe_sessionve uzantıyı içeren blob adının geri kalanından bağımsız olarak tüm bloblardan veri alır. Joker karakterler belirtilemiyor.
mdpath
Path bağımsız değişkeni tarafından belirtilen dosyaya veya dosyalara karşılık gelen meta veri dosyasının yolu . mdpath , varsayılan olmayan nvarchar(260) şeklindedir.
SQL Server 2012 (11.x) ve sonraki sürümlerinde bu parametreye ihtiyacınız yoktur. Geriye dönük uyumluluk için, SQL Server'ın önceki sürümlerinde oluşturulan günlük dosyaları için korunur. SQL Server 2016 (13.x) ve sonraki sürümlerinde, dosyalar artık kullanılmayacağı için NULL bu parametre olarak .xemverilebilir.
initial_file_name
Yoldan okunacak ilk dosya.
initial_file_namevarsayılan olmayan nvarchar(260) değeridir. Bağımsız değişken olarak belirtilirse NULL, yolda bulunan tüm dosyalar okunur.
Dosya adı, aynı sys.fn_xe_file_target_read_file sahip bir işlev çağrısının sonuç kümesinde döndürülen bir değer olmalıdır.
initial_offset
Daha önce okunan son uzaklığı belirtmek için kullanılır. Uzaklık (dahil) değerine kadar tüm olayları atlar. Olay numaralandırması belirtilen uzaklık sonrasında başlar.
initial_offsetbüyük bir şey. Bağımsız değişken olarak belirtilirse NULL , dosyanın tamamı okunur.
Uyarı
initial_file_name ve initial_offset eşleştirilmiş bağımsız değişkenlerdir. Bağımsız değişkenlerden biri için bir değer belirtirseniz, diğer bağımsız değişken için bir değer belirtmeniz gerekir.
Tablo döndürüldü
| Sütun adı | Veri türü | Description |
|---|---|---|
module_guid |
uniqueidentifier | Olay modülü GUID'si. Boş değer atanamaz. |
package_guid |
uniqueidentifier | Olay paketi GUID'i. Boş değer atanamaz. |
object_name |
nvarchar(256) | Olayın adı. Boş değer atanamaz. |
event_data |
nvarchar(max) | Olay içeriği, XML biçimindedir. Boş değer atanamaz. |
file_name |
nvarchar(260) | Olayı içeren dosyanın adı. Boş değer atanamaz. |
file_offset |
bigint | Olayı içeren dosyadaki bloğun uzaklığı. Boş değer atanamaz. |
timestamp_utc |
datetime2(7) | Olayın tarih ve saati (UTC saat dilimi). Boş değer atanamaz. Şunlar için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümleri, Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği. |
Açıklamalar
Management Studio'da yürütülerek büyük sonuç kümelerinin okunması sys.fn_xe_file_target_read_file hataya neden olabilir. Büyük sonuç kümelerini insan tarafından okunabilen bir dosyaya aktarmak için Dosyaya Sonuçlar modunu (SQL Server Management Studio'da Ctrl+Shift+F) kullanarak dosyayı başka bir araçla okuyun.
SQL Server 2008 (10.0.x) ve SQL Server 2008 R2 (10.50.x), XEL ve XEM biçiminde oluşturulan izleme sonuçlarını kabul edin. SQL Server 2012 (11.x) Genişletilmiş Olaylar yalnızca XEL biçiminde izleme sonuçlarını destekler. İzleme sonuçlarını XEL biçiminde okumak için Management Studio kullanmanızı öneririz.
Azure SQL
Azure SQL Yönetilen Örneği veya Azure SQL Veritabanı'nda, hedef tarafından event_file oluşturulan dosyalar her zaman bir Azure Depolama kapsayıcısında blob olarak depolanır.
Azure Depolama kapsayıcısına erişime izin veren bir kimlik bilgisi varsa, bu bloblardan verileri okumak için kullanabilirsiniz sys.fn_xe_file_target_read_file . İzlenecek yol için Azure Depolama'da event_file hedefiyle olay oturumu oluşturma makalesini gözden geçirin.
Yerel bir dosya sistemi yolu belirtirseniz şuna benzer bir hata iletisi alırsınız:
Msg 40538, Level 16, State 3, Line 15
A valid URL beginning with 'https://' is required as value for any filepath specified.
Permissions
SQL Server 2019 (15.x) ve önceki sürümlerde VIEW SERVER STATE sunucuda izin gerekir.
SQL Server 2022 (16.x) ve sonraki sürümlerinde sunucuda izin gerekir VIEW SERVER PERFORMANCE STATE .
Örnekler
A. Yerel dosya sistemindeki dosyalardan veri alma
SQL Server 2014 (12.x) ve önceki sürümler için, aşağıdaki örnek hem hem .xel de .xem dosyası dahil olmak üzere tüm dosyalardan tüm satırları alır. Bu örnekte, dosya hedefleri ve meta dosyaları klasöründeki izleme klasöründe C:\traces\ bulunur.
SELECT *
FROM sys.fn_xe_file_target_read_file('C:\traces\*.xel', 'C:\traces\metafile.xem', NULL, NULL);
SQL Server 2016 (13.x) ve sonraki sürümlerinde, aşağıdaki örnek varsayılan klasördeki tüm .xel dosyaların içindeki olayları alır. Varsayılan konum, örneğin yükleme klasöründedir \MSSQL\Log .
SELECT *
FROM sys.fn_xe_file_target_read_file('*.xel', NULL, NULL, NULL);
SQL Server 2017 (14.x) ve sonraki sürümlerinde aşağıdaki örnek, yerleşik system_health oturumundan yalnızca son güne ait verileri alır. system_health oturumu, varsayılan olarak SQL Server'a dahil edilen bir Genişletilmiş Olaylar oturumudur. Daha fazla bilgi için bkz. system_health oturumunu kullanma.
SELECT *
FROM sys.fn_xe_file_target_read_file('system_health*.xel', NULL, NULL, NULL)
WHERE CAST (timestamp_utc AS DATETIME2 (7)) > DATEADD(DAY, -1, GETUTCDATE());
B. Azure Depolama kapsayıcısında bloblardan veri alma
ile başlayan xe_session_adlarla kapsayıcıdaki tüm bloblardaki verileri okuyun.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_',
NULL,
NULL,
NULL
);
Blobdan xe_session_0_133614763336380000.xel verileri okuma.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_0_133614763336380000.xel',
NULL,
NULL,
NULL
);
33280 uzaklığıyla başlayarak blobdan xe_session_0_133614763336380000.xel verileri okuyun.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_',
NULL,
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_0_133614763336380000.xel',
33280
);
İlgili içerik
- Genişletilmiş Olaylar Dinamik Yönetim Görünümleri
- Genişletilmiş Olaylar Kataloğu Görünümleri (Transact-SQL)
- Genişletilmiş olaylara genel bakış
- Genişletilmiş Olaylar için Hedefler
- SQL Server Management Studio'da olay verilerini görüntüleme
- Mevcut SQL İzleme Betiğini Genişletilmiş Olaylar Oturumuna Dönüştürme
- system_health oturumunu kullanma