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执行计划
一、什么是执行计划
An explain plan is a representation of the access path that is taken when a query is executed within Oracle.
二、如何访问数据
At the physical level Oracle reads blocks of data. The smallest amount of data read is a single Oracle block, the largest is con ......
创建表
create table person (pid int,name varchar2(20) unique,
age int check(age between 0 and 150),sex varchar(4) default '男',tp int,
address varchar(200),constraint person_pid_pk primary key(pid));
插入数据
insert into person values(0011,'刘三姐',25,'男',13930123021,'河北省曲阳县');
创建子表 ......
综合练习
学生运动会比赛信息数据库
1,运动员sporter(运动员编号sporterid,运动员姓名name,运动员性别sex,所属系号department)
2,项目item(项目编号itemid,项目名称itemname,项目比赛地点location)
3,成绩grade(运动员编号sporterid,项目编号itemid,积分mark)
建表
1,定义各个表的主码外码约束
2, ......
首先用一个命令赋予user用户connect角色和resource角色:
grant connect,resource to user;
运行成功后用户包括的权限:
CONNECT角色: --是授予最终用户的典型权利,最基本的
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREAT ......
oracle如何记录用户的登陆信息
可以做一个触发器
用以下的方式可以监控登入登出的用戶:
创建一张记录登录TABLE,如下:
CREATE TABLE SYSTEM.LOGIN_LOG
(
SESSION_ID &nb ......