विस्तारित फोरम module_end
अवधि इकाई के बारे में इस मंच में एक प्रश्न था , जिसका मैंने उत्तर दिया। यहाँ विवरण ।
क्या यह हमेशा सभी घटनाओं के लिए माइक्रोसेकंड में होता है?
विस्तारित फोरम module_end
अवधि इकाई के बारे में इस मंच में एक प्रश्न था , जिसका मैंने उत्तर दिया। यहाँ विवरण ।
क्या यह हमेशा सभी घटनाओं के लिए माइक्रोसेकंड में होता है?
जवाबों:
यह मिलिसकॉन्ड, माइक्रोसेकंड का मिश्रण है और कुछ अज्ञात हैं। सबसे आसान तरीका है जो मैंने निर्धारित करने के लिए tsql कोड के नीचे इस्तेमाल किया है जो यह निर्धारित करता है कि क्या है।
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'
यहां SQL 2016 SP1 सर्वर से परिणाम सेट किया गया है। मैं केवल इसका हिस्सा पोस्ट कर रहा हूं। DurationUnit कॉलम को देखें और आप 3 अलग-अलग मान देख सकते हैं।
NULL वालों के लिए मुझे सबसे अच्छा विकल्प लगता है कि दौड़ना (यदि शुरू और अंत समय के साथ संभव हो) और यह ढूंढें कि इकाई क्या है।
मैंने vnext SQL Server के खिलाफ एक ही क्वेरी चलाई और पुष्टि की कि हम भविष्य के लिए एक ही भ्रम रखेंगे।