Probeer dit Manuscript: --INF: Hoe te om het SQL Logboek van de Transactie van Server te krimpen 7.0
-- SQL7
http://support.microsoft.com/support/kb/articles/q256/6/50.asp?id=256650&SD-- SQL7
http://www.support.microsoft.com/kb/256650 -- SQL2000
http://support.microsoft.com/kb/272318/en-us-- SQL2005
http://support.microsoft.com/kb/907511/en-us-- selecteer db_name ()
-- selecteer * uit sysfiles
-- DIT MANUSCRIPT IS NIET VOORGENOMEN VOOR GEPLAND GEBRUIK!! LEES BOL en urls!!
PLAATS NOCOUNT
VERKLAAR @LogicalFileName sysname,
@MaxMinutes int.,
@NewSize int.
-- *** ZORG ERVOOR OM DE VOLGENDE 3 LIJNEN MET UW CRITERIA TE VERANDEREN. ***
SELECTEER @LogicalFileName = ''
, -- Gebruik sp_helpfile om het logische dossier te identificeren - naam die u wilt krimpen.
@MaxMinutes = 10, -- De grens stond op tijd toe om logboek te verpakken.
@NewSize = 305 -- in MB
-- De opstelling/initialiseert
VERKLAAR @OriginalSize int.
SELECTEER @OriginalSize = grootte -- in 8K pagina's
VAN sysfiles
WAAR naam = @LogicalFileName
SELECTEER „Originele Grootte van“ + db_name () + „LOGBOEK is“ +
ZET (om VARCHAR (30), @OriginalSize) + „8K pagina's of“ +
ZET OM (VARCHAR (30), (@ORIGINALSIZE*8/1024)) + „MB“
VAN sysfiles
WAAR naam = @LogicalFileName
CRE�ëR LIJST DummyTrans
(Klusje DummyColumn (8000) nietig verklaren niet)
-- Verpak logboek en beknot het.
VERKLAAR @COUNTER INT.,
@StartTime DATETIME,
@TruncLog VARCHAR (255)
SELECTEER @STARTTIME = GETDATE (),
@TRUNCLOG = „RESERVELOGBOEK“ + DB_NAME () + „MET TRUNCATE_ONLY“
-- Probeer een initiaal krimpen.
DBCC SHRINKFILE (@LOGICALFILENAME, @NEWSIZE)
EXEC (@TruncLog)
-- Verpak indien nodig het logboek.
TERWIJL @MAXMINUTES > DATEDIFF (MI, @STARTTIME, GETDATE ()) -- de tijd is niet verlopen
EN @OriginalSize = (UITGEZOCHTE grootte VAN sysfiles WAAR naam = @LogicalFileName) -- het logboek is niet gekrompen
EN (@OriginalSize * 8 /1024) > @NewSize -- De waarde binnen voor nieuwe grootte wordt overgegaan is kleiner dan de huidige grootte die.
BEGIN -- Buiten lijn.
SELECTEER @Counter = 0
TERWIJL ((@COUNTER <�> BEGIN -- update
De WAARDEN van DummyTrans van het TUSSENVOEGSEL (het „Logboek van de Vulling“) -- Omdat het een klusjesgebied is neemt het 8000 bytes op.
SCHRAP DummyTrans
SELECTEER @Counter = @Counter + 1
EIND -- update
EXEC (@TruncLog) -- Zie of krimpt een trunc van het logboek het.
EIND -- buiten lijn
SELECTEER „Definitieve Grootte van“ + db_name () + „LOGBOEK is“ +
ZET (om VARCHAR (30), grootte) + „8K pagina's of“ +
ZET om (VARCHAR (30), (size*8/1024)) + „MB“
VAN sysfiles
WAAR naam = @LogicalFileName
De LIJST DummyTrans van de DALING
De DRUK „*** voert een volledig gegevensbestand reserve***“ uit
VASTGESTELDE NOCOUNT WEG