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
//////////////////////////////////////////////////////////////////////
// ......
首先用一个命令赋予user用户connect角色和resource角色:
grant connect,resource to user;
运行成功后用户包括的权限:
CONNECT角色: --是授予最终用户的典型权利,最基本的
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREAT ......
1. 查看数据的字符集
sqlplus> col parameter format a30
sqlplus> col value format a30
sqlplus> select * from nls_database_parameter
PARAMETER VALUE
------------------------------ --------------------
...
NLS_CH ......
修改Oracle的进程数[processes]及会话数[sessions]
1.通过SQLPlus修改
Oracle的sessions和processes的关系是
sessions=1.1*processes + 5
使用sys,以sysdba权限登录:
SQL> show parameter processes;
NAME &n ......