Oracle 10g第2版新特性之SQL和PL/SQL
2006-12-30 12:01:50 来源:WEB开发网核心提示: COMMIT WRITE NOWAIT;这样,控制权立即返还给会话,Oracle 10g第2版新特性之SQL和PL/SQL(7),甚至是在将重做流写入联机重做日志之前,当执行提交命令时,首先,您需要创建一个表来保存由 DML 语句所拒绝的记录,日志写入器进程将重做流写入到联机重做日志,如果
COMMIT WRITE NOWAIT;
这样,控制权立即返还给会话,甚至是在将重做流写入联机重做日志之前。
当执行提交命令时,日志写入器进程将重做流写入到联机重做日志。如果您正在进行一系列事务处理(如在批处理环境中),则可能不希望如此频繁地进行提交。当然,最好的操作过程是更改应用程序以减少提交数量;但这可能说起来容易做起来难。在这种情况下,您只需执行以下的提交语句:
COMMIT WRITE BATCH;
此命令将以批量方式将重做流写入到日志文件中,而不是每次提交都执行写操作。在频繁提交的环境中,您可以使用这种技术来减少日志缓冲区刷新。如果您希望立即写入日志缓冲区,则可以执行:
COMMIT WRITE IMMEDIATE;
如果您数据库默认使用某种特定的提交行为,则可以执行以下语句。
ALTER SYSTEM SET COMMIT_WRITE = NOWAIT;
此命令将使数据库默认使用这一行为。您还可以使其成为会话级默认行为:
ALTER SESSION SET COMMIT_WORK = NOWAIT;
对于任何参数,如果完成设置后,则该参数在系统级执行。如果有会话级的设置,则会话级设置优先,而最后如果 COMMIT 语句后面有子句,则该子句优先。
此选项不可用于分布式事务处理。
记录错误并继续运行:错误事件记录子句
假设您正试图将表 ACCOUNTS_NY 的记录插入到表 ACCOUNTS 中。表 ACCOUNTS 在 ACC_NO 列上有一个主键。可能 ACCOUNTS_NY 中的某些行与该主键冲突。尝试使用一个常规的插入语句:
SQL> insert into accounts
2 select * from accounts_ny;
insert into accounts
*
ERROR at line 1:
ORA-00001:unique constraint (ARUP.PK_ACCOUNTS) violated
表 ACCOUNTS_NY 中的记录均未被装载。现在,将错误事件记录项打开,尝试同样的操作。首先,您需要创建一个表来保存由 DML 语句所拒绝的记录。调用该表 ERR_ACCOUNTS。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
更多精彩
赞助商链接