ระบุเหตุการณ์การเติบโตของไฟล์


9

ฉันค้นพบฐานข้อมูลจำนวนมากในแฟ้มสะสมผลงานของฉันที่สร้างขึ้นด้วยการตั้งค่า autogrow เริ่มต้น (เพิ่มขึ้น 1 MB หรือ 10%) ที่ขยายเป็นระยะเวลานาน หากฉันต้องการทราบจำนวนของการแตกแฟรกเมนต์ภายนอกสำหรับไฟล์ DB แต่ละไฟล์ฉันสามารถรับข้อมูลเมตาได้กี่ครั้งที่ไฟล์ DB ได้รับการแก้ไขในขนาด (โดย autogrow หรือด้วยตนเอง)? เพื่อชี้แจงฉันจะได้รับจาก metadata ประวัติของการแก้ไขไฟล์ DB สำหรับอายุการใช้งานของ DB ไม่ใช่แค่ตั้งแต่การรีสตาร์ทอินสแตนซ์?


1
นอกจากว่าพวกเขาได้หดตัวในบางจุดควรเป็นการคำนวณอย่างง่ายจากขนาดเริ่มต้นจนถึงขนาดปัจจุบันตามการตั้งค่าเติบโตอัตโนมัติ?
Martin Smith

หากได้รับการแก้ไขโดย autogrow ฉันจะเห็นด้วย แต่ฉันเห็นการแก้ไขด้วยตนเองเสร็จแล้วซึ่งอาจเป็นการตั้งค่า autogrow นอก
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%';

คุณสามารถเห็นได้จากสิ่งนี้ว่าการติดตามเริ่มต้นจะมีการดักจับเหตุการณ์Auto File DataและAuto File Log 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);

นี่เป็นข้อมูลที่ดีเพียงจำไว้ว่าเหตุการณ์เหล่านั้นบางอย่างอาจหมดอายุไปแล้วจากการติดตามเริ่มต้น
Nic

อย่างแน่นอน แต่ฉันเชื่อว่านี่เป็นเพียงการตรวจสอบนอกกรอบที่ OP จะดำเนินการได้ด้วยการตรวจสอบที่เหมาะสม
Thomas Stringer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.