10g中的pipe什么意思 get等待是啥意思

您现在的位置:&>&&>&&>&
育龙网&WWW.CHINA-B.C0M&& 日&&来源:互联网
核心提示:
等待事件有两种类型:空闲事件(idle event)与非空闲事件(non-idle event)。 空闲事件主要指oracle正在等待某种工作,常见的空闲等待
等待事件有两种类型:空闲事件(idle event)与非空闲事件(non-idle event)。 空闲事件主要指oracle正在等待某种工作,常见的空闲等待事件有:client message、null event、pipe get、pmon/smon timer、rdbms rpc message及sql*net等。 非空闲等待事件:buffer busy waits、db file scattered read、db file sequential read、enqueue、free buffer waits、latch free、log file sync、log file paralle write等。 有人要问什么是瓶颈?当我们熟悉了系统的等待事件,就可以把握问题的关键,并且能够用相应的方法去处理阻塞系统的瓶颈,请注意一定不要随便的进行优化,否则很可能使结果雪上加霜,我们可以通过v&$system_event获取系统总的等待情况,然后通过v&$session_event查看系统中session的等待情况,最后通过v&$session_wait定位瓶颈对象。v&$session_wait是会话级的,它包含session的实时信息,最重要的是:它显示了等待事件与相应资源的更深入信息,可确定出产生瓶颈的类型及其对象。 v&$session_wait的p1、p2、p3告诉我们等待事件的具体含义,如果wait event是db file scattered read,p1=file_id/p2=block_id/p3=blocks,然后通过dba_extents即可确定出热点对象;如果是latch free的话,p2为闩锁号,它指向的是v&$latch。 求等待事件及其对应的latch col event format a32col name format a32select sid,event,p1 as file_id, p2 as "block_id/latch", p3 as blocks,l.namefrom v&$session_wait sw,v&$latch lwhere event not like ‘%SQL%‘ and event not like ‘%rdbms%‘ and event not like ‘%mon%‘ and sw.p2 = l.latch#(+);求等待事件及其热点对象 col owner format a18col segment_name format a32col segment_type format a32select owner,segment_name,segment_typefrom dba_extentswhere file_id = &file_id and &block_id between block_id and block_id + &blocks - 1;结合以上两条sql,同时显示latch及热点对象(注释:速度较慢) select sw.sid,event,l.name,de.segment_namefrom v&$session_wait sw,v&$latch l,dba_extents dewhere event not like ‘%SQL%‘ and event not like ‘%rdbms%‘ and event not like ‘%mon%‘ and sw.p2 = l.latch#(+) and sw.p1 = de.file_id(+) and p2 between de.block_id and de.block_id + de.blocks - 1;如果是非空闲等待事件,通过等待会话的sid可以求出该会话在执行的sql select sql_text from v&$sqltext_with_newlines st,v&$session sewhere st.address=se.sql_address and st.hash_value=se.sql_hash_valueand se.sid =&wait_注释:DBA通过等待事件找出系统中消耗资源较严重的sql是常用的手段,唯一的缺点就是过程比较烦琐,由于session是动态的、瞬息万变、不可捕获,当你想捕获时,该session可能已经释放,但这种捕获是很有针对性的;也可以通过对v&$sql或v&$sqlarea进行过滤,找出存在性能问题的sql,长时间地对v&$sql进行监控,并对捕获的sql进行优化处理,可以在很大程度上解决系统的性能问题。
相关热词搜索:
-- 本站部分信息来源于互联网,不代表本站观点或立场,如有侵权,请来电告知,我们将及时处理oracle 有哪些空闲等待事件_百度知道
oracle 有哪些空闲等待事件
在Oracle8i中大约有200个事件。  一些常见的非空闲等待事件有; rdbms ipc message  •SQL lock timer  &#8226.2中引入的; parallel query idle wait - Slaves  &#8226,在Oracle9i中大约有360个等待事件; buffer busy waits  &#8226。等待事件的概念是在Oracle7:  &#8226。  空闲事件指Oracle正等待某种工作,即空闲(idle)等待事件和非空闲(non-idle)等待事件.0中这个数目增加到了大约150个; SQL*Net break&#47.0; SQL*Net message from client  • smon timer  • db file sequential read  &#8226。在Oracle 8; virtual circuit status  •reset to client  &#8226.1; SQL*Net message to client  • db file scattered read  • slave wait  &#8226,大致有100个等待事件; latch free  &#8226,指数据库任务或应用运行过程中发生的等待; pmon timer- pmon  • lock element cleanup  &#8226,在诊断和优化数据库的时候。  常见的空闲事件有; client message  非空闲等待事件专门针对Oracle的活动; Null event  &#8226。主要有两种类别的等待事件; SQL*Net more data to client  &#8226,我们不用过多注意这部分事件; PL/ enqueue  • parallel query dequeue wait  • free buffer waits  &#8226:  &#8226Oracle的等待事件是衡量Oracle运行状况的重要依据及指标; pipe get  • log file parallel write  &#8226,这些等待事件是我们在调整数据库的时候应该关注与研究的; dispatcher timer  &#8226
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Oracle9i到10g空闲等待事件的变化
- 谷普下载 |
| 您所在的位置: >
> Oracle9i到10g空闲等待事件的变化Oracle9i到10g空闲等待事件的变化更新:&&&&编辑:小欣&&&&来源:谷普&&&&人气:加载中...&&&&字号:|标签:&&&&&&&&&&
  从Statspack的创建脚本中,我们可以看到从到Oracle10g,的改变.   在Statspack中,记载在系统表STATS$IDLE_EVENT中.检查其创建脚本我们可以找到这些.这个脚本位于$ORACLE_HOME/rdbms/admin/spctab.sql   在R2中,空闲等待有: /* ---------------------------- */
