फ़ाइल विकास घटनाओं को पहचानें


9

मैं अपने पोर्टफोलियो में कई डीबी की खोज कर रहा हूं जो डिफ़ॉल्ट ऑटोग्रो सेटिंग्स (1 एमबी या 10% वेतन वृद्धि) के साथ बनाई गई हैं जो कि विस्तारित अवधि के लिए विस्तारित हुई हैं। अगर मैं प्रत्येक डीबी फ़ाइलों के लिए बाहरी विखंडन की मात्रा का एक गेज प्राप्त करना चाहता था, तो क्या मैं मेटाडेटा से प्राप्त कर सकता हूं कि कितनी बार एक डीबी फ़ाइल को आकार में संशोधित किया गया है (या तो ऑटोग्रो या मैन्युअल रूप से)? स्पष्ट करने के लिए, क्या मैं मेटाडेटा से DB के जीवन के लिए DB फ़ाइल संशोधनों के इतिहास को प्राप्त कर सकता हूं, न कि केवल उदाहरण के पुनरारंभ के बाद से?


1
जब तक कि वे किसी बिंदु पर सिकुड़ नहीं गए हों, तो यह ऑटो ग्रो सेटिंग के आधार पर प्रारंभिक आकार से लेकर वर्तमान आकार तक एक साधारण गणना होनी चाहिए?
मार्टिन स्मिथ

यदि यह केवल ऑटोग्रॉ द्वारा संशोधित किया गया था, तो मैं सहमत हो जाऊंगा, लेकिन मैंने मैनुअल संशोधनों को देखा है जो ऑटोग्रॉ सेटिंग्स के बाहर हो सकते हैं।
MattyZDBA

जवाबों:


20

यदि यह सक्षम है तो आप डिफ़ॉल्ट ट्रेस से ऑटोग्रॉथ घटनाओं की जानकारी प्राप्त कर सकते हैं:

select distinct
    ei.eventid,
    e.name
from sys.fn_trace_geteventinfo(1) ei
inner join sys.trace_events e
on e.trace_event_id = ei.eventid
where name like '%grow%';

आप यह देख सकते हैं कि डिफ़ॉल्ट ट्रेस में डेटा फ़ाइल ऑटो ग्रो और लॉग फ़ाइल ऑटो ग्रो इवेंट्स कैप्चर है। यह देखने के लिए कि क्या आपके पास उस उदाहरण पर डिफ़ॉल्ट ट्रेस सक्षम है, आप निम्न कार्य कर सकते हैं:

exec sp_configure 'default trace enabled';
go

नोट: यह एक उन्नत कॉन्फ़िगरेशन विकल्प है, इसलिए show advanced optionsइस कॉन्फ़िगरेशन विकल्प को देखने के लिए 1 पर सेट करना होगा sp_configureयदि फ़ाइल मैन्युअल रूप से बढ़ी , तो भी, इन दो घटनाओं को ट्रिगर नहीं किया जाएगा

इन घटनाओं को प्राप्त करने के लिए यहां एक त्वरित नमूना प्रश्न है:

select
    te.name as event_name,
    tr.DatabaseName,
    tr.FileName,
    tr.StartTime,
    tr.EndTime
from sys.fn_trace_gettable('<Trace Path>', 0) tr
inner join sys.trace_events te
on tr.EventClass = te.trace_event_id
where tr.EventClass in (92, 93)
order by EndTime;

और आप <Trace Path>सिस्टम फ़ंक्शन से प्राप्त कर सकते हैं sys.fn_trace_getinfo:

select *
from sys.fn_trace_getinfo(1);

यह अच्छी जानकारी है, बस यह ध्यान रखें कि उन घटनाओं में से कुछ अच्छी तरह से डिफ़ॉल्ट ट्रेस से समाप्त हो सकते हैं।
निक फॉक्स

बिल्कुल, लेकिन मेरा मानना ​​है कि यह एकमात्र आउट-ऑफ-द-बॉक्स निगरानी है जो ओपी को वास्तव में उचित ऑडिटिंग के साथ इस पर मिलेगा।
थॉमस स्ट्रिंगर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.