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
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接