create table  STATS$IDLE_EVENT
(event varchar2(64)   not null
,constraint STATS$IDLE_EVENT_PK primary key (event)
using index tablespace &&tablespace_name
  storage (initial 100k next 100k pctincrease 0)
) tablespace &&tablespace_name
 storage (initial 100k next 100k pctincrease 0)
pctfree 5 pctused 40;
insert into STATS$IDLE_EVENT
(event) values ('smon timer');
insert into STATS$IDLE_EVENT
(event) values ('pmon timer');
insert into STATS$IDLE_EVENT
(event) values ('rdbms ipc message');
insert into STATS$IDLE_EVENT
(event) values ('Null event');
insert into STATS$IDLE_EVENT
(event) values ('parallel query dequeue');
insert into STATS$IDLE_EVENT
(event) values ('pipe get');
insert into STATS$IDLE_EVENT
(event) values ('client message');
insert into STATS$IDLE_EVENT
(event) values ('SQL*Net message to client');
insert into STATS$IDLE_EVENT
(event) values ('SQL*Net message from client');
insert into STATS$IDLE_EVENT
(event) values ('SQL*Net more data from client');
insert into STATS$IDLE_EVENT
(event) values ('dispatcher timer');
insert into STATS$IDLE_EVENT
(event) values ('virtual circuit status');
insert into STATS$IDLE_EVENT
(event) values ('lock manager wait for remote message');
insert into STATS$IDLE_EVENT
(event) values ('PX Idle Wait');
insert into STATS$IDLE_EVENT
(event) values ('PX Deq: Execution Msg');
insert into STATS$IDLE_EVENT
(event) values ('PX Deq: Table Q Normal');
insert into STATS$IDLE_EVENT
(event) values ('wakeup time manager');
insert into STATS$IDLE_EVENT
(event) values ('slave wait');
insert into STATS$IDLE_EVENT
(event) values ('i/o slave wait');
insert into STATS$IDLE_EVENT
(event) values ('jobq slave wait');
insert into STATS$IDLE_EVENT
(event) values ('null event');
insert into STATS$IDLE_EVENT
(event) values ('gcs remote message');
insert into STATS$IDLE_EVENT
(event) values ('gcs for action');
insert into STATS$IDLE_EVENT
(event) values ('ges remote message');
insert into STATS$IDLE_EVENT
(event) values ('queue messages');
create public synonym 
STATS$IDLE_EVENT  for STATS$IDLE_EVENT;
/* ------------------------------ */  在Oracle10gR2中,这个数字大大增加: /* -------------------------------- */
create table     STATS$IDLE_EVENT
(event        varchar2(64)   not null
,constraint STATS$IDLE_EVENT_PK primary key (event)
using index tablespace &&tablespace_name
  storage (initial 100k next 100k pctincrease 0)
) tablespace &&tablespace_name
 storage (initial 100k next 100k
pctincrease 0) pctfree 5 pctused 40;
insert into STATS$IDLE_EVENT (event)
values ('smon timer');
insert into STATS$IDLE_EVENT (event)
values ('pmon timer');
insert into STATS$IDLE_EVENT (event)
values ('rdbms ipc message');
insert into STATS$IDLE_EVENT (event)
values ('Null event');
insert into STATS$IDLE_EVENT (event)
values ('parallel query dequeue');
insert into STATS$IDLE_EVENT (event)
values ('pipe get');
insert into STATS$IDLE_EVENT (event)
values ('client message');
insert into STATS$IDLE_EVENT (event)
values ('SQL*Net message to client');
insert into STATS$IDLE_EVENT (event)
values ('SQL*Net message from client');
insert into STATS$IDLE_EVENT (event)
values ('SQL*Net more data from client');
insert into STATS$IDLE_EVENT (event)
values ('dispatcher timer');
insert into STATS$IDLE_EVENT (event)
values ('virtual circuit status');
insert into STATS$IDLE_EVENT (event)
values ('lock manager wait for remote message');
insert into STATS$IDLE_EVENT (event)
values ('PX Idle Wait');
insert into STATS$IDLE_EVENT (event)
values ('PX Deq: Execution Msg');
insert into STATS$IDLE_EVENT (event)
values ('PX Deq: Table Q Normal');
insert into STATS$IDLE_EVENT (event)
values ('wakeup time manager');
insert into STATS$IDLE_EVENT (event)
values ('slave wait');
insert into STATS$IDLE_EVENT (event)
values ('i/o slave wait');
insert into STATS$IDLE_EVENT (event)
values ('jobq slave wait');
insert into STATS$IDLE_EVENT (event)
values ('null event');
insert into STATS$IDLE_EVENT (event)
values ('gcs remote message');
insert into STATS$IDLE_EVENT (event)
values ('gcs for action');
insert into STATS$IDLE_EVENT (event)
values ('ges remote message');
insert into STATS$IDLE_EVENT (event)
values ('queue messages');
insert into STATS$IDLE_EVENT (event)
values ('wait for unread message on broadcast channel');
insert into STATS$IDLE_EVENT (event)
values ('PX Deq Credit: send blkd');
insert into STATS$IDLE_EVENT (event)
values ('PX Deq: Execute Reply');
insert into STATS$IDLE_EVENT (event)
values ('PX Deq: Signal ACK');
insert into STATS$IDLE_EVENT (event)
values ('PX Deque wait');
insert into STATS$IDLE_EVENT (event)
values ('PX Deq Credit: need buffer');
insert into STATS$IDLE_EVENT (event)
values ('STREAMS apply coord waiting for slave message');
insert into STATS$IDLE_EVENT (event)
values ('STREAMS apply slave waiting for coord message');
insert into STATS$IDLE_EVENT (event)
values ('Queue Monitor Wait');
insert into STATS$IDLE_EVENT (event)
values ('Queue Monitor Slave Wait');
insert into STATS$IDLE_EVENT (event)
values ('wakeup event for builder');
insert into STATS$IDLE_EVENT (event)
values ('wakeup event for preparer');
insert into STATS$IDLE_EVENT (event)
values ('wakeup event for reader');
insert into STATS$IDLE_EVENT (event)
values ('wait for activate message');
insert into STATS$IDLE_EVENT (event)
values ('PX Deq: Par Recov Execute');
insert into STATS$IDLE_EVENT (event)
values ('PX Deq: Table Q Sample');
insert into STATS$IDLE_EVENT (event)
values ('STREAMS apply slave idle wait');
insert into STATS$IDLE_EVENT (event)
values ('STREAMS capture process filter callback wait for ruleset');
insert into STATS$IDLE_EVENT (event)
values ('STREAMS fetch slave waiting for txns');
insert into STATS$IDLE_EVENT (event)
values ('STREAMS waiting for subscribers to catch up');
insert into STATS$IDLE_EVENT (event)
values ('Queue Monitor Shutdown Wait');
insert into STATS$IDLE_EVENT (event)
values ('AQ Proxy Cleanup Wait');
insert into STATS$IDLE_EVENT (event)
values ('knlqdeq');
insert into STATS$IDLE_EVENT (event)
values ('class slave wait');
insert into STATS$IDLE_EVENT (event)
values ('master wait');
insert into STATS$IDLE_EVENT (event)
values ('DIAG idle wait');
insert into STATS$IDLE_EVENT (event)
values ('ASM background timer');
insert into STATS$IDLE_EVENT (event)
values ('KSV master wait');
insert into STATS$IDLE_EVENT (event)
values ('EMON idle wait');
insert into STATS$IDLE_EVENT (event)
values ('Streams AQ: RAC qmn coordinator idle wait');
insert into STATS$IDLE_EVENT (event)
values ('Streams AQ: qmn coordinator idle wait');
insert into STATS$IDLE_EVENT (event)
values ('Streams AQ: qmn slave idle wait');
insert into STATS$IDLE_EVENT (event)
values ('Streams AQ: waiting for time management or cleanup tasks');
insert into STATS$IDLE_EVENT (event)
values ('Streams AQ: waiting for messages in the queue');
insert into STATS$IDLE_EVENT (event)
values ('Streams fetch slave: waiting for txns');
insert into STATS$IDLE_EVENT (event)
values ('Streams AQ: deallocate messages from Streams Pool');
insert into STATS$IDLE_EVENT (event)
values ('Streams AQ: delete acknowledged messages');
insert into STATS$IDLE_EVENT (event)
values ('LNS ASYNC archive log');
insert into STATS$IDLE_EVENT (event)
values ('LNS ASYNC dest activation');
insert into STATS$IDLE_EVENT (event)
values ('LNS ASYNC end of log');
insert into STATS$IDLE_EVENT (event)
values ('LogMiner: client waiting for transaction');
insert into STATS$IDLE_EVENT (event)
values ('LogMiner: slave waiting for activate message');
insert into STATS$IDLE_EVENT (event)
values ('LogMiner: wakeup event for builder');
insert into STATS$IDLE_EVENT (event)
values ('LogMiner: wakeup event for preparer');
insert into STATS$IDLE_EVENT (event)
values ('LogMiner: wakeup event for reader');
create public synonym STATS$IDLE_EVENT  for STATS$IDLE_EVENT;
/* ---------------------------------- */  如果你注意到的话,很多等待事件在9i中属于空闲等待,但是未被列入,有的是为了向后兼容,有的则是因为Bug。
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
分类选择您可能在找这些socket.pipe(socket); 是什么作用? - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
在node.js 见到了不少次的,
.pipe的用法,在gzip压缩的时候,要用,
还有 stream.pipe(destination, [options]) .
socket的的时候, socket.pipe(socket);
这句话的作用是什么?
请教,这些.pipe 有什么作用?
没用过这个,大概是这样吧:
平时需要这样写的代码:
s1.on('data', function (chunk) {
s2.write(chunk);
s1.on('end', function (chunk) {
直接用pipe()这样就可以实现
s1.pipe(s2);
不知道理解对不对,请楼下指正
这是流里面的函数……
嗯,在api上看到了,不明白,有什么作用,请赐教。
s1和s2都是socket的实例嘛
首页提供的,
var net = require('net');
var server = net.createServer(function (socket) {
socket.write('Echo server\r\n');
socket.pipe(socket);
server.listen(1337, '127.0.0.1');
socket.pipe(socket); 这一句有什么作用呢,他就一个socket 。
就是客户端发神马数据过来,服务器就返回相同的数据嘛,这个自己试试就知道了。跟这个代码效果是一样的:
var net = require('net');
var server = net.createServer(function (socket) {
socket.write('Echo server\r\n');
socket.on('data', function (chunk) {
socket.write(chunk);
server.listen(1337, '127.0.0.1');
非常感谢。
建议qj一把源码
pipe主要是使IO的流式(stream)操作更方便自然. 流式读写的最大好处一是省内存;二是精简代码. 推荐看看这篇文章/articles/advanced/streams/what-are-streams
最经典的案例是一边读文件,一边pipe给HTTP response. 我测试过使用pipe来做文件复制操作,测试表明其复制速度比系统cp命令快.文件越大,差距越明显. 需要注意的是由于操作系统缓存,第二次调用cp会比第一次快,需要排除这个因素.
这是管道啊……
应该会少两次拷贝如果是on(‘data’,function(d){ con.write(d); }); 这种有内核到用户态的拷贝 还有一次用户态到内核态的拷贝……
这是TCP回显服务器啊,将socket的输入流绑定到自身的输出流,也就是套接字获得什么数据就输出什么数据……于是叫TCP回显……
正解, 与操作系统的pipe概念没啥关系。
好好学习一下。
找了会才看到这
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的用户名: @
密&&码:&&&|
密&&码:&|
密&&码:&|
您的位置: &
Oracle常见等待事件说明
作者:itpub mengxb001&&
内容导航:
&&& 【IT168 技术文档】Oracle的等待事件是衡量Oracle运行状况的重要依据及指标。等待事件的概念是在Oracle7.0.1.2中引入的,大致有100个等待事件。在Oracle 8.0中这个数目增加到了大约150个,在Oracle8i中大约有200个事件,在Oracle9i中大约有360个等待事件。主要有两种类别的等待事件,即空闲(idle)等待事件和非空闲(non-idle)等待事件。
&&& 空闲事件指Oracle正等待某种工作,在诊断和优化数据库的时候,我们不用过多注意这部分事件。
&&& 常见的空闲事件有:&&& • dispatcher timer&&& • lock element cleanup&&& • Null event&&& • parallel query dequeue wait&&& • parallel query idle wait - Slaves&&& • pipe get&&& • PL/SQL lock timer&&& • pmon timer- pmon&&& • rdbms ipc message&&& • slave wait&&& • smon timer&&& • SQL*Net break/reset to client&&& • SQL*Net message from client&&& • SQL*Net message to client&&& • SQL*Net more data to client&&& • virtual circuit status&&& • client message
&&& 非空闲等待事件专门针对Oracle的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是我们在调整数据库的时候应该关注与研究的。
&&& 一些常见的非空闲等待事件有:&&& • db file scattered read&&& • db file sequential read&&& • buffer busy waits&&& • free buffer waits&&& • enqueue&&& • latch free&&& • log file parallel write&&& • log file sync
&&& 1. db file scattered read-DB 文件分散读取
&&& 这种情况通常显示与全表扫描相关的等待。当数据库进行全表扫时,基于性能的考虑,数据会分散(scattered)读入Buffer Cache。如果这个等待事件比较显著,可能说明对于某些全表扫描的表,没有创建索引或者没有创建合适的索引,我们可能需要检查这些数据表已确定是否进行了正确的设置。
&&& 然而这个等待事件不一定意味着性能低下,在某些条件下Oracle 会主动使用全表扫描来替换索引扫描以提高性能,这和访问的数据量有关,在CBO 下Oracle 会进行更为智能的选择,在RBO 下Oracle 更倾向于使用索引。
&&& 因为全表扫描被置于LRU(Least Recently Used,最近最少适用)列表的冷端(cold end),对于频繁访问的较小的数据表,可以选择把他们Cache 到内存中,以避免反复读取。
&&& 当这个等待事件比较显著时,可以结合v$session_longops 动态性能视图来进行诊断,该视图中记录了长时间(运行时间超过6 秒的)运行的事物,可能很多是全表扫描操作(不管怎样,这部分信息都是值得我们注意的)。1
【内容导航】
&版权所有。未经许可,不得转载。
[责任编辑:]
相关论坛贴
itpub.net All Right Reserved.&&&&E-mail:
北京皓辰广域网络信息技术有限公司.&版权所有&&&&&&&&&&

我要回帖

更多关于 pipe get 的文章

 

随机推荐