- 浏览: 13869 次
- 性别:
- 来自: 北京
文章分类
最新评论
1.1 查看session使用数?(或者称建立的连接数)
select count(*) from v$session;
1.2 查看oracle锁
SELECT substr(v$lock.sid, 1, 4) "SID",
substr(username, 1, 12) "UserName",
osuser,
machine,
substr(object_name, 1, 25) "ObjectName",
v$lock.type "LockType",
decode(rtrim(substr(lmode, 1, 4)),
'2',
'Row-S (SS)',
'3',
'Row-X (SX)',
'4',
'Share',
'5',
'S/Row-X (SSX)',
'6',
'Exclusive',
'Other') "LockMode",
substr(v$session.program, 1, 25) "ProgramName"
FROM V$LOCK, SYS.DBA_OBJECTS, V$SESSION
WHERE (OBJECT_ID = v$lock.id1 AND v$lock.sid = v$session.sid AND
username IS NOT NULL AND username NOT IN ('SYS', 'SYSTEM') AND
SERIAL# != 1);
1.3 数据库分析
语句 execute DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE',10000,NULL,'');
1.4 查看表统计数据
select table_name,
num_rows,
blocks,
empty_blocks,
avg_space,
chain_cnt,
avg_row_len,
last_analyzed
from all_tables
where owner = 'RMS'
分析单表 analyze table rms.user_port compute statistics
1.5 查看索引统计数据
select index_name,
blevel,
leaf_blocks,
distinct_keys,
avg_leaf_blocks_per_key,
avg_data_blocks_per_key,
clustering_factor,
last_analyzed
from all_indexes
where owner = 'RMS';
1.6 生成单表分析语句
select 'analyze table rms.' || segment_name || ' compute statistics ;' segment_name,
sum(bytes) / 1024 / 1024 MB
from user_segments, all_tables
where all_tables.owner = 'RMS'
and all_tables.table_name = segment_name
GROUP BY segment_name
1.7 发现表链接行
语句 select table_name,chain_cnt from user_tables order by chain_cnt desc
select table_name,chain_cnt from all_tables where owner='RMS' order by chain_cnt desc
1.8 计算高速缓存命中率
语句
select 1 - (phy.value / (cur.value + con.value))
from v$sysstat cur, v$sysstat con, v$sysstat phy
where cur.name = 'db block gets'
and con.name = 'consistent gets'
and phy.name = 'physical reads'
db block gets 4709479237
consistent gets 22146942
physical reads 8931785
命中率 0.998112322 1-physical reads/(db block gets+consistent gets)
建议 达到0.90或以上认为是好的
1.9 找出大量消耗Buffer Cache的对象
" column c0 heading 'Owner' format a15
column c1 heading 'Object|Name' format a30
column c2 heading 'Number|of|Buffers' format 999,999
column c3 heading 'Percentage|ofData|Buffer' format 999,999,999
select owner c0,
object_name c1,
count(1) c2,
(count(1) / (select count(*) from v$bh)) * 100 c3
from dba_objects o, v$bh bh
where o.object_id = bh.objd
and o.owner not in ('SYS', 'SYSTEM')
group by owner, object_name
order by count(1) desc;
1.10 计算库缓存命中率
语句 SELECT SUM(pins-reloads)/SUM(pins) from v$librarycache
建议 低于0.99需要试着改善它,可以增加共享池的规模来改善它,如果有很多可用空间那就得从改善我们的程序
查看当前未使用的共享池
select to_number(v$parameter.value) value,
v$sgastat.BYTES,
(v$sgastat.bytes / v$parameter.value) * 100 "percent free"
from v$sgastat, v$parameter
where v$sgastat.name = 'free memory'
and v$parameter.name = 'shared_pool_size'
and v$sgastat.pool = 'shared pool'
1.11 手工方式清空共享池
ALTER SYSTEM FLUSH SHARED_POOL;
1.12 计算字典缓存命中率
语句 select sum(gets-getmisses-usage-fixed)/sum(gets) from v$rowcache
建议 达到0.85或以上认为是可以接受的
1.13 检查回滚段争用
语句 select sum(gets),sum(waits),sum(waits)/sum(gets) from v$rollstat
建议 大于1%需要处理,可以通过更多回滚段来降低争用
查看回滚段的使用情况,哪个用户正在使用回滚段的资源,如果有用户最好更换时间(特别是生产环境)。
select s.username, u.name
from v$transaction t, v$rollstat r, v$rollname u, v$session s
where s.taddr = t.addr
and t.xidusn = r.usn
and r.usn = u.usn
order by s.username;
SELECT a.name,
b.xacts "活动事务个数",
b.writes "写入的字节数",
b.extents as "区个数"
FROM v$rollname a, v$rollstat b
WHERE a.usn = b.usn;
1.14 检查回滚段收缩
语句 select name,shrinks from v$rollstat,v$rollname where V$rollstat.usn=v$rollname.usn
1.15 redo日志缓存器
select name,value from v$sysstat where name ='redo buffer allocation retries'
1.16 生成删除约束脚本
select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||CONSTRAINT_NAME||';' from all_constraints where owner='RMS' AND CONSTRAINT_TYPE<>'P'
发现表链接行
select table_name,chain_cnt from user_tables order by chain_cnt desc;
1.17 查看表空间情况
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M) ",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
2),
'990.99') "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 4 DESC
1.18 合并表空间
alter tablespace trmsdata coalesce;
1.19 查看表占用空间数
select segment_name, sum(bytes) / 1024 / 1024 MB
from user_segments, all_tables
where all_tables.owner = 'RMS'
and all_tables.table_name = segment_name
GROUP BY segment_name
1.20 查看索引占用空间数
select segment_name, sum(bytes) / 1024 / 1024 MB
from user_segments, all_indexes
where all_indexes.owner = 'RMS'
and all_indexes.index_name = segment_name
GROUP BY segment_name
1.21 查看系统内存使用
swapinfo -atm HP UNIX内核参数
bufpages 61992 缓冲页 dbc_max_pct 10 动态缓存占内存最大百分比 dbc_min_pct 10 动态缓存占内存最小百分比
1.22 查看session使用的内存
select c.sid, c.OSUSER, c.MACHINE, name, value
from v$statname n, v$sesstat s, v$session c
1.23 找最耗资源的session
SELECT ses.sid,
DECODE(ses.action, NULL, 'online', 'batch') "User",
MAX(DECODE(sta.statistic#, 9, sta.value, 0)) /
greatest(3600 * 24 * (sysdate - ses.logon_time), 1) "Log IO / s",
MAX(DECODE(sta.statistic#, 40, sta.value, 0)) /
greatest(3600 * 24 * (sysdate - ses.logon_time), 1) "Phy IO / s",
60 * 24 * (sysdate - ses.logon_time) "Minutes"
FROM V$SESSION ses, V$SESSTAT sta
WHERE ses.status = 'ACTIVE'
AND sta.sid = ses.sid
AND sta.statistic# IN (9, 40)
GROUP BY ses.sid, ses.action, ses.logon_time
ORDER BY SUM(DECODE(sta.statistic#, 40, 100 * sta.value, sta.value)) /
greatest(3600 * 24 * (sysdate - ses.logon_time), 1) DESC;
1.24 查找前十条性能差的sql
SELECT *
FROM (select PARSING_USER_ID,
EXECUTIONS,
SORTS,
COMMAND_TYPE,
DISK_READS,
sql_text,
address
FROM v$sqlarea
order BY disk_reads DESC)
where ROWNUM < 10;
1.25 查出SQL的查询计划
select lpad(' ', 2 * (level - 1)) || operation "Operation",
options "Options",
decode(to_char(id),
'0',
'Cost=' || nvl(to_char(position), 'n/a'),
object_name) "Object Name",
substr(optimizer, 1, 6) "Optimizer"
from v$sql_plan a
start with address = '00000003DFC20D08'
and id = 0
connect by prior id = a.parent_id
and prior a.address = a.address
and prior a.hash_value = a.hash_value;
1.26 查看oracle系统进程
select * from V$PROCESS spid为系统进程ID
1.27 查看进程正在执行的SQL
SELECT a.username,
a.machine,
a.program,
a.sid,
a.serial#,
a.status,
c.piece,
c.sql_text
from v$session a, v$process b, v$sqltext c
WHERE b.spid = 'ORCL'
AND b.addr = a.paddr
AND a.sql_address = c.address(+)
order BY c.piece
1.28 查看占io较大的正在运行的session
SELECT se.sid,
se.serial#,
pr.SPID,
se.username,
se.status,
se.terminal,
se.program,
se.MODULE,
se.sql_address,
st.event,
st. p1text,
si.physical_reads,
si.block_changes
FROM v$session se, v$session_wait st, v$sess_io si, v$process pr
WHERE st.sid = se.sid
AND st. sid = si.sid
AND se.PADDR = pr.ADDR
AND se.sid > 8
AND st. wait_time = 0
AND st.event NOT LIKE '%SQL%'
ORDER BY physical_reads DESC
1.29 查看session正在执行的SQL
select sql_text, piece
from v$sqltext
where (address, hash_value) in
(select decode(sql_hash_value, 0, prev_sql_addr, sql_address),
decode(sql_hash_value, 0, prev_hash_value, sql_hash_value)
from v$session
where sid = &sid)
order by piece
1.30 脏缓冲回写到磁盘去
alter system set events = 'immediate trace name flush_cache';
导记录
insert into tablename
select * from username.tablename
发表评论
-
Oracle中存储过程和函数的区别
2011-02-18 15:17 947存储过程和函数: 例子: //创建过 ... -
Oracle中如何用SQL检测字段是否包括中文字符
2011-01-25 10:11 0今天有一个同事的数据迁移程序有个问题,没有考虑中文 ... -
Oracle删除表的几种方法
2011-01-19 11:08 0引言: drop table books;的 ... -
Oracle里Varchar的参数(byte和char)的区别
2011-01-19 10:53 01 看一下语法图 ... -
数据库性能优化分析案例---解决SQL语句过度消耗CPU问题
2011-01-18 18:35 0问题描述:10月25日上午滨州网通的工程师报告OSS应用系统运 ... -
怎么查找oracle比较慢的session和SQL
2011-01-18 18:21 0一、如何找到消耗资源大的Oracle的session及其执行的 ... -
Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令
2011-01-06 18:02 0Oracle数据导入导出imp/exp ... -
SQL*Net message from client 事件产生的原因分析
2010-09-20 09:40 0查询v$session_waitSELECT S.SID, ... -
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 问题解决
2010-09-02 22:21 1744近日在配置Oracle 10G的流复制环境时,遇到一个问题, ... -
理解O7_DICTIONARY_ACCESSIBILITY参数
2010-08-13 11:09 1069O7_DICTIONARY_ACCESSIBILITY参数控制 ... -
Oracle国外站点汇集
2010-08-10 16:28 761Oracle官方站点 http://www.oracle.co ... -
oracle启动参数文件
2010-07-29 11:04 18571.初始参数文件:pfile(initialization p ... -
oracle启动参数
2010-07-29 10:52 864数据库启动参数 1. NOM ... -
本地计算机上的OracleOraDb10g_home1TNSListener 服务启动又停止了
2010-07-16 16:49 2080一、问题本地计算机上的OracleOraDb10g_hom ... -
TOPSQL查询
2010-01-20 22:07 934select rownum as rank, a.*from ...
相关推荐
Oracle 常用 SQL 语句大全 本文档总结了 Oracle 中常用的 SQL 语句,包括数据库的创建、删除、备份、表的创建、删除、修改、索引的创建、视图的创建等基本操作,以及一些高级查询运算符的使用。 一、数据库操作 ...
以下是一些关于Oracle常用SQL技巧的经典要点: 1. **避免在SELECT子句中使用“*”**:在SQL查询中,使用通配符“*”代表选择所有列,虽然方便但效率低下。Oracle在解析时需要查询数据字典获取所有列名,增加了额外...
"oracle常用sql.rar"这个压缩包文件显然包含了关于Oracle数据库中常用SQL语句的集合,这对于学习和工作中解决常见问题非常有帮助。以下是一些Oracle SQL的重要知识点: 1. **锁表查询**: 在Oracle中,锁定数据是...
Oracle 常用 SQL 语句汇总 Oracle 是一个功能强大且复杂的关系数据库管理系统,它提供了多种 SQL 语句来管理和操作数据库。在本文中,我们将详细介绍 Oracle 中常用的 SQL 语句,包括数据控制语句(DML)、数据定义...
本文将基于"oracle常用sql整理"的主题,深入探讨Oracle SQL的一些核心概念、语句及其实用技巧,适合初级到中级水平的学习者。 一、SQL基础 SQL是标准化的查询语言,分为DDL(Data Definition Language)、DML(Data...
ORACLE常用SQL.txt ORACLE常用SQL.txt ORACLE常用SQL.txt
oracle常用sql
本资料集包含了Oracle数据库中常用SQL语句的大全,注释完整,非常适合初学者和有经验的开发者参考使用。 1. **数据查询(SELECT语句)**: - `SELECT * FROM table_name;`:查询表table_name中的所有列。 - `...
Oracle 常用 SQL 语法手册 Oracle 是一种关系数据库管理系统, SQL(Structured Query Language)是 Oracle 数据库管理系统的标准语言。下面是 Oracle 常用 SQL 语法手册的知识点总结: 一、SELECT 语句 SELECT ...
ORACLE 常用 SQL 语句 ORACLE 是一种关系数据库管理系统,它提供了多种 SQL 语句来操作和管理数据库。下面将 Introduced 13 种常用的 ORACLE SQL 语句,涵盖字符串处理、数据搜索和修改等方面。 1. ASCII 函数 ...
### Oracle常用SQL语句知识点详解 #### 一、概述 Oracle是全球领先的数据库管理系统之一,在企业级应用领域占据着重要地位。SQL(Structured Query Language)是用于管理关系型数据库的标准语言,也是与Oracle...
oracle常用sql查询.pdf.rar
以下是一些Oracle常用SQL语句,涵盖了查询表空间、日志文件、数据字典、控制文件、数据库对象、性能优化以及运行状态等多个方面。 1. **查看表空间的名称及大小**: ```sql select t.tablespace_name, round(sum...
以下是一些Oracle数据库中常用的SQL语句及其详细解释。 1. **数据查询(SELECT)** - `SELECT column1, column2 FROM table_name;` 用于从表中选择特定列的数据。 - `WHERE condition;` 添加条件过滤结果,如 `...
本篇将基于"Oracle常用SQL语句复习"这一主题,深入探讨Oracle SQL的基本语法和常用操作,帮助读者巩固和提升Oracle数据库操作技能。 1. **数据查询基础** - `SELECT`语句是SQL中最基本的查询命令,用于从一个或多...
Oracle常用SQL手册.chm
"Oracle常用SQL脚本"集合通常包含了一系列预编写好的SQL语句或存储过程,以帮助数据库管理员和开发人员高效地完成日常任务。这些脚本可能涉及数据库性能监控、数据备份与恢复、用户权限管理、表结构操作等多个方面。...
Oracle 常用 SQL 语句 Oracle 是一种关系型数据库管理系统,广泛应用于各个行业。以下是 Oracle 中的一些常用 SQL 语句,涵盖了表空间管理、用户管理、权限管理等方面。 表空间管理 在 Oracle 中,表空间是数据库...
从给定的文件信息来看,主要涉及的是Oracle数据库的管理和优化相关的SQL脚本与知识点,以下将对这些知识点进行详细的解读和扩展。 ### Oracle数据库I/O统计查询 第一条SQL脚本用于统计Oracle数据库中的I/O操作,...