全哥

不断学习,努力超越自己.

导航

压缩日记文件语句

      本人在网上找了一段日记压缩文件语句,试了一下,可以把日记文件压缩在指定的范围内,且以后不增加,但不知道这语句什么意思,请高手指点.

 1   
 2 DECLARE @LogicalFileName sysname,
 3 
 4         @MaxMinutes INT,
 5 
 6         @NewSize INT
 7 
 8 USE     taobao            -- 要操作的数据库名
 9 
10 SELECT @LogicalFileName = 'taobao_Log'-- 日志文件名
11 
12 @MaxMinutes = 10,               -- Limit on time allowed to wrap log.
13 
14         @NewSize = 2                  -- 你想设定的日志文件的大小(M)
15 
16 -- Setup / initialize
17 
18 DECLARE @OriginalSize int
19 
20 SELECT @OriginalSize = size 
21 
22  FROM sysfiles
23 
24  WHERE name = @LogicalFileName
25 
26 SELECT 'Original Size of ' + db_name() + ' LOG is ' + 
27 
28         CONVERT(VARCHAR(30),@OriginalSize+ ' 8K pages or ' + 
29 
30         CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
31 
32  FROM sysfiles
33 
34  WHERE name = @LogicalFileName
35 
36 CREATE TABLE DummyTrans
37 
38  (DummyColumn char (8000not null)
39 
40 DECLARE @Counter   INT,
41 
42         @StartTime DATETIME,
43 
44         @TruncLog VARCHAR(255)
45 
46 SELECT @StartTime = GETDATE(),
47 
48         @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
49 
50 DBCC SHRINKFILE (@LogicalFileName@NewSize)
51 
52 EXEC (@TruncLog)
53 
54 -- Wrap the log if necessary.
55 
56 WHILE     @MaxMinutes > DATEDIFF (mi, @StartTimeGETDATE()) -- time 
57 
58       AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = 
59 
60 @LogicalFileName
61 
62       AND (@OriginalSize * 8 /1024> @NewSize 
63 
64  BEGIN -- Outer loop.
65 
66     SELECT @Counter = 0
67 
68     WHILE ((@Counter < @OriginalSize / 16AND (@Counter < 50000))
69 
70       BEGIN -- update
71 
72         INSERT DummyTrans VALUES ('Fill Log'
73 
74         DELETE DummyTrans
75 
76         SELECT @Counter = @Counter + 1
77 
78       END   
79 
80     EXEC (@TruncLog
81 
82  END   
83 
84 SELECT 'Final Size of ' + db_name() + ' LOG is ' +
85 
86         CONVERT(VARCHAR(30),size) + ' 8K pages or ' + 
87 
88         CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
89 
90  FROM sysfiles 
91 
92  WHERE name = @LogicalFileName
93 
94 DROP TABLE DummyTrans
95 

 

posted on 2009-06-16 17:24  全哥  阅读(341)  评论(1)    收藏  举报