国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

SQL使用--Shrink所有數(shù)據(jù)庫的Log

2024-07-21 02:44:54
字體:
供稿:網(wǎng)友
數(shù)據(jù)處理是當(dāng)前數(shù)據(jù)庫常見的應(yīng)用。一些數(shù)據(jù)庫組成DATA mart從數(shù)據(jù)源里抽取關(guān)心的表進行聚合,將結(jié)果推送到算法中進行處理,從而高性能的回答用戶的查詢。

總所周知,Log文件是記錄數(shù)據(jù)庫操作的文件,對數(shù)據(jù)庫的完整性,一致性有著重要的意義。作為數(shù)據(jù)處理的一個常見后果是Log文件的超級龐大。雖然將數(shù)據(jù)庫的恢復(fù)模式設(shè)置成Simple可以提醒數(shù)據(jù)庫盡量使用已有的Log空間,而不是申請新的,后者將會導(dǎo)致文件的增長。但是對于活動的事務(wù),如果一個事務(wù)中記錄的Log 行數(shù)很多,必然會導(dǎo)致Log文件的龐大。有時這種事務(wù)是不能避免的,因為至少一個SQL語句就是一個天然的事務(wù)。加入你的Update語句涉及到3千萬行數(shù)據(jù),結(jié)果必然導(dǎo)致眾多的Log行被寫入,當(dāng)Update結(jié)束的時候,log文件就會增加到200G。

問題是當(dāng)事務(wù)結(jié)束后,log文件并不會因為事務(wù)已經(jīng)提交而自動縮短。后果就是10幾個數(shù)據(jù)庫的log 文件都處在自己的最大值上,也許這需要幾個T的空間,但事實上,同一時刻只有一個數(shù)據(jù)庫在活動,也就是說500G就夠了。

下面的這個SQL可以自動縮短數(shù)據(jù)庫服務(wù)器上所有的Log文件。

declare @ssql nvarchar(4000)
set @ssql= '
        if ''?'' not in (''tempdb'',''master'',''model'',''msdb'') begin
        use [?]
        declare @tsql nvarchar(4000) set @tsql = ''''
        declare @iLogFile int
        declare LogFiles cursor for

        --找出所有的Log文件,Log文件的status是0x40
        select fileid from sysfiles where  status & 0x40 = 0x40
        open LogFiles
        fetch next from LogFiles into @iLogFile
        while @@fetch_status = 0
        begin

          --使用DBCC名字縮短Log文件
          set @tsql = @tsql + ''DBCC SHRINKFILE(''+cast(@iLogFile as varchar(5))+'', 1) ''
          fetch next from LogFiles into @iLogFile
        end

        --DBCC shrink只能釋放標(biāo)記為無效的Log區(qū)段,使用backup log可以完成這個標(biāo)記
        set @tsql = @tsql + '' BACKUP LOG [?] WITH TRUNCATE_ONLY '' + @tsql
        --PRint @tsql
        exec(@tsql)
        close LogFiles
        DEALLOCATE LogFiles
        end'
--依次遍歷所有的數(shù)據(jù)庫,用數(shù)據(jù)庫名字替換@ssql中的?,并執(zhí)行語句
exec sp_msforeachdb @ssql 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 闸北区| 徐闻县| 洛阳市| 中卫市| 郯城县| 芒康县| 香港 | 叶城县| 娱乐| 蓝田县| 白水县| 阳原县| 泰来县| 彰武县| 紫阳县| 延川县| 谢通门县| 衡水市| 隆化县| 同德县| 观塘区| 信丰县| 攀枝花市| 甘肃省| 钟山县| 云梦县| 铁岭县| 宣威市| 朔州市| 乐昌市| 周至县| 泸州市| 临清市| 博爱县| 乌海市| 奉节县| 军事| 织金县| 青铜峡市| 舞阳县| 阳新县|