oracle数据库进程与服务,oracle数据库进程之服务器进程详解.doc

oracle数据库进程之服务器进程详解.doc

791a6ca2daee47217c9ae61428e4529c.gif

还剩

4页未读,

继续阅读

下载文档到电脑,马上远离加班熬夜!

亲,喜欢就下载吧,价低环保!

内容要点:

如果在同一个会话中观察统计结果,就会对统计结果造成影响(导致对统计结果的修改)。倘若 SQL*Plus 使用一个会话来报告所执行的 I/O 次数,网络上传输了多少字节,以及执行了多少次排序,那么查看这些详细信息的查询本身也会影响统计结果。这些查询可能自己也要排序、执行 I/O 以及在网络上传输数据等(一般来说都会如此!)。因此,我们需要使用另一个会话来正确地测量。到目前为止,我们已经看到一条连接可以有一个或两个会话。现在,我们想使用 SQL*Plus 来查看一条没有任何会话的连接。这很容易。在上例所用的同一个 SQL*Plus 窗口中,只需键入一个“很容易误解”的命令即 DISCONNECT:[email protected]> set autotrace [email protected]> disconnect从技术上讲,这个命令应该叫 DESTROY_ALL_SESSIONS 更合适,而不是 DISCONNECT,因为我们并没有真正物理地断开连接。注意在 SQL*Plus 中要真正地断开连接,应该执行“exit”命令,因为你必须退出才能完全撤销连接。不过,我们已经关闭了所有会话。使用另一个用户账户打开另一个会话,并查询原用户 SYS。1. SQL> select username, sid, serial#,server, paddr, status from v$session where username='SYS'; 2. no rows selected 可以看到,这个账户名下没有会话,但是仍有一个进程,相应地有一条物理连接(使用前面的 ADDR 值):1. SQL> select username, program fromv$process where addr = hextoraw('3621B264'); 2. USERNAME PROGRAM 3. --------------------------------------------------------------- 4. oracle [email protected] (TNS V1-V3) 所以,这就有了一条没有相关会话的“连接”。可以使用 SQL*Plus 的 CONNECT 命令(这个命令的名字也起得不恰当),在这个现有的进程中创建一个新会话(CONNECT 命令叫CREATE_SESSION 更合适):1. SQL> conn / as sysdba; 2. Connected. 3. SQL> select username, sid, serial#,server, paddr, status from v$session where username='SYS'; 4. USERNAME SID SERIAL# SERVER PADDR STATUS 5. ------------------------------ -------------------- --------- -------- -------- 6. SYS 158 34 DEDICATED 3621B264 ACTIVE 可以注意到,PADDR 还是一样的,所以我们还是在使用同一条物理连接,但是(可能)有一个不同的 SID。我说“可能有”,是因为也许还会分配同样的 SID,这取决于在我们注销时是否有别人登录,以及我们原来的 SID 是否可用。到此为止,这些测试都是用一条专用服务器连接执行的,所以 PADDR 正是专用服务器进程的进程地址。来源:网络 编辑:联动北方技术论坛3. -

发表评论

暂无评论,赶快抢占沙发吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值