oracle 进程 会话,游标,事务的关系
oracle 进程 会话,游标,事务的关系
如果在LINUX 下 是用TOP 可以看到正在跑的ORACLE 进程。ORACLE 除了后台进程外还有用户进程。
既是开启了并行,也是单独的进程。
PL/SQL DEVELOPER 里的多个查询窗口实际上是进程。
一个进程可以包含多个会话,当它们只能串行运行。比如在一个查询窗口中执行三个SELECT查询。
下面语句查询出看,都是同一个进程和会话ID中
select a.SPID,a.PID,b.SID,B.USERNAME,STATUS,PROCESS,MACHINE,B.TERMINAL,TYPE,SQL_ID
from v$process a,v$session b
where background is null
and a.ADDR=b.PADDR
and B.username <>'SYSMAN'
and B.username <>'SYS'
AND B.TERMINAL='PC-200904171104'
ORDER BY B.TERMINAL;
--13084 70 69 3608:3612
事务概念: 为了维护数据的前后一致性而设置的。
一般是改变了表的结构和数据,才会产生事务。
DML,DDL。
事务提交语句是COMMIT;
一个会话可以有多个事务。比如存储过程中。当然也是串行进行的。
OPEN_CURSORS参数的游标
为了处理SQL语句,Oracle分配了一片叫做context area的区域来处理所必要的信息,其中包括要处理的行的数目,一个指向语句被分析以后的表示形式的指针,以及查询的结果集.cursor是一个指向 context area的一个句柄或指针,通过它,pl/sql可以处理该区域的数据.
相关文档:
Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Microsoft Windows (32-bit)
http://download.oracle.com/otn/nt/oracle10g/10201/10201_database_win32.zip
http://download.oracle.com/otn/nt/oracle10g/10201/10201_client_win32.zip
http://download.oracle.com/otn/nt/oracle10g/10 ......
最近做了一个数据诊断的项目,里面自己写了一个数据库的操作类,包含:连接数据库、读数据表、执行SQL操作,释放数据库等组成,希望对大家有用,由于水平有限,若有错误或者代码不足地方欢迎指正,谢谢。
ADOOperate.H
//////////////////////////////////////////////////////////////////////
// ......
将查询的结果生成到文件中:
set echo on --是否显示执行的命令内容
set feedback off --是否显示 * rows selected
set heading off --是否显示字段的名称
set verify off --是否显示替代变量被替代前后的语句。fil
set trimspool off --去字段空格
set pagesize 1000 ......
查看所有表空间使用情况
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE ......
Oracle中start with…connect by prior子句用法
connect by 是结构化查询中用到的,其基本语法是:
select … from tablename
start with 条件1
connect by 条件2
where 条件3;
例:
select * from table
start with org_id = ‘HBHqfWGWPy’
connect by prior org_id = parent_id;
  ......