知识大全 Oracle维护常用SQL语句汇总
Posted 知
篇首语:读书志在圣贤,为官心存君国。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle维护常用SQL语句汇总相关的知识,希望对你有一定的参考价值。
Oracle维护常用SQL语句汇总 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
如何远程判断Oracle数据库的安装平台
select * from v$version;
查看表空间的使用情况
select sum(bytes)/( * ) as free_space tablespace_name
from dba_free_space
group by tablespace_name;
SELECT A TABLESPACE_NAME A BYTES TOTAL B BYTES USED C BYTES FREE
(B BYTES* )/A BYTES % USED (C BYTES* )/A BYTES % FREE
FROM SYS SM$TS_AVAIL A SYS SM$TS_USED B SYS SM$TS_FREE C
WHERE A TABLESPACE_NAME=B TABLESPACE_NAME AND A TABLESPACE_NAME=C TABLESPACE_NAME;
查看表空间的名称及大小
select t tablespace_name round(sum(bytes/( * )) ) ts_size
from dba_tablespaces t dba_data_files d
where t tablespace_name = d tablespace_name
group by t tablespace_name;
查看表空间物理文件的名称及大小
select tablespace_name file_id file_name
round(bytes/( * ) ) total_space
from dba_data_files
order by tablespace_name;
查看回滚段名称及大小
select segment_name tablespace_name r status
(initial_extent/ ) InitialExtent (next_extent/ ) NextExtent
max_extents v curext CurExtent
From dba_rollback_segs r v$rollstat v
Where r segment_id = v usn(+)
order by segment_name ;
查看控制文件
select name from v$controlfile;
查看日志文件
select member from v$logfile;
查看表空间的使用情况
select sum(bytes)/( * ) as free_space tablespace_name
from dba_free_space
group by tablespace_name;
SELECT A TABLESPACE_NAME A BYTES TOTAL B BYTES USED C BYTES FREE
(B BYTES* )/A BYTES % USED (C BYTES* )/A BYTES % FREE
FROM SYS SM$TS_AVAIL A SYS SM$TS_USED B SYS SM$TS_FREE C
WHERE A TABLESPACE_NAME=B TABLESPACE_NAME AND A TABLESPACE_NAME=C TABLESPACE_NAME;
查看数据库库对象
select owner object_type status count(*) count# from all_objects group by owner object_type status;
查看数据库的版本
Select version FROM Product_ponent_version
Where SUBSTR(PRODUCT )= Oracle ;
查看数据库的创建日期和归档方式
Select Created Log_Mode Log_Mode From V$Database;
如何远程判断Oracle数据库的安装平台
select * from v$version;
查看数据表的参数信息
SELECT partition_name high_value high_value_length tablespace_name
pct_free pct_used ini_trans max_trans initial_extent
next_extent min_extent max_extent pct_increase FREELISTS
freelist_groups LOGGING BUFFER_POOL num_rows blocks
empty_blocks avg_space chain_cnt avg_row_len sample_size
last_analyzed
FROM dba_tab_partitions
WHERE table_name = :tname AND table_owner = :towner
ORDER BY partition_position
查看还没提交的事务
select * from v$locked_object;
select * from v$transaction;
回滚段查看
select rownum sys dba_rollback_segs segment_name Name v$rollstat extents
Extents v$rollstat rssize Size_in_Bytes v$rollstat xacts XActs
v$rollstat gets Gets v$rollstat waits Waits v$rollstat writes Writes
sys dba_rollback_segs status status from v$rollstat sys dba_rollback_segs
v$rollname where v$rollname name(+) = sys dba_rollback_segs segment_name and
v$rollstat usn (+) = v$rollname usn order by rownum
捕捉运行很久的SQL
column username format a
column opname format a
column progress format a
select username sid opname
round(sofar* / totalwork ) || % as progress
time_remaining sql_text
from v$session_longops v$sql
where time_remaining <>
and sql_address = address
and sql_hash_value = hash_value
/
查看数据表的参数信息
SELECT partition_name high_value high_value_length tablespace_name
pct_free pct_used ini_trans max_trans initial_extent
next_extent min_extent max_extent pct_increase FREELISTS
freelist_groups LOGGING BUFFER_POOL num_rows blocks
empty_blocks avg_space chain_cnt avg_row_len sample_size
last_analyzed
FROM dba_tab_partitions
WHERE table_name = :tname AND table_owner = :towner
ORDER BY partition_position
查找object为哪些进程所用
select
p spid
s sid
s serial# serial_num
s username user_name
a type object_type
s osuser os_user_name
a owner
a object object_name
decode(sign( mand)
to_char(mand) Action Code # || to_char(mand) ) action
p program oracle_process
s terminal terminal
s program program
s status session_status
from v$session s v$access a v$process p
where s paddr = p addr and
s type = USER and
a sid = s sid and
a object= SUBSCRIBER_ATTR
order by s username s osuser
耗资源的进程(top session)
select s schemaname schema_name decode(sign( mand)
to_char(mand) Action Code # || to_char(mand) ) action status
session_status s osuser os_user_name s sid p spid s serial# serial_num
nvl(s username [Oracle process] ) user_name s terminal terminal
s program program st value criteria_value from v$sesstat st v$session s v$process p
where st sid = s sid and st statistic# = to_number( ) and ( ALL = ALL
or s status = ALL ) and p addr = s paddr order by st value desc p spid asc s username asc s osuser asc
查看锁(lock)情况
select /*+ RULE */ ls osuser os_user_name ls username user_name
decode(ls type RW Row wait enqueue lock TM DML enqueue lock TX
Transaction enqueue lock UL User supplied lock ) lock_type
o object_name object decode(ls lmode null Row Share
Row Exclusive Share Share Row Exclusive Exclusive null)
lock_mode o owner ls sid ls serial# serial_num ls id ls id
from sys dba_objects o ( select s osuser s username l type
l lmode s sid s serial# l id l id from v$session s
v$lock l where s sid = l sid ) ls where o object_id = ls id and o owner
<> SYS order by o owner o object_name
根据sid查是哪台电脑的链接
column osuser format a
column username format a
column machine format a
select osuser machine username sid serial# from v$session where sid= ;
根据sid查对应的sql
select SID SQL_TEXT from v$open_cursor where SID= ;
查看等待(wait)情况
SELECT v$waitstat class v$unt count SUM(v$sysstat value) sum_value
FROM v$waitstat v$sysstat WHERE v$sysstat name IN ( db block gets
consistent gets ) group by v$waitstat class v$unt
查看sga情况
SELECT NAME BYTES FROM SYS V_$SGASTAT ORDER BY NAME ASC
查看catched object
SELECT owner name db_link namespace
type sharable_mem loads executions
locks pins kept FROM v$db_object_cache
查看V$SQLAREA
SELECT SQL_TEXT SHARABLE_MEM PERSISTENT_MEM RUNTIME_MEM SORTS
VERSION_COUNT LOADED_VERSIONS OPEN_VERSIONS USERS_OPENING EXECUTIONS
USERS_EXECUTING LOADS FIRST_LOAD_TIME INVALIDATIONS PARSE_CALLS DISK_READS
BUFFER_GETS ROWS_PROCESSED FROM V$SQLAREA
查看object分类数量
select decode (o type# INDEX TABLE CLUSTER VIEW
SYNONYM SEQUENCE OTHER ) object_type count(*) quantity from
sys obj$ o where o type# > group by decode (o type# INDEX TABLE
CLUSTER VIEW SYNONYM SEQUENCE OTHER ) union select
COLUMN count(*) from l$ union select DB LINK count(*) from
按用户查看object种类
select u name schema sum(decode(o type# NULL)) indexes
sum(decode(o type# NULL)) tables sum(decode(o type# NULL))
clusters sum(decode(o type# NULL)) views sum(decode(o type#
NULL)) synonyms sum(decode(o type# NULL)) sequences
sum(decode(o type# NULL NULL NULL NULL NULL NULL ))
others from sys obj$ o sys user$ u where o type# >= and u user# =
o owner# and u name <> PUBLIC group by u name order by
sys link$ union select CONSTRAINT count(*) from n$
有关connection的相关信息
)查看有哪些用户连接
select s osuser os_user_name decode(sign( mand) to_char(mand)
Action Code # || to_char(mand) ) action p program oracle_process
status session_status s terminal terminal s program program
s username user_name s fixed_table_sequence activity_meter query
memory max_memory cpu_usage s sid s serial# serial_num
from v$session s v$process p where s paddr=p addr and s type = USER
order by s username s osuser
)根据v sid查看对应连接的资源占用等情况
select n name
v value
n class
n statistic#
from v$statname n
v$sesstat v
where v sid = and
v statistic# = n statistic#
order by n class n statistic#
)根据sid查看对应连接正在运行的sql
select /*+ PUSH_SUBQ */
mand_type
sql_text
sharable_mem
persistent_mem
runtime_mem
sorts
version_count
loaded_versions
open_versions
users_opening
executions
users_executing
loads
first_load_time
invalidations
parse_calls
disk_reads
buffer_gets
rows_processed
sysdate start_time
sysdate finish_time
> || address sql_address
N status
from v$sqlarea
where address = (select sql_address from v$session where sid = )
.查询表空间使用情况
select a tablespace_name 表空间名称
round((nvl(b bytes_free )/a bytes_alloc)* ) 占用率(%)
round(a bytes_alloc/ / ) 容量(M)
round(nvl(b bytes_free )/ / ) 空闲(M)
round((a bytes_alloc nvl(b bytes_free ))/ / ) 使用(M)
Largest 最大扩展段(M)
to_char(sysdate yyyy mm dd hh :mi:ss ) 采样时间
from (select f tablespace_name
sum(f bytes) bytes_alloc
sum(decode(f autoextensible YES f maxbytes NO f bytes)) maxbytes
from dba_data_files f
group by tablespace_name) a
(select f tablespace_name
sum(f bytes) bytes_free
from dba_free_space f
group by tablespace_name) b
(select round(max(ff length)* / ) Largest
ts name tablespace_name
from sys fet$ ff sys file$ tf sys ts$ ts
where ts ts#=ff ts# and ff file#=tf relfile# and ts ts#=tf ts#
group by ts name tf blocks) c
where a tablespace_name = b tablespace_name and a tablespace_name = c tablespace_name
查询表空间的碎片程度
select tablespace_name count(tablespace_name) from dba_free_space group by tablespace_name
having count(tablespace_name)> ;
alter tablespace name coalesce;
alter table name deallocate unused;
create or replace view ts_blocks_v as
select tablespace_name block_id bytes blocks free space segment_name from dba_free_space
union all
select tablespace_name block_id bytes blocks segment_name from dba_extents;
select * from ts_blocks_v;
select tablespace_name sum(bytes) max(bytes) count(block_id) from dba_free_space
group by tablespace_name;
查询有哪些数据库实例在运行
select inst_name from v$active_instances;
查找oracle性能瓶颈sql
select sql_text spid v$session program process from
v$sqlarea v$session v$process
where v$sqlarea address=v$session sql_address
and v$sqlarea hash_value=v$session sql_hash_value
and v$session paddr=v$process addr
and v$process spid in (操作系统PID);
select sid event p p text from v$session_wait;
找出最耗资源的sql
select * from v$process where spid= ;
select sql_hash_value machine username program from v$session where PAddr= B A ;
select * from v$sqltext where hash_value= ;
select * from v$sql where hash_value= ;
select * from v$sqlarea where hash_value= ;
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= AND b addr=a paddr AND a sql_address=c address(+) ORDER BY c piece
要找出最耗资源的sql 我们可以首先使用top等工具 找到最好资源的进程(记住进程号) 例如 操作系统进程号为 然后根据这个进程号(v$process spid)在v$process中找到进程地址(v$process addr) 然后根据这个地址在 v$session中找到相应的sid(v$session sid) 然后根据这个sid找到相应的hash alue(v$session sql_hash_value) 然后根据这个hash alue在v$sqltext $sql v$sqlarea等视图中找到对应的sql语句(sql_text)
select * from v$process where spid= ;
select sql_hash_value machine username program from v$session where PAddr= B A ;
select * from v$sqltext where hash_value= ;
select * from v$sql where hash_value= ;
select * from v$sqlarea where hash_value= ;
cha138/Article/program/Oracle/201311/16928相关参考
数据库手册:Oracle维护常用SQL语句一 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 查看
Oracle数据库维护常用SQL语句集合(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 性
Oracle10G常用维护语句 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 创建表空间
以下是对oracle中的常用函数进行了汇总介绍需要的朋友可以过来参考下 一运算符算术运算符+*/可以在select语句中使用连接运算符||selectdeptno||dnamefromd
基于SQL中的数据查询语句汇总 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!以下是对SQL中的数据
Oracle语句优化规则汇总(9) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!使用提示(Hint
Oracle语句优化规则汇总(5) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! O
Oracle语句优化规则汇总(10) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!需要当心的WHE
Oracle语句优化规则汇总(6) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!基础表的选择 基
许多软件公司都理解开发不依赖于特定数据库类型(例如OracleSQLServerDB)的应用程序的重要性它可以让客户们选择自己习惯的平台一般来说软件开发人员都能够识别出他们的负责数据库维护的客户和