Durasi acara diperpanjang Millisecond atau Microsecond?

15

Ada pertanyaan di forum ini tentang module_endunit durasi Acara yang Diperpanjang , yang saya jawab. Detail di sini .

Apakah selalu dalam mikrodetik untuk semua acara?

SqlWorldWide
sumber

Jawaban:

30

Ini adalah campuran dari Millisecond, Microsecond dan beberapa tidak diketahui. Cara termudah untuk menemukan saya menggunakan kode tsql di bawah ini untuk menentukan yang mana.

SELECT p.name package_name,
       o.name event_name,
       c.name event_field,
       DurationUnit= CASE
                         WHEN c.description LIKE '%milli%' 
                         THEN SUBSTRING(c.description, CHARINDEX('milli', c.description),12)
                         WHEN c.description LIKE '%micro%' 
                         THEN SUBSTRING(c.description, CHARINDEX('micro', c.description),12)
                         ELSE NULL
                     END,
       c.type_name field_type,
       c.column_type column_type
FROM sys.dm_xe_objects o
JOIN sys.dm_xe_packages p ON o.package_guid = p.guid
JOIN sys.dm_xe_object_columns c ON o.name = c.object_name
WHERE o.object_type = 'event'
AND c.name ='duration'

Berikut adalah hasil yang ditetapkan dari server SQL 2016 SP1. Saya hanya memposting sebagian saja. Lihatlah kolom DurationUnit dan Anda bisa melihat 3 nilai berbeda.

masukkan deskripsi gambar di sini

Untuk yang NULL saya menemukan opsi terbaik adalah menjalankan (jika mungkin dengan waktu mulai dan berakhir) dan temukan unitnya.

Saya menjalankan kueri yang sama terhadap SQL Server vnext dan mengkonfirmasi kami akan membawa kebingungan yang sama ke masa depan.

SqlWorldWide
sumber