تم جمعها من الإنترنت وتنظيمها واستخدامها.
يحتوي SQL2005 على أكثر من 1 غيغابايت من السجلات، وفي بعض الأحيان لا يمكن مسحها. لذلك وجدت هذا الرمز.
في بعض الأحيان لا يتم مسح سجل التنظيف حتى 1M، يرجى تنفيذه عدة مرات. في الظروف العادية، يمكن تنفيذه مرة واحدة.
لقد واجهت مواقف حيث اضطررت إلى تنفيذها مرتين.
1 حدد @LogicalFileName = 'Test_log'،
Test_log هو الاسم المنطقي للسجل.
4
5
6 -- =================================================================================
7-- المؤلف : مقاتل
8-- تاريخ الإنشاء : 15-3-2009
9--الوصف: مسح سجل SQL
10 -- =========================================================================
11 إنشاء الإجراء [dbo].[tools_ClearSqlLog]
12
13AS
14 ابدأ
15
16 قم بتعيين NOCOUNT على
17 أعلن @LogicalFileName اسم النظام،
18 @ ماكس مينتس إنت،
19 @ نيو سيزي إنت
20
21 حدد @LogicalFileName = 'Test_log'،
22 @MaxMinutes = 1،
23 @ الحجم الجديد = 1
أربعة وعشرون
25-الإعداد/التهيئة
26 أعلن @OriginalSize int
27 حدد @OriginalSize = الحجم من ملفات النظام حيث الاسم = @LogicalFileName
28 حدد "الحجم الأصلي لـ" + db_name() + "السجل هو" +
29 CONVERT(VARCHAR(30),@OriginalSize) + ' 8K صفحة أو ' +
30 تحويل(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
31 من ملفات النظام
32 أين الاسم = @LogicalFileName
33
34 إنشاء جدول DummyTrans
35 (DummyColumn char (8000) ليس فارغًا)
36
37
38 أعلن @Counter INT،
39 @StartTime التاريخ والوقت،
40 @TruncLog فارتشار(255)
41 حدد @StartTime = GETDATE(),
42 @TruncLog = 'سجل النسخ الاحتياطي' + db_name() + 'مع TRUNCATE_ONLY'
43
44 ملف تقليص DBCC (@LogicalFileName، @NewSize)
45 إكسيك (@TruncLog)
46- لف الجذع إذا لزم الأمر.
47 بينما @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) - الوقت لم ينته بعد
48 AND @OriginalSize = (اختر الحجم من ملفات sys حيث الاسم = @LogicalFileName)
49 و (@OriginalSize * 8 /1024) > @NewSize
50 البداية - الحلقة الخارجية.
51 حدد @Counter = 0
52 بينما ((@Counter < @OriginalSize / 16) و (@Counter <50000))
53 البداية - التحديث
54 أدخل قيم DummyTrans ("سجل التعبئة")
55 حذف DummyTrans
56 حدد @Counter = @Counter + 1
57 نهاية
58 إيكسيك (@TruncLog)
59 نهاية
60 حدد "الحجم النهائي لـ" + db_name() + "السجل هو" +
61 CONVERT(VARCHAR(30)،size) + '8K صفحة أو' +
62 تحويل(VARCHAR(30),(الحجم*8/1024)) + 'ميجابايت'
63 من ملفات النظام
64 أين الاسم = @LogicalFileName
65
66 طاولة إسقاط DummyTrans
67 قم بإيقاف تشغيل NOCOUNT
68
69 نهاية
70
71