学习 Oracle过程中几个常见问题的总结
2007-07-31 12:37:31 来源:WEB开发网核心提示: 2.查看一个很长的操作已经做了多少:v$session_longops视图可以使Oracle专家减少运行时间很长的DDL和DML语句的运行时间,例如在数据仓库环境中,学习 Oracle过程中几个常见问题的总结(2),即使使用并行索引创建技术,构建一个很多G字节大的索引需要耗费很多个小时,每
2.查看一个很长的操作已经做了多少:
v$session_longops视图可以使Oracle专家减少运行时间很长的DDL和DML语句的运行时间。例如在数据仓库环境中,即使使用并行索引创建技术,构建一个很多G字节大的索引需要耗费很多个小时。这里你就可以查询v$session_longops视图快速找出一个特定的DDL语句已经完成了多少。其实v$session_longops视图也可以用于任何运行时间很长的操作,包括运行时间很长的更新操作。
下面的脚本将显示一个状态信息,说明了运行时间很长的DDL操作已经使用的时间。注意你必须从v$session中取得SID并将其插入到下面的SQL语句中:
select sid,start_time,elapsed_seconds,message
from v$session_longops
where sid = 13
order by start_time;
这里是一个输出的例子,显示了运行时间很长的CREATE INDEX语句的运行过程。
SID MESSAGE
--- --------------------------------------------------
11 Table Scan: CUST.PK_IDX: 732 out of 243260 Blocks done
3.用set transaction 命令解决ORA-01555错误
在执行大事务时,有时oracle会报出如下的错误:
ORA-01555:snapshot too old (rollback segment too small)
这说明oracle给此事务随机分配的回滚段太小了,这时可以为它指定一个
足够大的回滚段,以确保这个事务的成功执行.例如:
set transaction use rollback segment roll_abc;
delete from table_name where ... ;
commit;
提交结束后ORACLE会自动释放对 roll_abc 的指定。
4.删除表中重复记录
方法原理:
1、Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在ORACLE中的哪一个数据文件、块、行上。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
赞助商链接