Sybase SQL Server日志问题普及
2010-06-19 15:12:44 来源:WEB开发网七、管理大的transactions
有些操作是大批量地修改数据,log增长速度十分快,如:
◆大量数据修改
◆删除一个表的所有记录
◆基于子查询的数据插入
◆批量数据拷贝
下面讲述怎样使用这些transaction 使log 不至溢满:
大量数据修改
例:
1>;update large_tab set col_1=0
2>;go
若这个表很大,则此update动作在未完成之前就可能使log满,引起1105错误(log full)而且执行这种大的transaction所产生的exclusive table loc,阻止其他用户在update期间修 改这个表,这可能引起死锁。为避免这些情况,我们可以把这个大的transaction分成几个小 的transactions,并执行dump transaction 动作。
上述例子可以分成两个或多个小transactions.
例如:
1>;update large_tab set col1=0
2>;where col2 3>;go
1>;dump transaction database_name with truncate_only
2>;go
1>;update large_tab set col1=0
2>;where col2>;=x
3>;go
1>;dump transaction database_name with truncate_only
2>;go
若这个transaction 需要备份到介质上,则不用with truncate_only 选项。若执行dump transaction with truncate_only,应该先做dump database 命令。
删除一个表的所有记录
例:
1>;delete table large_tab
2>;go
更多精彩
赞助商链接