Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Odczytuje pliki XEL dziennika zdarzeń utworzone przez obiekt docelowy zdarzeń event_file rozszerzonych. Każdy wiersz w zestawie wyników reprezentuje zdarzenie. Dane zdarzenia są zwracane w formacie XML.
Pliki XEL można również odczytać za pomocą programu SQL Server Management Studio. Aby zapoznać się z przewodnikiem, zobacz Szybki start: zdarzenia rozszerzone.
Transact-SQL konwencje składni
Składnia
sys.fn_xe_file_target_read_file ( path , mdpath , initial_file_name , initial_offset )
Arguments
path
Ścieżka do plików do odczytu. ścieżka to nvarchar(260) bez wartości domyślnej.
W przypadku użycia z plikami w lokalnym systemie plików ścieżka musi zawierać nazwę pliku dziennika sesji zdarzeń. Nazwa pliku może zawierać
*się jako symbol wieloznaczny do odczytywania danych z wielu plików.W przypadku użycia z obiektami blob w kontenerze usługi Azure Storage ścieżka to adres URL HTTP skonstruowany przez łączenie dwóch części:
Ścieżka do kontenera magazynu usługi Azure Storage, po której następuje ukośnik (
/).Wspólny prefiks nazw obiektów blob w kontenerze, który powinien być odczytywany. Aby odczytać pojedynczy obiekt blob, użyj pełnej nazwy obiektu blob.
Na przykład użycie metody
https://<storage-account-name>.blob.core.windows.net/container-name>/xe_sessionas ścieżka pobiera dane ze wszystkich obiektów blob z nazwami rozpoczynającymi się odxe_session, a niezależnie od pozostałej części nazwy obiektu blob, w tym rozszerzenia. Nie można określić symboli wieloznacznych.
mdpath
Ścieżka do pliku metadanych odpowiadającego plikowi lub plikom określonym przez argument ścieżki . mdpath to nvarchar(260) bez wartości domyślnej.
W programie SQL Server 2012 (11.x) i nowszych wersjach nie potrzebujesz tego parametru. Jest ona przechowywana w celu zapewnienia zgodności z poprzednimi wersjami, w przypadku plików dziennika wygenerowanych w poprzednich wersjach programu SQL Server. W programie SQL Server 2016 (13.x) i nowszych wersjach ten parametr można podać jako NULL, ponieważ .xem pliki nie są już używane.
initial_file_name
Pierwszy plik do odczytu ze ścieżki.
initial_file_name to nvarchar(260) bez wartości domyślnej. Jeśli NULL zostanie określony jako argument, wszystkie pliki znalezione w ścieżce są odczytywane.
Nazwa pliku musi być wartością zwracaną w zestawie sys.fn_xe_file_target_read_file wyników wywołania funkcji z tą samą ścieżką.
initial_offset
Służy do określania ostatniego przesunięcia odczytanych wcześniej. Pomija wszystkie zdarzenia do przesunięcia (włącznie). Wyliczanie zdarzeń rozpoczyna się po określonym przesunięcie.
initial_offset jest bigint. Jeśli NULL zostanie określony jako argument, cały plik zostanie odczytany.
Uwaga / Notatka
initial_file_name i initial_offset są sparowane argumenty. Jeśli określisz wartość dla dowolnego argumentu, musisz określić wartość dla innego argumentu.
Zwrócona tabela
| Nazwa kolumny | Typ danych | Description |
|---|---|---|
module_guid |
uniqueidentifier | Identyfikator GUID modułu zdarzeń. Nie można pustą wartość null. |
package_guid |
uniqueidentifier | Identyfikator GUID pakietu zdarzeń. Nie można pustą wartość null. |
object_name |
nvarchar(256) | Nazwa zdarzenia. Nie można pustą wartość null. |
event_data |
nvarchar(max) | Zawartość zdarzenia w formacie XML. Nie można pustą wartość null. |
file_name |
nvarchar(260) | Nazwa pliku zawierającego zdarzenie. Nie można pustą wartość null. |
file_offset |
bigint | Przesunięcie bloku w pliku zawierającym zdarzenie. Nie można pustą wartość null. |
timestamp_utc |
datetime2(7) | Data i godzina (strefa czasowa UTC) zdarzenia. Nie można pustą wartość null. Dotyczy: SQL Server 2017 (14.x) i nowsze wersje, Azure SQL Database i Azure SQL Managed Instance. |
Uwagi
Odczytywanie sys.fn_xe_file_target_read_file dużych zestawów wyników przez wykonanie w programie Management Studio może spowodować wystąpienie błędu. Użyj wyników do trybu plików (w programie SQL Server Management Studio, Ctrl+Shift+F), aby wyeksportować duże zestawy wyników do pliku czytelnego dla człowieka, aby odczytać plik za pomocą innego narzędzia.
Programy SQL Server 2008 (10.0.x) i SQL Server 2008 R2 (10.50.x) akceptują wyniki śledzenia wygenerowane w formacie XEL i XEM. Zdarzenia rozszerzone programu SQL Server 2012 (11.x) obsługują tylko wyniki śledzenia w formacie XEL. Zalecamy używanie programu Management Studio do odczytywania wyników śledzenia w formacie XEL.
Azure SQL
W usłudze Azure SQL Managed Instance lub Azure SQL Database pliki utworzone przez event_file obiekt docelowy są zawsze przechowywane jako obiekty blob w kontenerze usługi Azure Storage.
Możesz użyć sys.fn_xe_file_target_read_file polecenia , aby odczytywać dane z tych obiektów blob, jeśli istnieje poświadczenie zezwalające na dostęp do kontenera usługi Azure Storage. Aby zapoznać się z przewodnikiem, zapoznaj się z artykułem Tworzenie sesji zdarzeń z obiektem docelowym event_file w usłudze Azure Storage.
Jeśli określisz lokalną ścieżkę systemu plików, zostanie wyświetlony komunikat o błędzie podobny do następującego:
Msg 40538, Level 16, State 3, Line 15
A valid URL beginning with 'https://' is required as value for any filepath specified.
Permissions
W programie SQL Server 2019 (15.x) i poprzednich wersjach wymagane jest VIEW SERVER STATE uprawnienie na serwerze.
W programie SQL Server 2022 (16.x) i nowszych wersjach wymagane jest VIEW SERVER PERFORMANCE STATE uprawnienie na serwerze.
Przykłady
A. Pobieranie danych z plików w lokalnym systemie plików
W przypadku programu SQL Server 2014 (12.x) i poprzednich wersji poniższy przykład pobiera wszystkie wiersze ze wszystkich plików, w tym pliki .xel i .xem . W tym przykładzie obiekty docelowe i metapliki plików znajdują się w folderze śledzenia w folderze C:\traces\ .
SELECT *
FROM sys.fn_xe_file_target_read_file('C:\traces\*.xel', 'C:\traces\metafile.xem', NULL, NULL);
W programie SQL Server 2016 (13.x) i nowszych wersjach poniższy przykład pobiera zdarzenia we wszystkich .xel plikach w folderze domyślnym. Lokalizacja domyślna znajduje się \MSSQL\Log w folderze instalacyjnym wystąpienia.
SELECT *
FROM sys.fn_xe_file_target_read_file('*.xel', NULL, NULL, NULL);
W programie SQL Server 2017 (14.x) i nowszych wersjach poniższy przykład pobiera tylko dane z ostatniego dnia z wbudowanej sesji system_health. Sesja system_health to sesja zdarzeń rozszerzonych, która jest domyślnie dołączona do programu SQL Server. Aby uzyskać więcej informacji, zobacz Use the system_health session (Korzystanie z sesji system_health).
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. Pobieranie danych z obiektów blob w kontenerze usługi Azure Storage
Odczytywanie danych ze wszystkich obiektów blob w kontenerze o nazwach rozpoczynających się od xe_session_.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_',
NULL,
NULL,
NULL
);
Odczytywanie xe_session_0_133614763336380000.xel danych z obiektu blob.
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
);
Odczytywanie xe_session_0_133614763336380000.xel danych z obiektu blob rozpoczynającego się od przesunięcia 33280.
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
);
Treści powiązane
- Dynamiczne widoki zarządzania zdarzeniami rozszerzonymi
- Widoki wykazu zdarzeń rozszerzonych (Transact-SQL)
- Omówienie zdarzeń rozszerzonych
- Cele dla zdarzeń rozszerzonych
- Wyświetlanie danych zdarzeń w programie SQL Server Management Studio
- Konwertowanie istniejącego skryptu śledzenia SQL na sesję zdarzeń rozszerzonych
- Korzystanie z sesji system_health