Oracle技巧:用v$session_longops跟踪DDL语句
Oracle数字字典包含一个鲜为人知的v$session_longops视图。v$session_longops视图可以使Oracle专家减少运行时间很长的DDL和DML语句的运行时间。
例如在数据仓库环境中,即使使用并行索引创建技术,构建一个很多G字节大的索引需要耗费很多个小时。这里你就可以查询v$session_longops视图快速找出一个特定的DDL语句已经完成了多少。其实v$session_longops视图也可以用于任何运行时间很长的操作,包括运行时间很长的更新操作。
下面的脚本将显示一个状态信息,说明了运行时间很长的DDL操作已经使用的时间。注意你必须从v$session中取得SID并将其插入到下面的SQL语句中:
select
sid,
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
相关文档:
创建了一oracle的定时任务,定时的将一个表中的记录插入到另一个表中,查询的时候表中竟然没数据,在pl/sql中查看建的任务发现failures的值为3,难道建的存储过程有错?运行一下存储过程试试吧,查数据库书,执行存储过程命令是:call procedure 过程名;
执行一下命令,不对?再从网上查吧,一查,oracle中执行存储过程的 ......
单表插入以insert into开头,不能有then into语句.
多表插入以insert first/all 开头,可以有then into语句
在Oracle操作过程中经常会遇到同时向多个不同的表插入数据,此时用该语句就非常合适。
All表示非短路运算,即满足了第一个条件也得向下执行查看是否满足其它条件,而First是短路运算找到合适条件就不向下进行。
I ......
数据库查询中难免会遇到行列转换的情况,摘列一些较精典的解决方案
--####################################################################
一、采用SQL decode和PL/SQL函数实现
--####################################################################
1、固定列数的行列转换
如
student subject grade
------ ......
临时表的概念:
在Oracle数据库中还有一种类型的表,叫做临时表。这个临时表跟永久表最大的区别就是表中的数据不会永远的存在。当一个会话结束或者事务结束的时候,这个临时表中的数据,不用用户自己删除,数据库自己会自动清除。(表是全局,只是数据消失)
O ......