- 浏览: 530841 次
- 性别:
- 来自: 青岛
文章分类
- 全部博客 (222)
- 帖子来的 (3)
- JavaScript (25)
- Java (10)
- DataBase (2)
- el表达式 (1)
- html (4)
- FCKEDITOR和TINYMCE (3)
- tomcat (5)
- JavaEE (12)
- Eclipse (7)
- Windows (3)
- Dos命令 (1)
- Oracle (20)
- 乱搞 (1)
- AHK (3)
- TC (2)
- vim (12)
- Perl (13)
- ANT (6)
- Android (3)
- antlr (1)
- SSH (14)
- C/C++ (3)
- wordpress (4)
- CSS (3)
- java2D (1)
- Lucene (4)
- Linux (9)
- jquery (4)
- testsomething (7)
- JVM监控优化 (3)
- emacs (4)
- svn cvs版本控制 (2)
- 硬件 (1)
- j2me (2)
- maven (5)
- WebService (4)
- aspectJ (1)
- 算法 (2)
- mysql (1)
- project (2)
- 正则表达式 (2)
- firefox (1)
最新评论
-
直觉:
gua 顶
com.opensymphony.xwork2.inject.DependencyException -
fordfelix:
加了以后 任然存在这个异常 求解!!
struts2 json 插件 @JSON(serialize = false) -
fangyan_oracle:
谢谢了, 很受用
用IE修改当前页面内容的代码zzzz -
cfying:
[flash=200,200][/flash][url][/u ...
精解window.setTimeout()使用方式与参数传递问题!(转) -
qinglangee:
tiewazi 写道param必须是全局变量(即window对 ...
精解window.setTimeout()使用方式与参数传递问题!(转)
• v$lock
• v$sqlarea
• v$session
• v$sesstat
• v$session_wait
• v$process
• v$transaction
• v$sort_usage
• v$sysstat
其它表
ALL_USERS 查看所有用户
USER_USERS 查看当前用户信息
USER_OBJECTS 查看所有当前用户的对象
USER_TABLESPACES查看所有当前用户的表空间信息
USER_TAB 查看当前用户的所有表
USER_TABLES 查看当前用户的表及表属于哪个空间的信息
USER_VIEWS 查看当前用户的视图
USER_CATALOG 查看当前用户的表视图同义词和序列
USER_INDEXES 查看所有当前用户的索引
USER_SEQUENCES 查看属于当前用户的序列
USER_SYNONYMS 查看属于当前用户的同义词
USER_TRIGGERS 查看当前用户的触发器
USER_ROLE_PRIVS 查看当前用户的角色
USER_TAB_PRIVS 当前用户对哪些表拥有哪些权限
九个重要视图
1)v$lock
给出了锁的信息,如type字段, user type locks有3种:TM,TX,UL,system type locks有多种,常见的有:MR,RT,XR,TS等。我们只关心TM,TX锁。
当TM锁时,id1字段表示object_id;当TX锁时,trunc(id1/power(2,16))代表了回滚段号。
lmode字段,session持有的锁的模式,有6种:
0 - none
1 - null (NULL)
2 - row-S (SS)
3 - row-X (SX)
4 - share (S)
5 - S/Row-X (SSX)
6 - exclusive (X)
request字段,process请求的锁的模式,取值范围与lmode相同。
ctime字段,已持有或等待锁的时间。
block字段,是否阻塞其它锁申请,当block=1时说明这个session阻塞了别的session。
2)v$sqlarea
共享池中存储的sql和一些相关的信息,如累计的执行次数(executions),逻辑读(buffer_gets),物理读(disk_reads)等统计信息。
根据address和hash_value可以定位一条sql。sql_text字段存的这个sql的前1000个字符。查找整个的sql还需去v$sqltext或者v$sqltext_with_newlines。
3)v$session
所有当前session的信息,包括一些用户信息如username,terminal,program,logon_time等,command字段表示session执行的什么命令。
通过v$session.paddr=v$process.addr跟process相关,通过v$session.taddr=v$transaction.addr跟trancation相关。
通 过sid可以到相关视图中查询与这个session相关的各种信息,如v$sesstat中有session的统计信息,v$sess_io中有 session的io统计信息,v$session_wait中有session的等待信息,v$session_event中有session在一段时 间内所等待的各种事件的信息。
根据lockwait字段可以查询当前正在等待的锁的相关信息:
select * from v$lock where kaddr in (select lockwait from v$session where sid=&sid);
(sql_address,sql_hash_value),(prev_sql_addr,prev_hash_value) 根据这两组字段, 可以查询到当前session正在执行的或最近一次执行的sql语句的详细信息:
select * from v$sqltext where address = &sql_address and hash_value = &sql_hash_value;
4)v$sesstat
根据session id可以得到这个session的统计信息:
select a.name,b.value
from v$statname a,v$sesstat b
where a.STATISTIC#=b.STATISTIC#
and b.sid=&sid
and b.value <>0
order by b.value;
5)v$session_wait
根据session id可以得到这个session的等待情况。
event字段表示等待事件。
p1、 p2、p3告诉我们等待事件的具体含义,如果wait event是db file scattered read,p1=file_id/p2=block_id/p3=blocks,然后通过dba_extents即可确定出热点对象;如果是latch free的话,p2为闩锁号,它指向v$latch。
P1RAW,P2RAW,P3RAW列对应P1,P2,P3的十六进制值;P1TEXT,P2TEXT,P3TEXT列对应P1,P2,P3列的解释。
--求等待事件及其对应的latch
col event format a32
col name format a32
select sid,event,p1 as file_id, p2 as "block_id/latch", p3 as blocks,l.name
from v$session_wait sw,v$latch l
where event not like '%SQL%' and event not like '%rdbms%'
and event not like '%mon%' and sw.p2 = l.latch#(+);
--求等待事件及其热点对象
col owner format a18
col segment_name format a32
col segment_type format a32
select owner,segment_name,segment_type
from dba_extents
where 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_name
from v$session_wait sw,v$latch l,dba_extents de
where 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 se
where st.address=se.sql_address and st.hash_value=se.sql_hash_value
and se.sid =&wait_sid order by piece;
其中 STATE 列 的描述如下(参考 Oracle Database Reference 10g Release 1 Part Number B10755-01):
• 0 - WAITING (当前等待的 Session)
• -2 - WAITED UNKNOWN TIME (最后等待持续时间未知)
• -1 - WAITED SHORT TIME (最后的等待 <1/100 秒)
• >0 - WAITED KNOWN TIME (WAIT_TIME = 最后等待持续时间)
6)v$process
根据session id可以查到操作系统进程的信息:
select * from v$process where addr in (select paddr from v$session where sid=&sid );
spid字段是操作系统进程号,可以用来进行 kill -9 spid 这么一个操作。
可以找到 unix命令 top 出来的最耗cpu资源的pid,根据pid最耗资源的sql:
SELECT /*+ ORDERED */
sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN (
SELECT DECODE (sql_hash_value,
0, prev_hash_value,
sql_hash_value
),
DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr = (SELECT addr
FROM v$process c
WHERE c.spid = '&pid'))
ORDER BY piece ASC
/
7)v$transaction
根据session id可以查到当前session正在执行的事务信息:
select * from v$transaction where addr in (select taddr from v$session where sid=&sid );
看下面这两个字段可以看到事务进行到什么程度了:
USED_UBLK
NUMBER
Number of undo blocks used
USED_UREC
NUMBER
Number of undo records used
重复查询这两个值,可以看到变化,可以估计事务的进度,尤其是长时间的回滚操作,当这两个值为0,回滚也就完成了。
8)v$sort_usage
temp表空间的使用情况,当temp表空间变得巨大的时候,根据session_addr可以得到session id,根据sqladdr和sqlhash可以得到正在执行的sql:
select se.username,se.sid,su.extents,su.blocks*to_number(rtrim(p.value)) as Space,tablespace,segtype,sql_text
from v$sort_usage su,v$parameter p,v$session se,v$sql s
where p.name='db_block_size'
and su.session_addr=se.saddr
and s.hash_value=su.sqlhash
and s.address=su.sqladdr
order by se.username,se.sid;
9)v$sysstat
所有instance的统计信息。
• v$sqlarea
• v$session
• v$sesstat
• v$session_wait
• v$process
• v$transaction
• v$sort_usage
• v$sysstat
其它表
ALL_USERS 查看所有用户
USER_USERS 查看当前用户信息
USER_OBJECTS 查看所有当前用户的对象
USER_TABLESPACES查看所有当前用户的表空间信息
USER_TAB 查看当前用户的所有表
USER_TABLES 查看当前用户的表及表属于哪个空间的信息
USER_VIEWS 查看当前用户的视图
USER_CATALOG 查看当前用户的表视图同义词和序列
USER_INDEXES 查看所有当前用户的索引
USER_SEQUENCES 查看属于当前用户的序列
USER_SYNONYMS 查看属于当前用户的同义词
USER_TRIGGERS 查看当前用户的触发器
USER_ROLE_PRIVS 查看当前用户的角色
USER_TAB_PRIVS 当前用户对哪些表拥有哪些权限
九个重要视图
1)v$lock
给出了锁的信息,如type字段, user type locks有3种:TM,TX,UL,system type locks有多种,常见的有:MR,RT,XR,TS等。我们只关心TM,TX锁。
当TM锁时,id1字段表示object_id;当TX锁时,trunc(id1/power(2,16))代表了回滚段号。
lmode字段,session持有的锁的模式,有6种:
0 - none
1 - null (NULL)
2 - row-S (SS)
3 - row-X (SX)
4 - share (S)
5 - S/Row-X (SSX)
6 - exclusive (X)
request字段,process请求的锁的模式,取值范围与lmode相同。
ctime字段,已持有或等待锁的时间。
block字段,是否阻塞其它锁申请,当block=1时说明这个session阻塞了别的session。
2)v$sqlarea
共享池中存储的sql和一些相关的信息,如累计的执行次数(executions),逻辑读(buffer_gets),物理读(disk_reads)等统计信息。
根据address和hash_value可以定位一条sql。sql_text字段存的这个sql的前1000个字符。查找整个的sql还需去v$sqltext或者v$sqltext_with_newlines。
3)v$session
所有当前session的信息,包括一些用户信息如username,terminal,program,logon_time等,command字段表示session执行的什么命令。
通过v$session.paddr=v$process.addr跟process相关,通过v$session.taddr=v$transaction.addr跟trancation相关。
通 过sid可以到相关视图中查询与这个session相关的各种信息,如v$sesstat中有session的统计信息,v$sess_io中有 session的io统计信息,v$session_wait中有session的等待信息,v$session_event中有session在一段时 间内所等待的各种事件的信息。
根据lockwait字段可以查询当前正在等待的锁的相关信息:
select * from v$lock where kaddr in (select lockwait from v$session where sid=&sid);
(sql_address,sql_hash_value),(prev_sql_addr,prev_hash_value) 根据这两组字段, 可以查询到当前session正在执行的或最近一次执行的sql语句的详细信息:
select * from v$sqltext where address = &sql_address and hash_value = &sql_hash_value;
4)v$sesstat
根据session id可以得到这个session的统计信息:
select a.name,b.value
from v$statname a,v$sesstat b
where a.STATISTIC#=b.STATISTIC#
and b.sid=&sid
and b.value <>0
order by b.value;
5)v$session_wait
根据session id可以得到这个session的等待情况。
event字段表示等待事件。
p1、 p2、p3告诉我们等待事件的具体含义,如果wait event是db file scattered read,p1=file_id/p2=block_id/p3=blocks,然后通过dba_extents即可确定出热点对象;如果是latch free的话,p2为闩锁号,它指向v$latch。
P1RAW,P2RAW,P3RAW列对应P1,P2,P3的十六进制值;P1TEXT,P2TEXT,P3TEXT列对应P1,P2,P3列的解释。
--求等待事件及其对应的latch
col event format a32
col name format a32
select sid,event,p1 as file_id, p2 as "block_id/latch", p3 as blocks,l.name
from v$session_wait sw,v$latch l
where event not like '%SQL%' and event not like '%rdbms%'
and event not like '%mon%' and sw.p2 = l.latch#(+);
--求等待事件及其热点对象
col owner format a18
col segment_name format a32
col segment_type format a32
select owner,segment_name,segment_type
from dba_extents
where 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_name
from v$session_wait sw,v$latch l,dba_extents de
where 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 se
where st.address=se.sql_address and st.hash_value=se.sql_hash_value
and se.sid =&wait_sid order by piece;
其中 STATE 列 的描述如下(参考 Oracle Database Reference 10g Release 1 Part Number B10755-01):
• 0 - WAITING (当前等待的 Session)
• -2 - WAITED UNKNOWN TIME (最后等待持续时间未知)
• -1 - WAITED SHORT TIME (最后的等待 <1/100 秒)
• >0 - WAITED KNOWN TIME (WAIT_TIME = 最后等待持续时间)
6)v$process
根据session id可以查到操作系统进程的信息:
select * from v$process where addr in (select paddr from v$session where sid=&sid );
spid字段是操作系统进程号,可以用来进行 kill -9 spid 这么一个操作。
可以找到 unix命令 top 出来的最耗cpu资源的pid,根据pid最耗资源的sql:
SELECT /*+ ORDERED */
sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN (
SELECT DECODE (sql_hash_value,
0, prev_hash_value,
sql_hash_value
),
DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr = (SELECT addr
FROM v$process c
WHERE c.spid = '&pid'))
ORDER BY piece ASC
/
7)v$transaction
根据session id可以查到当前session正在执行的事务信息:
select * from v$transaction where addr in (select taddr from v$session where sid=&sid );
看下面这两个字段可以看到事务进行到什么程度了:
USED_UBLK
NUMBER
Number of undo blocks used
USED_UREC
NUMBER
Number of undo records used
重复查询这两个值,可以看到变化,可以估计事务的进度,尤其是长时间的回滚操作,当这两个值为0,回滚也就完成了。
8)v$sort_usage
temp表空间的使用情况,当temp表空间变得巨大的时候,根据session_addr可以得到session id,根据sqladdr和sqlhash可以得到正在执行的sql:
select se.username,se.sid,su.extents,su.blocks*to_number(rtrim(p.value)) as Space,tablespace,segtype,sql_text
from v$sort_usage su,v$parameter p,v$session se,v$sql s
where p.name='db_block_size'
and su.session_addr=se.saddr
and s.hash_value=su.sqlhash
and s.address=su.sqladdr
order by se.username,se.sid;
9)v$sysstat
所有instance的统计信息。
发表评论
-
oracle 索引操作 创建 查看
2010-05-14 15:25 1766建立索引 create index index_name o ... -
查看引用表AAA的外键约束
2010-05-05 17:06 1157select a.constraint_name, a.ta ... -
blob转clob和varchar2
2010-05-05 15:45 3460CREATE OR REPLACE FUNCTION blob ... -
查看oracle当前连接数,最大游标数(zz)
2010-04-02 08:58 9654原文: http://www.blogjava.net/tem ... -
oracle索引操作
2010-02-08 16:18 39建立索引 create index index_name o ... -
oracle查询字符串的速度怎样比较快
2010-01-30 11:52 1887oracle查询字符串的速度怎样比较快 一个表中有二十几万的 ... -
Oracle数据导入导出
2009-12-17 16:57 1324ORACLE中表、索引的表空 ... -
IMP数据到指定的表空间(zz)
2009-12-15 14:47 1478自己做的处理,首先照下面操作。 如果建的表中有LOB列,LOB ... -
查看及修改表空间大小(zz)
2009-12-14 09:52 4877原文: oracle数据库如何增加表空间大小 ... -
修改Oracle字符集(character set)
2009-12-12 17:08 1937要用一个有权限的用户进行以下操作 说明: ... -
oracle tnsnames文件
2009-12-12 16:54 1148在安装目录下,如:E:\Oracle \Ora81\netw ... -
Oracle创建表空间、创建用户以及授权、查看权限
2009-12-12 13:44 1652原帖:Oracle创建表空间、创建用户以及授权、查看权限 ... -
Oracle 细碎
2009-12-12 13:36 1034oracle 10g xe 管理界面 http://127. ... -
ORACLE导出用户的序列(sequence)
2009-12-12 13:28 4441oracle 的exp命令没有导出sequence的选项,在网 ... -
常用函数例子
2009-12-07 08:43 10011. replace select replace(' ... -
存储过程例子
2009-11-19 15:35 1266-- 会话级别临时表 Create G ... -
oracle通过一个表更新另一个表
2009-11-09 10:46 2133来自 http://www.blogjava.net/meng ... -
DECODE函数
2008-05-15 09:36 2128DECODE函数相当于一条件语句(IF).它将输入数值与函数中 ... -
查询一个表占用了多大的表空间
2008-04-07 14:21 2509SELECT owner, DECOD ... -
在oracle中处理日期大全
2008-03-27 17:28 2346TO_DATE格式 ...
相关推荐
这个视图对于监控和优化SQL性能非常重要。其字段主要包括: - **address**: SQL语句的内存地址。 - **hash_value**: SQL语句的哈希值。 - **sql_text**: SQL文本,通常只显示前1000个字符。 ### v$session `v$...
### 常用的动态性能视图说明 #### 概述 动态性能视图是Oracle数据库中一组重要的内部视图,用于提供关于数据库实例运行时的状态信息,包括但不限于内存使用情况、后台进程活动、锁与等待事件等。这些视图以`V$`或`...
"多视图例子"可能包括以下几个方面: 1. 数据集成:展示如何将来自不同来源的数据融合成一个多视图模型,例如,将社交媒体评论、用户评分和产品描述结合,以提供全面的产品分析。 2. 多视图聚类:演示如何利用多...
在“一个多文档多视图的MFC程序”中,开发者可能会遇到以下几个关键步骤: 1. **创建MFC MDI应用程序项目**:在Visual Studio中,选择“MFC应用程序向导”,然后勾选MDI应用程序选项。 2. **自定义文档和视图**:...
在Java编程中,有几个常用的类对于开发人员来说是不可或缺的,这些类可以帮助我们处理数据库操作、页面分页以及过滤请求。下面将详细讲解标题和描述中提到的几个关键概念。 首先,`baseDao` 类是Java开发中的一个...
在实际应用中,这个特效通常涉及到以下几个关键知识点: 1. **DOM操作**:jQuery库的核心功能之一就是对HTML文档对象模型(DOM)进行操作。在网格视图切换中,我们需要根据用户的切换选择,动态地改变元素的布局...
下面详细介绍几种常见的 UML 视图: ##### 3.1 类图 (Class Diagrams) - **定义**:类图用于展示系统中类及其之间的关系,包括继承、关联、依赖等。 - **用途**:主要用于描述系统的静态结构,包括类的属性和方法...
在iOS开发中,创建一个滚动视图并嵌入多个列表视图是一种常见的需求,它可以用于展示多组数据或者实现复杂的用户界面布局。标题"在滚动视图中加入多个列表视图效果"涉及到的关键知识点主要是如何将UITableView(列表...
主要包括以下几个方面: - **Cdocument::UpdateAllViews**: 当文档数据发生变化时,文档对象会调用这个方法来通知所有相关的视图对象进行更新。 - **CView::OnUpdate**: 这是视图对象的一个回调函数,当接收到更新...
【标题解析】:“IOS应用源码Demo-宫格视图(支持横屏)LOGO-毕设学习.zip”这个标题揭示了几个关键信息点。首先,“IOS应用源码Demo”表明这是一个iOS平台上的应用程序示例代码,通常用于展示特定功能或技术的实现...
2. **生命周期方法**:在UIViewController的生命周期中,有几个关键方法,如`viewDidLoad()`、`viewWillAppear()`、`viewDidAppear()`、`viewWillDisappear()`和`viewDidDisappear()`,它们分别在视图加载、即将显示...
【标签】:“商业编程-源码-视图分割源代码”这个标签明确了几个关键点: 1. 商业编程:表明这些代码是为了商业应用而设计的,可能涉及到版权和授权问题,需要遵循特定的使用规定。 2. 源码:表示提供的不仅是编译后...
这里我们主要探讨四个在Windows编程环境中常见的MFC(Microsoft Foundation Classes)类:`CMap`、`CList`、`CListCtrl`和`CArray`。这些都是在Windows应用开发中非常实用的数据结构,尤其在处理数据集合时。 首先...
解决这个问题通常需要以下几个步骤: 1. **检查注册表**:使用注册表编辑器(RegEdit)查找并确认自定义菜单的键值是否正确,确保它们没有被误删或修改。 2. **测试管理员权限**:以管理员身份运行资源管理器,看...
以下是对标题和描述中提及的几个最常用UI框架的详细说明: 1. **Swipeable Table View Cells**: 这种框架允许用户通过左右滑动来触发特定操作或展示更多的信息。例如,它可能用于应用设置,当用户滑动单元格时,...
在Android开发中,"Android 课表视图"是一个常见的需求,它通常用于教育类应用,帮助学生或教师直观地查看课程安排。本DEMO旨在展示如何创建一个功能齐全、用户体验良好的课表视图。下面将详细介绍这个DEMO中涉及的...
自定义视图通常涉及到以下几个关键点: 1. **创建自定义视图类**:继承自Android的基础视图类,如`View`或`ViewGroup`。在这个例子中,我们可能会创建一个名为`CircleWaveView`的类。 2. **重写构造函数**:为...
"**可编辑树控件**"的实现可能涉及到以下几个关键点: 1. **节点编辑事件**:当用户选择一个节点并触发编辑操作时,控件需要捕获这个事件,并启动编辑模式。 2. **编辑框的插入与移除**:在节点被选中编辑时,控件...
在iOS开发中,实现支持多种视图切换效果是一项常见的需求,尤其在设计用户交互丰富的应用时。本项目“实现支持多种视图切换效果”提供了一种炫酷的解决方案,不仅包含传统的翻页效果,还引入了转动界面等创新操作...
在iOS开发中,这种手势驱动的视图切换通常涉及到以下几个关键知识点: 1. **手势识别(Gesture Recognition)**:iOS SDK提供了多种手势识别类,如`UISwipeGestureRecognizer`,用于识别用户的手势动作,如左右滑动...