All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
Ajax开发过程中提交获取数据的乱码问题_[AJAX教程]
PHP一生成柱状图、横柱图、折线图的类_[PHP教程]
每个开发人员现在应该下载的十种必备工具,1_[Asp.Net教程]
。NET(C#)连接各类数据库集锦_[Asp.Net教程]
该学Java或.NET?_[Asp.Net教程]
C#网络应用编程基础练习题与答案(一)_[Asp.Net教程]
GridView中超链接根据字段不同指向不同网页_[Asp.Net教程]
PHP中使用crypt()实现用户身份验证_php资料_编程技术
ASP.net,做的IP,访问限制_[Asp.Net教程]
通过ADO.NET访问数据库,教程与实例_[Asp.Net教程]
Reading number is top 10 pictures
8090后结婚的各种XX事
Absolutely shocked. National geographic 50 animal photographys3
Desktop Wallpapers1
什么叫国家
The real super beauty5
Send some Valentine's day cartoon
Athena chu perspective cheongsam shine with New York
ashlynn brooke
刘亦菲写真集1
色狗系列
Download software ranking
C#COM编程指南
塘西风月痕
White deer villiage
虚拟机汉化软件
The Bermuda triangle3
金山office2007
Unix video tutorial4
matrix1
Tram sex maniac 2 (H) rar bag2
Sora aoi, the nurse, uniform ,nursing assistant
delv published in(发表于) 2013/12/30 4:38:47 Edit(编辑)
SQL使用--Shrink所有数据库的Log_mssql学习_编程技术

SQL使用--Shrink所有数据库的Log_mssql学习_编程技术

SQL使用--Shrink所有数据库的Log_mssql学习_编程技术-你的首页-uuhomepage.com
数据处理是当前数据库常见的应用。一些数据库组成DATA mart从数据源里抽取关心的表进行聚合,将结果推送到算法中进行处理,从而高性能的回答用户的查询。
总所周知,Log文件是记录数据库操作的文件,对数据库的完整性,一致性有着重要的意义。作为数据处理的一个常见后果是Log文件的超级庞大。虽然将数据库的恢复模式设置成Simple可以提醒数据库尽量使用已有的Log空间,而不是申请新的,后者将会导致文件的增长。但是对于活动的事务,如果一个事务中记录的Log 行数很多,必然会导致Log文件的庞大。有时这种事务是不能避免的,因为至少一个SQL语句就是一个天然的事务。加入你的Update语句涉及到3千万行数据,结果必然导致众多的Log行被写入,当Update结束的时候,log文件就会增加到200G。
问题是当事务结束后,log文件并不会因为事务已经提交而自动缩短。后果就是10几个数据库的log 文件都处在自己的最大值上,也许这需要几个T的空间,但事实上,同一时刻只有一个数据库在活动,也就是说500G就够了。
下面的这个SQL可以自动缩短数据库服务器上所有的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只能释放标记为无效的Log区段,使用backup log可以完成这个标记
set @tsql = @tsql + '' BACKUP LOG [?] WITH TRUNCATE_ONLY '' + @tsql
--print @tsql
exec(@tsql)
close LogFiles
DEALLOCATE LogFiles
end'
--依次遍历所有的数据库,用数据库名字替换@ssql中的?,并执行语句
exec sp_msforeachdb @ssql




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.