2023年11月27日发(作者:)

Oracle数据库日常维护

【版本整理日期:2011/02/26

版本整理人:1634068400@

本文档包含以下内容:

1 Oracle数据库日常维护

2 Oracle DBA 常用管理脚本

3 Oracle DB 常用SQL 语句

/********************************************************

HTTP://

(若跳转不成功,请复制到浏览器或联系Q)

/?id=7437120468

Metalink Sharing

********************************************************/

Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用

情况进行监控,及早发现数据库中存在的问题。

一、Oracle警告日志文件监控

Oracle在运行过程中,会在警告日志文件(alert_)中记录数据库的一

些运行情况:

l 数据库的启动、关闭,启动时的非缺省参数;

l 数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点

(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因;

l 对数据库进行的某些操作,如创建或删除表空间、增加数据文件;

l 数据库发生的错误,如表空间不够、出现坏块、数据库内错误(ORA

600)

DBA应该期检查日志文件,据日志中发现的问题及时进行处理

问题 处理

启动参数不对 检查初始化参数文件

因为检查点操作或归档操作没如果经常发生这样的情况,可以考虑

有完成造成重做日志不能切换 加重做日志文件想办法提高检查点

归档操作的效率

人未经授权删除表空间 检查数据库的安全问题,是否密码太简

;如有必要撤消某些用系统权

出现坏块 检查是否是硬件问题(磁盘本生有坏

)如果不检查是那个数据库对

出现坏块,对这个进行重建

表空间不够 增加数据文件到相应的表空间

出现ORA-600 据日志文件的内看相应的TRC

文件,如果Oraclebug及时

上相应的补丁

、数据库表空间使用情况监控(字典管理表空间

数据库运行时间由于的在表空间创建删除对,会在

表空间上产大量碎片DBA应该及时了解表空间的碎片和可用空间情况,

以决定是否要碎片进行整理或为表空间增加数据文件。

select tablespace_name,

count(*) chunks ,

max(bytes/1024/1024) max_chunk

from dba_free_space

group by tablespace_name;

上面SQL数据库中每表空间的空块情况,下所示

TABLESPACE_NAME CHUNKS MAX_CHUNK

-------------------- ---------- ----------

INDX 1 57.9921875

RBS 3 490.992188

RMAN_TS 1 16.515625

SYSTEM 1 207.296875

TEMP 20 70.8046875

TOOLS 1 11.8359375

USERS 67 71.3671875

中,CHUNKS表空间中有多少可用的空(是由一些

连续Oracle数据块),如果这样的空块过平均数据

文件100该表空间的碎片较严可以尝试

SQL命令进行表空间碎片接合

alter tablespace 表空间名 cascade;

此处是有误吧,coalesce;

执行查表空间碎片SQL语句表空间的碎片有没有

果没有果,并且表空间的碎片影响到了数据库的运行,考虑对该

表空间进行重建。

MAX_CHUNK表空间用块,如果该表空间

(NEXT)

ORA-1652ORA-1653ORA-1654的错误信息DBA应该及时对表空间的空

间进行扩充避免些错误发生。

对表空间的扩充对表空间的数据文件进行扩展,或表空间增加数据

文件,具体操作管理

、查数据库的情况

DBA要定时对数据库的情况进行检查,数据库建的会

,如果建,会数据库的资源时,对一些“挂

死”能会DBA手工进行

以下SQL语句当前数据库建的会情况:

select sid,serial#,username,program,machine,status

from v$session;

果为:

SID SERIAL# USERNAME PROGRAM MACHINE STATUS

---- ------- ---------- ----------- --------------- --------

1 1 WORK3 ACTIVE

2 1 WORK3 ACTIVE

3 1 WORK3 ACTIVE

4 1 WORK3 ACTIVE

5 3 WORK3 ACTIVE

6 1 WORK3 ACTIVE

7 1 WORK3 ACTIVE

8 27 SYS WORKGROUPWORK3 ACTIVE

11 5 DBSNMP WORKGROUPWORK3 INACTIVE

中,

SID (session)ID

SERIAL# SID来唯标识

USERNAME 该会的用

PROGRAM 这个什么工具数据库的;

STATUS 当前这个状态ACTIVE话正在执行某

任务INACTIVE当前没有执行任何操作;

如果DBA手工执行:

alter system kill session 'SID,SERIAL#';

注意SID17(USERNAME为空)的会Oracle

进程,不些会进行任何操作。

、控文件的备份

在数据库结构发生时,如增加表空间,增加数据文件或重做日志

文件些操作,会造成Oracle数据库控文件的DBA应及进行控

文件的备份备份方法是

执行SQL语句

alter database

backup controlfile to '/home/backup/';

或:

alter database

backup controlfile to trace;

这样会在USER_DUMP_DEST(初始化参数文件中)生成创建

文件的SQL命令

、检查数据库文件的状态

DBA及时查数据库中数据文件的状态误删除实际情况

决定进行处理,检查数据文件的状态SQL

select file_name,status

from dba_data_files;

如果数据文件的STATUSAVAILABLE么就采取应的措施

如对该数据文件进行恢复操作,或重建该数据文件在的表空间。

、检查数据库时作的完成情况

如果数据库使用OracleJOB完成一些时作JOB

运行情况进行检查:

select job,log_user,last_date,failures

from dba_jobs;

如果FAILURES列是个大于0的数的说明JOB运行失败进一

的检查。

、数据库坏块的处理

Oracle数据库出现坏块时,Oracle会在警告日志文件alert_

中记录坏块的信息

ORA-01578: ORACLE data block corrupted (file # 7, block # )

ORA-01110: data file : '/oracle1/oradata/V920/oradata/V816/'

中,AFN>代表坏块在数据文件的对文件表坏

数据文件第几数据块

出现情况时,应该首先检查是否是硬件及操作系统上故障导致

Oracle数据库出现坏块。在数据库的原因对发生坏块的数据

库对进行处理

1.确发生坏块的数据库对

SELECT tablespace_name,

segment_type,

owner,

segment_name

FROM dba_extents

WHERE file_id =

AND between block_id AND block_id+blocks-1;

2决定修复

如果发生坏块的对象是索引可以把索引DROP

据表的记录进行重建;

如果发生坏块的表的记录可以根表的记录生成的

这个DROP重建;

如果有数据库的备份恢复数据库的进行修复

如果表的记录没有办法恢复坏块的记录丢失

表中数据块的记录这个表进行重建。

3OracleDBMS_REPAIR记出坏块

exec DBMS__CORRUPT_BLOCKS('','');

4使用Create table as select命令表中的记录

create table corrupt_table_bak

as

select * from corrupt_table;

5DROP TABLE命令删除有坏块的表

drop table corrupt_table;

6alter table rename命令恢复的表

alter table corrupt_table_bak

rename to corrupt_table;

7如果表存在索引重建表索引

、操作系统相维护

DBA注意对操作系统的监控:

l 文件系统的空间使用情况df -k必要时对Oracle的警告日志及TRC

件进行

l 如果Oracle供网络服,检查网络是否

l 检查操作系统资源使用情况是否

l 检查数据库有没有故障,如磁盘、内存

.数据字典和动态性能视图

数据字典是oracle数据库的数据库的系统

;动视图程启动信息

数据字典数据库的系统信息只读视图会。数据字典包含

字典数据字典视图两中,表存数据库的信息普通

不能访问数据字典表;数据字典视图数据字典表建视图

普通户可以过查数据字典视图系统信息。数据字典视图主包括

USER_XXX,ALL_XXX,DBA_XXX种类型

USER_XXX当前户所有的有对它只返回户所对应的有对

DBA_XXX示整个数据库范围内的详细系统信息示所

的数据库对

用数据字典

DICT当前户可访问的有数据字典视图了这些数据字典

的作用。

DICT_COLUMNS数据字典视图的每个列的作用。

DUAL得函数的返回

GLOBAL_NAME当前数据库的

IND当前户所有的索引索引信息

OBJ当前户所有的有对

SEQ当前户所有的

SYN当前户所有的义词义词对应的数据库对

TAB当前户所的表,视图

视图记录当前例程的信息。启动程时,oracle动建

视图停止程时,oracle动删除动视图注意的时,

数据字典信息数据文件中视图SGA文件中

过查视图面可以获得性能数据,面可以

盘和内存结构关的信息有的动视图是以V_$的,oracle

为每视图了相应的义词(以V$始)

用的动视图

V$FIXED_TABLE于列用的动视图能表。

V$INSTANCE取当前例程的详细信息

V$SGASGA详细信息

V$PARAMETER初始化参数的详细信息

V$VERSIONoracle详细信息

V$OPTION 经安oracle选项中,TRUE选项经安

FALSE选项没有

V$SESSION 详细信息

V$PROCESS oracle关的有进程的信息包括进程

进程

V$BGPROCESS 示后进程的详细信息

V$DATABASE 当前数据库的详细信息如数据库,日志模式及建

时间

V$CONTROLFILE 当前数据库有控文件的信息

V$DATAFILE 当前数据库有数据文件的详细信息

V$DBFILE 数据文件

V$LOGFILE 重做日志成信息

V$LOG 日志详细信息

V$THREAD 重做线程的详细信息

V$LOCK 信息

V$LOCKED_OBJECT 的数据库对

V$ROLLNAMEV$ROLLSTAT

V$ROLLNAME视图示处于online状态undoV$ROLLSTAT

undo段统信息过在间执行可以undo

详细信息

V$TABLESPACE 表空间的信息

V$TEMPFILE 当前数据库包含时文件。

2.

常用DBA管理脚本

一、数据库

1、表空间的监控任务我们表空间的设置是否

现在应用的以下语句可以表空间的详细信息

SELECT TABLESPACE_NAME,INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,

MAX_EXTENTS,PCT_INCREASE,MIN_EXTLEN,STATUS,

CONTENTS,LOGGING,

EXTENT_MANAGEMENT, -- Columns not available in v8.0.x

ALLOCATION_TYPE, -- Remove these columns if running

PLUGGED_IN, -- against a v8.0.x database

SEGMENT_SPACE_MANAGEMENT --use only in v9.2.x or later

FROM DBA_TABLESPACES

ORDER BY TABLESPACE_NAME;

2、对某些数据文件没有设置扩展的表空间,如果表空间

将意味着数据库能会因为没有空间而停止监控表空间,

剩余空间的使用以下是监控表空间使用剩余空间

SELECT PACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS

SUM_BLOCKS,SPACE-NVL(FREE_SPACE,0) "USED_SPACE(M)",

ROUND((1-NVL(FREE_SPACE,0)/SPACE)*100,2) "USED_RATE(%)",FREE_SPACE

"FREE_SPACE(M)"

FROM

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2)

SPACE,SUM(BLOCKS) BLOCKS

FROM DBA_DATA_FILES

GROUP BY TABLESPACE_NAME) D,

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) FREE_SPACE

FROM DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME) F

WHERE PACE_NAME = PACE_NAME(+)

UNION ALL --if have tempfile

SELECT PACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,

USED_SPACE "USED_SPACE(M)",ROUND(NVL(USED_SPACE,0)/SPACE*100,2)

"USED_RATE(%)",

NVL(FREE_SPACE,0) "FREE_SPACE(M)"

FROM

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2)

SPACE,SUM(BLOCKS) BLOCKS

FROM DBA_TEMP_FILES

GROUP BY TABLESPACE_NAME) D,

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES_USED)/(1024*1024),2)

USED_SPACE,

ROUND(SUM(BYTES_FREE)/(1024*1024),2) FREE_SPACE

FROM V$TEMP_SPACE_HEADER

GROUP BY TABLESPACE_NAME) F

WHERE PACE_NAME = PACE_NAME(+)

3、除监控表空间的剩余空间,有时候我们也必要了解该表空间是否

扩展空间的能我们在生产系统分配空间。以下语句

完成

SELECT PACE_NAME,_NAME,

TENSIBLE,,ES,

FROM DBA_TABLESPACES T,

DBA_DATA_FILES D

WHERE T. TABLESPACE_NAME =D. TABLESPACE_NAME

ORDER BY TABLESPACE_NAME,FILE_NAME

4使用字典管理的表空间的,因为字典管理的表空间中,每

表的间的可以预料的,所以我们监控些表在字典管理

表空间中的间的分配能问题或由于是扩展的表空间而导

系统停止以下语句检查些表的扩展将引表空间的扩展

SELECT ,_NAME,_EXTENT,PACE_NAME

FROM ALL_TABLES A,

(SELECT TABLESPACE_NAME, MAX(BYTES) BIG_CHUNK

FROM DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME) F

WHERE PACE_NAME = PACE_NAME

AND _EXTENT > _CHUNK

5用空间间数注意的一问题,如果一个段用空间

太大,或者跨越太多字典管理的表空间中,重的影响

如果没有可以再分配间,将导致数据库错误。所以小与间监控

SELECT ,T_NAME,T_TYPE,ION_NAME,

ROUND(BYTES/(1024*1024),2) "USED_SPACE(M)",

EXTENTS USED_EXTENTS,_EXTENTS, ALLOCATED_BLOCKS,

USED_BOLCKS,_INCREASE,_EXTENT/1024

"NEXT_EXTENT(K)"

FROM DBA_SEGMENTS S

WHERE NOT IN ('SYS','SYSTEM')

ORDER BY Used_Extents DESC

6、对的空间分配与空间用情况,除,如表,查

rowidoracle空间的dbms_space,如果我们

稍封装用的一东西

CREATE OR REPLACE PROCEDURE show_space

(p_segname in varchar2,

p_type in varchar2 default 'TABLE' ,

p_owner in varchar2 default user)

AS

v_segname varchar2(100);

v_type varchar2(10);

l_free_blks number;

l_total_blocks number;

l_total_bytes number;

l_unused_blocks number;

l_unused_bytes number;

l_LastUsedExtFileId number;

l_LastUsedExtBlockId number;

l_LAST_USED_BLOCK number;

PROCEDURE p( p_label in varchar2, p_num in number )

IS

BEGIN

dbms__line( rpad(p_label,40,'.')|| p_num );

END;

BEGIN

v_segname := upper(p_segname);

v_type := p_type;

if (p_type = 'i' or p_type = 'I') then

v_type := 'INDEX';

end if;

if (p_type = 't' or p_type = 'T') then

执行下所示

SQL> set serveroutput on;

SQL> exec show_space('test');

1

8

65536

6

49152

Last Used 1

Last Used 48521

Last 2

PL/SQL procedure successfully completed

8数据库的索引如果有频繁Delete操作,导致索引多碎片

所以,在有的时有的索引REBUILD便合并索引块,少碎

提高速度

SQL> set heading off

SQL> set feedback off

SQL> spool d:

SQL> SELECT 'alter index ' || index_name || ' rebuild '

||'tablespace INDEXES storage(initial 256K next 256K pctincrease 0);'

FROM all_indexes

WHERE ( tablespace_name != 'INDEXES'

OR next_extent != ( 256 * 1024 )

)

AND owner = USER

SQL>spool off

这个我们spool的文件,可以运行

9、表的是必要的,没有的表可以的,所以我们

监控表是否

SELECT table_name

FROM all_tables

WHERE owner = USER

MINUS

SELECT table_name

FROM all_constraints

WHERE owner = USER

AND constraint_type = 'P'

能监控

1、数据缓冲区中的问题,过

定是可以的,在任何情况我们有一个大data buffer

个高

这个语句可以获得的数据缓冲越好

SELECT + logical_reads,

phys_reads,

round(100*(/(+)),4) hit_ratio

FROM v$sysstat a,v$sysstat b,v$sysstat c

WHERE ='db block gets'

AND ='consistent gets'

AND ='physical reads'

2、库缓冲说明SQL语句的重当然,一SQL语句当被执行的

,如果重率比考虑增加共享池是提高Bind的使用

以下语句Sql语句的重越低越好

SELECT SUM(pins) total_pins,SUM(reloads) total_reloads,

SUM(reloads)/SUM(pins)*100 libcache_reload_ratio

FROM v$librarycache

3数据库的有的时是比较耗资源的,特别发生锁等待的时

我们须找发生等待,有能的该进程。

这个语句数据库中有的DML语句生的可以发现,任何DML

语句,一个是,一个是

可以alter system kill session sid,serial#

SELECT /*+ rule */ me,

decode(,'TM','TABLE LOCK',

'TX','ROW LOCK',

NULL) LOCK_LEVEL,

,_name,_type,

,#,al,e,m,

FROM v$session s,v$lock l,dba_objects o

WHERE =

AND 1 = _id(+)

AND me is NOT NULL

4等待,如果发生锁等待我们知道谁锁而引

以下语句可以谁锁表,等待

SELECT /*+ rule */ lpad(' ',decode( ,0,3,0))||_username

User_name,

,_name,_type,,#

FROM v$locked_object l,dba_objects o,v$session s

WHERE _id=_id

AND n_id=

ORDER BY _id,xidusn DESC

以上状结构如果有子节点,等待发生。如果知道

可以V$rollnamexidusnUSN

5、如果发生知道哪使用吗?表,

我们可以详细的查务与间的关时,如果关表,我们

可以知道发动了这个

SELECT ME,,#, "UBA filenum",

"UBA Block number",_UBLK "Number os undo Blocks Used",

_TIME,,_SCNB, RollID, RollName

FROM v$session s,v$transaction t,v$rollname r

WHERE =_ADDR

AND =

7如果用会跟踪是想跟踪文件,OS的进

程或线的,因为文件的令名中,包含这个信息以下语句

进程或线可以对应的文件。

SELECT ||''||||'_ora_'|| filename

FROM

v$process p,

v$session s,

v$parameter p1,

v$parameter p2

WHERE = 'user_dump_dest'

AND = 'db_name'

AND =

AND = USERENV ('SESSIONID');

8、在ORACLE 9i中,可以监控索引的使用,如果没有使用索引,完全可以

删除DML操作时的操作。

以下索引监控停止索引监控的

set heading off

set echo off

set feedback off

set pages 10000

spool start_index_

SELECT 'alter index '||owner||'.'||index_name||' monitoring usage;'

FROM dba_indexes

WHERE owner = USER;

spool off

set heading on

set echo on

set feedback on

------------------------------------------------

set heading off

set echo off

set feedback off

set pages 10000

spool stop_index_

SELECT 'alter index '||owner||'.'||index_name||' nomonitoring usage;'

FROM dba_indexes

WHERE owner = USER;

spool off

set heading on

set echo on

set feedback on

如果监控的用可以owner=User改写

监控果在视图v$object_usage中查

感谢fenng更新版show_space

CREATE OR REPLACE PROCEDURE show_space

( p_segname IN VARCHAR2,

FROM dba_segments seg, dba_tablespaces ts

-- information.

dbms__space

( segment_owner => p_owner,

segment_name => p_segname,

select SQL_TEXT from V$SQLTEXT

where HASH_VALUE =

( select SQL_HASH_VALUE from v$session

where sid = &sid)

order by PIECE

Checking v$session_wait

select * from v$session_wait

where event not like 'rdbms%'

and event not like 'SQL*N%'

and event not like '%timer';

between _id and _id + - 1;

#出每文件等待事

select , from v$datafile df,x$kcbfwait kf where

(+1)=#;

#等待事件的SQL语句.

select sql_text from v$sqlarea a,v$session b,v$session_wait c where

s=_address and = and =[$ll]

#监控共享池了大的内存分配

SELECT * FROM X$KSMLRU WHERE ksmlrsiz > 0;

pfile启动spfile启动的简单!!!

pfile启动spfile启动的简单!!!

select decode(count(*), 1, 'spfile', 'pfile' )

from v$spparameter

where rownum=1

and isspecified='TRUE'

/

DECODE

------

spfile

ORACLE技巧

ORACLE常用技巧和脚本

1.ORACLE参数

ORACLE参数,除文件中,在svrmgrl中用"show

parameter *"可以ORACLE有一些参数是以_的。如我们

熟悉_offline_rollback_segments

些参数sys.x$ksppi表中查出。

语句select ksppinm from x$ksppi where substr(ksppinm,1,1)='_';

2.看安ORACLE

${ORACLE_HOME}/orainst/,运行./inspdver示安

3.ORACLE共享内存的

UNIX命令“ipcs共享内存的地址信号

svrmgrl,用oradebug ipc可看ORACLE共享内存的段和大

example:

SVRMGR> oradebug ipc

-------------- Shared memory --------------

Seg Id Address Size

1153 7fe000 784

1154 800000 419430400

1155 19800000 67108864

4.当前SQL*PLUSsidserial#?

SQL*PLUS,运行:

select sid, serial#, status from v$session

where audsid=userenv('sessionid');

5.当前数据库的

SQL*PLUS,运行:

select userenv('language') from dual;

或:select userenv('lang') from dual;

6.数据库中某用在运行什么SQL语句

MACHINEUSERNAMESIDSERIAL#V$SESSIONV$SQLTEXT

查出。

SQL*PLUS语句

SELECT SQL_TEXT FROM V$SQL_TEXT T, V$SESSION S WHERE

S=_ADDRESS

AND _VALUE=_HASH_VALUE

AND E='XXXXX' OR USERNAME='XXXXX' -- ,或用

/

7.删除表中的重记录

例句

DELETE

FROM table_name a

WHERE rowid > ( SELECT min(rowid)

FROM table_name b

WHERE _column_1 = _column_1

and _column_2 = _column_2 );

8.手工

syssystem系统sql*plus运行:create database character set

us7ascii;".

以下错误提示

* create database character set US7ASCII

ERROR at line 1:

ORA-01031: insufficient privileges

实际v$nls_parameters重启数据库,数据库

命令时的不集服器之间数据用。

9.instance分配PCM的数

以下命令

select count(*) "Number of hashed PCM locks" from v$lock_element where

bitand(flags,4)<>0

/

select count(*) "Number of fine grain PCM locks" from v$lock_element

where bitand(flags,4)=0

/

10. 当前正在使用SQL式?

explain planEXPLAIN PLAN,检查PLAN_TABLEID=0POSITION

e.g.

select decode(nvl(position,-1),-1,'RBO',1,'CBO') from plan_table where

id=0

/

11. EXPORT时,能DUMP文件多个

ORACLE8IEXP增加参数FILESIZE文件多个

EXP SCOTT/TIGER FILE=ORDER_,ORDER_,ORDER_) FILESIZE=1G

TABLES=ORDER

ORACLEUNIX下可split

mknod pipe p

split -b 2048m pipe order & #文件成,每2GB的,order

的文件:

#orderaa,orderab,orderac,... 该进程

EXP SCOTT/TIGER FILE=pipe tables=order

用数据字典

用数据字典

ORACLE的数据字典是数据库的重要组一,数据库的,

数据库的,

现为sys户下的一些表视图。数据字典是大

数据字典存有用信息权限信息有数据对信息表的约束条件、

数据库的视图

我们不能手工数据字典信息

,一ORACLE知道

dictionary 全部数据字典表的和解有一义词dict

dict_column 全部数据字典字段和解

如果我们索引有关的数据字典时,可以下面这SQL语句:

SQL>select * from dictionary where instr(comments,'index')>0;

如果我们知道user_indexes字段详细含义可以下面这SQL

语句:

SQL>select column_name,comments from dict_columns where

table_name='USER_INDEXES';

可以轻松知道数据字典详细和解,不用查ORACLE

下面出一些ORACLE户常用数据字典的查使用

一、用

当前的缺省表空间

SQL>select username,default_tablespace from user_users;

当前角色

SQL>select * from user_role_privs;

当前系统权限和权限

SQL>select * from user_sys_privs;

SQL>select * from user_tab_privs;

SQL-1 =====文件

SQL-2 =====日志文件

SQL-3 =====表空间使用情况

SQL-4 =====数据库库对

SQL-5 =====数据库的

SQL-6 =====数据库创建日期和归档

SQL-7 =====捕捉运行SQL

SQL-8 =====数据表的参数信息

SQL-9 =====表空间的

SQL-10 =====表空间关查

SQL-11 =====

SQL-12 =====当前SQL*PLUSsidserial

SQL-13 =====当前数据库的

SQL-14 =====SQL

SQL-15 =====看系统当前最SCN

SQL-16 =====TRACE文件

SQL-17 =====端登陆IP

SQL-18 =====创建IP地址

SQL-19 =====数据库当前日期

SQL-20 =====Disk ReadSQL

SQL-21 =====十条sql

SQL-22 =====等待时间5个系统等待事

SQL-23 =====检查Oracle状态

SQL-24 =====检查Oracle扩展信息

SQL-25 =====Oracle

SQL-26 =====

SQL-27 =====数据库对

SQL-28 =====未提

SQL-29 =====object些进程

SQL-30 =====

SQL-31 =====耗资源的进程(top session)

SQL-32 =====PID应的语句

SQL-33 =====监控当前数据库在运行什么SQL语句

SQL-34 =====监控数据库某用在运行什么SQL

SQL-35 =====前台正在发出的sql语句

SQL-36 =====当前执行的SQL语句

SQL-37 =====监控CPU的进程对应的SQL语句

SQL-38 =====监控CPU使用2SQL语句

SQL-39 =====Lock情况

SQL-40 =====DBA监控数据库

SQL-41 =====等待wait情况

SQL-42 =====sga情况

SQL-43 =====catched object

SQL-44 =====V$SQLAREA

SQL-45 =====object

SQL-46 =====connection信息

SQL-47 =====些数据库实例在运行

SQL-48 =====是否是

SQL-49 =====表的和相应的表空间

SQL-50 =====索引是否是索引

SQL-51 =====Dual表的用用在没有目标表的Select

SQL-52 =====索引extent的数

SQL-53 =====看系统表空间中的非管理索引

SQL-54 =====system表空间内的索引扩展情况

SQL-55 =====表空间数据文件的

SQL-56 =====换表空间为local

SQL-57 =====在用

SQL-58 =====io在运行的session

SQL-59 =====十条sql

SQL-60 =====删除用户下所有表的语句

SQL-61 =====LOCK

SQL-62 =====IO竞争

SQL-63 =====session在使用

SQL-64 =====WACOS表空间下所有的索引

==========================================================

SQL-1 =====文件

==========================================================

select name from v$controlfile;

==========================================================

SQL-2 =====日志文件

==========================================================

select member from v$logfile;

==========================================================

SQL-3 =====表空间使用情况

==========================================================

select sum(bytes)/(1024*1024) as free_space,tablespace_name from dba_free_space

group by tablespace_name;

==========================================================

SQL-4 =====数据库库对

==========================================================

select owner, object_type, status, count(*) count# from all_objects group by owner,

object_type, status;

==========================================================

SQL-5 =====数据库的

==========================================================

Select version FROM Product_component_version

Where SUBSTR(PRODUCT,1,6)='Oracle';

==========================================================

SQL-6 =====数据库创建日期和归档

==========================================================

Select Created, Log_Mode, Log_Mode From V$Database;

==========================================================

SQL-7 =====捕捉运行SQL

==========================================================

column username format a12

column opname format a16

column progress format a8

select username,sid,opname, round(sofar*100 / totalwork,0) || '%' as progress,

time_remaining,sql_text

from v$session_longops , v$sql

where time_remaining <> 0

and sql_address = address

and sql_hash_value = hash_value

==========================================================

SQL-8 =====数据表的参数信息

==========================================================

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

==========================================================

SQL-9 =====表空间的

==========================================================

select pace_name, round(sum(bytes/(1024*1024)),0) ts_size

from dba_tablespaces t, dba_data_files d where pace_name =

pace_name group by pace_name;

==========================================================

SQL-10 =====表空间关查

==========================================================

SQL>select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0)

total_space from dba_data_files order by tablespace_name;

SQL>select distinct file_name,tablespace_name,AUTOEXTENSIBLE from

dba_data_files;

**表空间使用情况

SQL>select sum(bytes)/(1024*1024) as free_space,tablespace_name from

dba_free_space group by tablespace_name;

SQL>SELECT PACE_NAME, TOTAL, USED,

FREE,(*100)/ "% USED",(*100)/

"% FREE"

FROM $TS_AVAIL A,$TS_USED B,$TS_FREE C

WHERE PACE_NAME=PACE_NAME AND

PACE_NAME=PACE_NAME;

SQL>column tablespace_name format a18;

SQL>column Sum_M format a12;

SQL>column Used_M format a12;

SQL>column Free_M format a12;

SQL>column pto_M format 9.99;

SQL>select pace_name,ceil(sum(/1024/1024))||'M'

Sum_M,ceil(sum(ace/1024/1024))||'M'

Used_M,ceil(sum(ace/1024/1024))||'M' Free_M,

sum(ace)/sum() PTUSED

from (select _id,pace_name,, (-sum(nvl(,0)))

UsedSpace, sum(nvl(,0)) FreeSpace,(sum(nvl(,0))/()) * 100

FreePercentRatio

from _free_space a,_data_files b

where _id(+)=_id group by

_id,pace_name, order by pace_name) s

group by pace_name

order by sum(ace)/sum() desc;

数据库表空间增情况的检查:

SQL>select pace_name,(1-()/)*100 used_percent

From (select tablespace_name,sum(bytes) total from dba_free_space group by

tablespace_name) A,(select tablespace_name,sum(bytes) total from dba_data_files

group by tablespace_name) B where pace_name=pace_name;

SQL>SELECT UPPER(PACE_NAME) "表空间",

_GROOTTE_MB "表空间(M)",

_GROOTTE_MB - _BYTES "使(M)",

TO_CHAR(ROUND((_GROOTTE_MB - _BYTES) /

_GROOTTE_MB * 100, 2), '990.99') "使用", _BYTES "

(M)",

_BYTES "(M)" FROM (SELECT TABLESPACE_NAME,

ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,

ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES

FROM _FREE_SPACE GROUP BY TABLESPACE_NAME) F,

(SELECT PACE_NAME,ROUND(SUM() / (1024

* 1024), 2) TOT_GROOTTE_MB FROM _DATA_FILES DD

GROUP BY PACE_NAME) D WHERE PACE_NAME =

PACE_NAME

ORDER BY 4 DESC;

表空间磁盘情况:

SQL>col tablespace_name format a20;

SQL>select _id file_ID,

pace_name tablespace_name,

Bytes,

(-sum(nvl(,0))) used,

sum(nvl(,0)) free,

sum(nvl(,0))/()*100 Percent

from dba_free_space a,dba_data_files b

where _id=_id

group by pace_name,_id,

order by _id;

数据库对象下扩展与表空间的free扩展值的检查:

SQL>select _name, _extent, pace_name

from all_tables a,(select tablespace_name, max(bytes) as big_chunk

from dba_free_space group by tablespace_name ) f where pace_name =

pace_name and _extent > _chunk

union select _name, _extent, pace_name

from all_indexes a,(select tablespace_name, max(bytes) as big_chunk

from dba_free_space group by tablespace_name ) f where pace_name =

pace_name and _extent > _chunk;

表空间使用情况:

select pace_name "表空间",

100-round((nvl(_free,0)/_alloc)*100,2) "(%)",

round(_alloc/1024/1024,2) "容量(M)",

round(nvl(_free,0)/1024/1024,2) "(M)",

round((_alloc-nvl(_free,0))/1024/1024,2) "使用(M)",

Largest "扩展(M)",to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') "时间"

from (select pace_name,sum() bytes_alloc,

sum(decode(tensible,'YES',es,'NO',)) maxbytes

from dba_data_files f group by tablespace_name) a,

(select pace_name,sum() bytes_free

from dba_free_space f group by tablespace_name) b,

(select round(max()*16/1024,2) Largest, tablespace_name

from $ ff, $ tf,$ ts

where #=# and #=e# and #=#

group by , ) c where pace_name = pace_name and

pace_name = pace_name;

SELECT UPPER(PACE_NAME) "表空间",

_GROOTTE_MB "表空间(M)",

_GROOTTE_MB - _BYTES "使用空间(M)",

TO_CHAR(ROUND((_GROOTTE_MB - _BYTES) /

_GROOTTE_MB * 100,

2),

'990.99') "使用",

_BYTES "空间(M)",

_BYTES "(M)"

FROM (SELECT TABLESPACE_NAME,

ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,

ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES

FROM _FREE_SPACE

GROUP BY TABLESPACE_NAME) F,

(SELECT PACE_NAME,

ROUND(SUM() / (1024 * 1024), 2)

TOT_GROOTTE_MB

FROM _DATA_FILES DD

GROUP BY PACE_NAME) D

WHERE PACE_NAME = PACE_NAME

ORDER BY 4 DESC;

表空间的碎片:

SQL>select tablespace_name,count(tablespace_name) from dba_free_space group by

tablespace_name having count(tablespace_name)>10;

SQL>alter tablespace name coalesce;

SQL>alter table table_name deallocate unused;

SQL>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;

SQL>select * from ts_blocks_v;

SQL>select tablespace_name,sum(bytes),max(bytes),count(block_id) from

dba_free_space group by tablespace_name;

SQL>select 'alter tablespace '||TABLESPACE_NAME||' coalesce;'

from DBA_FREE_SPACE_COALESCED where

PERCENT_EXTENTS_COALESCED<100

or PERCENT_BLOCKS_COALESCED<100;

由于空间碎片是由成,如范围范围尺寸我们

fsfi--free space fragmentation index空间碎片索引值来:

fsfi=100*sqrt(max(extent)/sum(extents))*1/sqrt(sqrt(count(extents)))

rem fsfi value compute

rem

column fsfi format 999,99

select tablespace_name,sqrt(max(blocks)/sum(blocks))*

(100/sqrt(sqrt(count(blocks)))) fsfi

from dba_free_space

group by tablespace_name order by 1;

spool ;

/

spool off;

可以看出,fsfi大可100个理想文件表空间

的增加,fsfi范围尺寸fsfi

如,在某数据库运行,到以下fsfi

tablespace_name fsfi

------------------------------ -------

rbs 74.06

system 100.00

temp 22.82

tools 75.79

users 100.00

user_tools 100.00

ydcx_data 47.34

ydcx_idx 57.19

ydjf_data 33.80

ydjf_idx 75.55

---- 数据库的fsfi可以把它作为一个可比参数。在一着足

空间,fsfi值超30的表空间中,空间的问题。

空间可比参数时,就需碎片整理了

==========================================================

SQL-11 =====

==========================================================

SQL>select segment_name, tablespace_name, ,

(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,

max_extents, CurExtent From dba_rollback_segs r, v$rollstat v

Where t_id = (+) order by segment_name;

==========================================================

SQL-12 =====当前SQL*PLUSsidserial

==========================================================

SQL>select sid, serial#, status from v$session where audsid=userenv('sessionid');

==========================================================

SQL-13 =====当前数据库的

==========================================================

SQL>select userenv('language') from dual;

SQL>select userenv('lang') from dual;

==========================================================

SQL-14 =====SQL

==========================================================

explain planEXPLAIN PLAN检查PLAN_TABLEID=0POSITION

SQL>select decode(nvl(position,-1),-1,'RBO',1,'CBO') from plan_table where id=0;

==========================================================

SQL-15 =====看系统当前最SCN

==========================================================

SQL>select max(ktuxescnw * power(2,32) + ktuxescnb) from x$ktuxe;

==========================================================

SQL-16 =====TRACE文件

==========================================================

ORACLE中查TRACE文件的:

select u_ || '/' || || '_ora_' ||

v$ || nvl2(v$d, '_' || v$d, null ) || '.trc'"Trace

File" from v$parameter u_dump cross join v$parameter instance cross join v$process

join v$session on v$ = v$ where u_ =

'user_dump_dest' and

= 'instance_name' and

v$=sys_context('userenv','sessionid');

==========================================================

SQL-17 =====端登陆IP

==========================================================

SQL>select sys_context('userenv','ip_address') from dual;

==========================================================

SQL-18 =====创建IP地址

==========================================================

SQL>create or replace trigger on_logon_trigger

after logon on database

begin

dbms_application__client_info(sys_context('userenv', 'ip_address'));

end;

==========================================================

SQL-19 =====数据库当前日期

==========================================================

SQL> select to_char(sysdate,'yyyy-mm-dd,hh24:mi:ss') from dual;

==========================================================

SQL-20 =====Disk ReadSQL

==========================================================

SQL>select sql_text from (select * from v$sqlarea order by disk_reads)

where rownum<=5;

==========================================================

SQL-21 =====十条sql

==========================================================

SELECT * FROM (SELECT PARSING_USER_ID

EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,

sql_text FROM v$sqlarea ORDER BY disk_reads DESC)

WHERE ROWNUM<10 ;

==========================================================

SQL-22 =====等待时间5个系统等待事

==========================================================

SQL>select * from (select * from v$system_event where event not like 'SQL%' order

by total_waits desc) where rownum<=5;

==========================================================

SQL-23 =====检查Oracle状态

==========================================================

SQL>select

segment_name,owner,tablespace_name,initial_extent,next_extent,dba_rollback_segs.s

tatus from dba_rollback_segs,v$datafile where file_id=file#;

==========================================================

SQL-24 =====检查Oracle扩展信息

==========================================================

col name format a10

set linesize 140

select substr(name,1,40)

name,extents,rssize,optsize,aveactive,extends,wraps,shrinks,hwmsize

from v$rollname rn,v$rollstat rs where (=);

extents:中的

Rssize:以字尺寸

optsize:为optimal参数

Aveactive:从回中删除释放以字平均空间的

Extends:系统增加的的次数。

Shrinks:系统从回收缩的次数。每次

时,系统可能会这个除一多个盘

Hwmsize:尺寸上限尺寸

(如果平均尺寸OPTIMAL说明OPTIMAL设置

如果次数或收缩次数么需要提高OPTIMAL)

==========================================================

SQL-25 =====Oracle

==========================================================

select

,,#,it,ME,,_time,

st_call_et/3600 LAST_HOUR,,

'orakill '||sid||' '||spid HOST_COMMAND,

'alter system kill session '''||||','||#||'''' SQL_COMMAND

from v$session A,V$PROCESS B where = AND SID>6;

==========================================================

SQL-26 =====

==========================================================

SQL>SELECT name, value FROM v$sysstat WHERE name IN ('sorts (memory)',

'sorts (disk)');

==========================================================

SQL-27 =====数据库对

==========================================================

select owner, object_type, status, count(*) count# from all_objects group by owner,

object_type, status;

==========================================================

SQL-28 =====未提

==========================================================

select * from v$locked_object;

select * from v$transaction;

==========================================================

SQL-29 =====object些进程

==========================================================

select ,,# serial_num,me user_name,

object_type, os_user_name,,

object_name,decode(sign(48 - command),1,

to_char(command), 'Action Code #' || to_char(command) ) action,

m oracle_process,al terminal,m program,

session_status from v$session s, v$access a, v$process p where =

and = 'USER' and = and ='SUBSCRIBER_ATTR'order by

me, ;

==========================================================

SQL-30 =====

==========================================================

SQL>col name format a10

SQL>set linesize 100

SQL>select rownum, _rollback_t_name Name, v$s

Extents, v$ Size_in_Bytes, v$ XActs, v$ Gets,

v$ Waits, v$ Writes, _rollback_ status

from v$rollstat, _rollback_segs, v$rollname where v$(+) =

_rollback_t_name and v$ (+) = v$ order

by rownum;

==========================================================

SQL-31 =====耗资源的进程(top session)

==========================================================

select name schema_name,decode(sign(48 - command), 1,

to_char(command), 'Action Code #' || to_char(command) ) action,status

session_status, os_user_name,,,#

serial_num,nvl(me,'[Oracle process]') user_name,al

terminal,m program, criteria_value from v$sesstat st,v$session

s,v$process p where = and tic# = to_number('38') and

('ALL'='ALL' or ='ALL') and = order by desc,

asc,me asc, asc;

==========================================================

SQL-32 =====PID应的语句

==========================================================

SELECT me,

e,m,,#,,,_text

FROM v$session a,v$process b,v$sqltext c WHERE =spid

AND = AND _address=s(+) ORDER BY ;

==========================================================

SQL-33 =====监控当前数据库在运行什么SQL语句

==========================================================

SQL>SELECT osuser, username, sql_text from v$session a, v$sqltext b

where _address =s order by address, piece;

==========================================================

SQL-34 =====监控数据库某用在运行什么SQL

==========================================================

SQL>SELECT SQL_TEXT FROM V$SQLTEXT T, V$SESSION S WHERE

S=_ADDRESS

AND _VALUE=_HASH_VALUE AND E='XXXXX'

OR USERNAME='WACOS';

==========================================================

SQL-35 =====前台正在发出的sql语句

==========================================================

SQL> select user_name,sql_text from v$open_cursor where sid in(select sid from

(select sid,serial# from v$session where status='ACTIVE'));

==========================================================

SQL-36 =====当前执行的SQL语句

==========================================================

**1 SQL执行地址***

SQL> select program ,sql_address from v$session where paddr in (select addr

from v$process where spid=3556);

PROGRAM SQL_ADDRESS

------------------------------------------------ ----------------

sqlplus@ctc20 (TNS V1-V3) 000000038FCB1A90

**2 SQL执行的内存地址,查SQL语句***

SQL> select sql_text from v$sqlarea where address='000000038FCB1A90';

==========================================================

SQL-37 =====监控CPU的进程对应的SQL语句

==========================================================

set line 240

set verify off

column sid format 999

column pid format 999

column S_# format 999

column username format A9 heading "ORA User"

column program format a29

column SQL format a60

COLUMN OSname format a9 Heading "OS User"

SQL>SELECT pid, sid, spid,me username,

osname,# S_#,al,m

program,ound,,RTRIM(SUBSTR(_text, 1, 80)) SQL

FROM v$process P, v$session S,v$sqlarea A WHERE = AND

_address = s (+) AND LIKE '%&1%';

Enter value for 1: PID(这CPU的进程对应的PID

set termout off

spool

SQL>SELECT '++'||me

username,RTRIM(REPLACE(_text,chr(10),''))||';'

FROM v$process P, v$session S,v$sqlarea A WHERE = AND

_address = s (+) AND LIKE '%&&1%';

Enter value for 1: PID(这CPU的进程对应的PID

spool off(执行)

==========================================================

SQL-38 =====监控CPU使用2SQL语句

==========================================================

执行:toptop获得CPU的进程的pid

SQL>select sql_text,spid,v$m,process from

v$sqlarea,v$session,v$process where v$s=v$_address and

v$_value=v$_hash_value

and v$=v$ and v$ in (pid);

==========================================================

SQL-39 =====Lock情况

==========================================================

SQL>select /*+ RULE */ os_user_name, me user_name,

decode(,'RW','Row wait enqueue lock','TM','DML enqueue lock',

'TX','Transaction enqueue lock','UL','User supplied lock') lock_type,

_name object,decode(, 1, null, 2,'Row Share', 3,'Row

Exclusive',4,'Share',5,'Share Row Exclusive',6,'Exclusive',null) lock_mode

,,,# serial_num,1,2

from _objects o,(select

,me,,,,#,1,2 from v$session s,v$lock l

where =) ls

where _id=1 and <>'SYS' order by ,

_name;

SQL>select sys.v_$,sys.v_$e,v$,

sys.v_$#,

decode(v$,'MR','Media Recovery','RT','Redo

Thread','UN','User Name','TX', User 'Transaction','TM','DML','UL','PL/SQL

Lock','DX','Distributed Xaction','CF','Control File', 'IS','Instance State','FS','File

Set','IR','Instance Recovery', 'ST','Disk Space Transaction','TS','Temp

Segment','IV','Library Cache Invalida-tion','LS','Log Start or Switch','RW','Row

Wait','SQ','Sequence Number','TE','Extend Table','TT','Temp Table','Unknown')

LockType,

rtrim(object_type)||' '||rtrim(owner)||'.'|| object_name object_name,

decode(lmode, 0, 'None',1, 'Null',2, 'Row-S',3, 'Row-X',4, 'Share', 5,

'S/Row-X',6, 'Exclusive','Unknown') LockMode,decode(request, 0, 'None',1, 'Null',2,

'Row-S',3, 'Row-X', 4, 'Share',5, 'S/Row-X', 6, 'Exclusive', 'Unknown') RequestMode,

ctime, block b

from v$lock, all_objects, sys.v_$session

where v$ > 6 and sys.v_$ = v$ and v$1 =

all__id;

==========================================================

SQL-40 =====DBA监控数据库

==========================================================

col owner for a12

col object_name for a16

select ,_name,n_id,_mode

from v$locked_object l, dba_objects b

where _id=_id;

SQL>select me,,#,_time

from v$locked_object t1,v$session t2

where n_id= order by _time;

SQL>Select sql_address from v$session where sid=;

SQL>Select * from v$sqltext where address=;

SQL>select COMMAND_TYPE,PIECE,sql_text from v$sqltext where

address=(select sql_address from v$session a where sid=18);

SQL>select object_id from v$locked_object;

SQL>select object_name,object_type from dba_objects where object_id='';

select object_id,session_id,locked_mode from v$locked_object;

select me,,#,_time from v$locked_object

t1,v$session t2 where n_id= order by _time;

**如果有期出现的一没有释放我们可以下面SQL语句

期没有释放***

SQL>alter system kill session 'sid,serial#';

==========================================================

SQL-41 =====等待wait情况

==========================================================

SQL>SELECT v$,v$ count, SUM(v$)

sum_value FROM v$waitstat,v$sysstat WHERE v$ IN('db block

gets','consistent gets') group by v$,v$;

==========================================================

SQL-42 =====sga情况

==========================================================

SQL>SELECT NAME, BYTES FROM SYS.V_$SGASTAT ORDER BY NAME

ASC;

==========================================================

SQL-43 =====catched object

==========================================================

SQL>SELECT owner,name,db_link,namespace,type,sharable_mem,loads,

executions,locks,pins,kept FROM v$db_object_cache;

==========================================================

SQL-44 =====V$SQLAREA

==========================================================

SQL>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_C

ALLS,DISK_READS,BUFFER_GETS,ROWS_PROCESSED FROM

V$SQLAREA;

==========================================================

SQL-45 =====object

==========================================================

select decode(#,1,'INDEX',2,'TABLE',3,'CLUSTER',4,'VIEW',5,'SYNONYM',6,

'SEQUENCE','OTHER') object_type , count(*) quantity from $ o where

# > 1 group by

decode(#,1,'INDEX',2,'TABLE',3,'CLUSTER' ,4,'VIEW',5,'SYNONYM',6,'SE

QUENCE','OTHER') union select 'COLUMN', count(*) from $ union select

'DB LINK' , count(*) from all_objects;

==========================================================

SQL-46 =====connection信息

==========================================================

1些用户连

select os_user_name,decode(sign(48 - command),1,to_char(command),

'Action Code #' || to_char(command))action,m oracle_process,

status session_status,al terminal,m program,

me user_name,_table_sequence activity_meter,''query,

0 memory,0 max_memory,0 cpu_usage,,# serial_num

from v$session s,v$process p where = and = 'USER'

order by me, ;

2)根对应资源情况

select ,,,tic#

from v$statname n,v$sesstat v where =18 and tic# = tic# order by

, tic#;

3)根sid对应接正在运行的sql

select /*+ PUSH_SUBQ */ command_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=8);

4)根pidsql语句:

select sql_text from v$sql

where address in

(select sql_address from v$session

where sid in

(select sid from v$session where paddr in (select addr from v$process where

spid=&pid)));

==========================================================

SQL-47 =====些数据库实例在运行

==========================================================

select inst_name from v$active_instances;

==========================================================

SQL-48 =====是否是

==========================================================

select TABLE_NAME,PARTITIONED from user_tables where

TABLE_NAME='LOCALUSAGE';

TABLE_NAME PAR

------------------------------ --- ---------

LOCALUSAGE YES

==========================================================

SQL-49 =====表的和相应的表空间

==========================================================

select TABLE_NAME, PARTITION_NAME,TABLESPACE_NAME from

user_tab_partitions where table_name like %USAGE%;

==========================================================

SQL-50 =====索引是否是索引

==========================================================

**1 是否是索引****

SELECT INDEX_NAME, TABLE_NAME, STATUS, PARTITIONED FROM

USER_INDEXES WHERE TABLE_NAME LIKE '%USAGE';

**2 如果返回PATITIONEDYES执行如语句来索引

类型****

SELECT index_name,table_name,locality FROM user_part_indexes;

==========================================================

SQL-51 =====Dual表的用用在没有目标表的Select

==========================================================

**看系统时间****

select to_char(sysdate,'yy-mm-dd hh24:mi:ss') shijian from dual;

==========================================================

SQL-52 =====索引extent的数

==========================================================

select segment_name,count(*) from dba_extents

where segment_type='INDEX' and owner='SCOTT' group by segment_name;

==========================================================

SQL-53 =====看系统表空间中的非管理索引

==========================================================

SQL>select count(*) from dba_indexes where tablespace_name='SYSTEM' and

owner NOT IN('SYS','SYSTEM');

==========================================================

SQL-54 =====system表空间内的索引扩展情况

==========================================================

SELECT SUBSTR(segment_name,1,20) "SEGMENT NAME",bytes, COUNT(bytes)

FROM dba_extents WHERE segment_name IN( SELECT index_name FROM

dba_indexes

WHERE tablespace_name = 'SYSTEM') GROUP BY segment_name,bytes ORDER

BY segment_name;

==========================================================

SQL-55 =====表空间数据文件的

==========================================================

SQL>Select name,phyrds,phywrts,avgiotim,miniotim,maxiowtm,maxiortm from

v$filestat,v$datafile where v$#=v$#;

SQL>Select

name,,rd,s,wrt ,m,im from v$filestat f,

v$datafile fs where # = # order by ;

(注意:如果phyblkrdphyrds这个表空间中存在扫描

的表,些表索引SQL语句)

==========================================================

SQL-56 =====换表空间为local

==========================================================

SQL> exec _space_pace_migrate_to_local('TBS_TEST') ;

==========================================================

SQL-57 =====在用

==========================================================

SELECT username,sid,serial#,sql_address,machine,program,tablespace,segtype,

contents FROM v$session se,v$sort_usage su WHERE =n_addr;

==========================================================

SQL-58 =====io在运行的session

==========================================================

SELECT ,#,,me,,al,m,

,_address,,st.p1text,al_reads,_changes

FROM v$session se,v$session_wait st,v$sess_io si,v$process pr WHERE

= AND = AND = AND >6 AND

_time=0 AND NOT LIKE '%SQL%' ORDER BY physical_reads

DESC;

==========================================================

SQL-59 =====十条sql

==========================================================

SELECT * FROM(SELECT PARSING_USER_ID

FROM EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,sql_text

v$sqlarea ORDER BY disk_reads DESC) WHERE ROWNUM<10;

==========================================================

SQL-60 =====删除用户下所有表的语句

==========================================================

select 'drop table '||table_name||' cascade constraints;' from user_tables;

==========================================================

SQL-61 =====LOCK

==========================================================

set linesize 132 pagesize 66

break on Kill on username on terminal

column Kill heading 'Kill String' format a13

column res heading 'Resource Type' format 999

column id1 format 9999990

column id2 format 9999990

column lmode beading 'Lock Held' format a20

column request heading 'Lock Requested' format a20

column serial# format 99999

column username format a10 heading "Username"

column terminal heading Term format a6

column tab format a35 heading "table Name"

column owner format a9

column Address format a18

select nvl(ME,'Internal') username,

nvl(AL,'None') terminal,

||','||# Kill,

||','||substr(,1,20) tab,

decode(, 1,'No Lock',

2,'Row Share',

3,'Row Exclusive',

4,'Share',

5,'Share Row Exclusive',

6,'Exclusive',null) lmode,

decode(T,1,'No Lock',

2,'Row Share',

3,'Row Exclusive',

4,'Share',

5,'Share Row Exclusive',

6,'Exclusive',null) request

from V$LOCK L,

V$SESSION S,

$ U1,

$ T1

where =

and # = decode(2,0,1,2)

and #= #

and != 'BACKGROUND'

order by 1,2,5;

--alter system kill session ' , ';

column username format A15

column sid format 9990 heading SID

column type format A4

column lmode format 990 heading 'HELD'

column request format 990 heading 'REQ'

column id1 format 9999990

column id2 format 9999990

break on id1 skip 1 dup

spool

select me,

,

,

DECODE(,0,'None',

1,'Null',

2,'Row Share',

3,'Row Excl.',

4,'Share',

5,'S/Row Excl.',

6,'Exclusive',

lmode,ltrim(to_char(lmode,'990'))) lmode,

DECODE(t,0,'None',

1,'Null',

2,'Row Share',

3,'Row Excl.',

4,'Share',

5,'S/Row Excl.',

6,'Exclusive',

request,ltrim(to_char(t,'990'))) request,

1,

2

from v$session sn,

v$lock m

where ( = and t!= 0)

or ( = and

t = 0 and lmode != 4 and

(id1 ,id2) in (select 1,

2

from v$lock s

where request != 0 and 1 = 1 and 2 = 2)

)

order by id1,id2,t;

spool off

clear breaks

==========================================================

SQL-62 =====IO竞争

==========================================================

col 文件 format a35

select , ,s ,

(m/decode(,0,-1,)) ,

(im/decode(s,0,-1,s)) 时间

from v$datafile df, v$filestat fs

where #=# order by

/

文件 次数 次数

时间 时间

-------------------------------------------- ---------- ---------- ---------- ----------

C: 885

883 0 0

C: 885

883 0 0

C:ORACLEORADATAORADBOEM_REPOSITORY.ORA 885

883 0 0

C: 925

22306 0 0

C: 50804

155025 0 0

C: 887

894 0 0

C: 886

892 0 0

C: 885

883 0 0

8行。

中:ORADB为数据库,因为中数据库使默认,没有进行过

所以system表空间做操作,导致system表空间在的数据文件

的次数

说明system表空间做系统关的操作,应

的表空间。

==========================================================

SQL-63 =====session在使用

==========================================================

col format a10

col SID format 9990

col format a10

col 操作程 format a80

col status format a6 trunc

SELECT , , #, me , , _get,

_io, _ublk, , substr(m, 1, 78) 操作程

FROM sys.v_$session s,sys.v_$transaction t,sys.v_$rollname r

WHERE = and = ORDER BY _get,_io;

==========================================================

SQL-64 =====WACOS表空间下所有的索引

==========================================================

SQL>select 'analyze index '||segment_name||' validate structure;' from dba_segments

where tablespace_name='WACOS'and segment_type='INDEX';

==========================================================

SQL-65 =====数据文件的hwm(可以resize最小空间)和文件

==========================================================

SQL>SELECT _name,_id,num1 totle_space,num3

free_space,num1-num3 "USED_SPACE(HWM)",nvl(num2,0)

data_space,num1-num3-nvl(num2,0) file_head

FROM (SELECT file_name,file_id,SUM(bytes) num1 FROM

Dba_Data_Files GROUP BY file_name,file_id) v1,

(SELECT file_id,SUM(bytes) num2 FROM dba_extents GROUP BY

file_id) v2,

(SELECT file_id,SUM(BYTES) num3 FROM DBA_FREE_SPACE

GROUP BY file_id) v3

WHERE _id=_id(+) AND _id=_id(+);

==========================================================

SQL-66 =====数据文件

==========================================================

SQL>SELECT _name,_id,

num1 totle_space,

num3 free_space,

num1-num3 Used_space,

nvl(num2,0) data_space,

num1-num3-nvl(num2,0) file_head

FROM

(SELECT file_name,file_id,SUM(bytes) num1 FROM Dba_Data_Files GROUP BY

file_name,file_id) v1,

(SELECT file_id,SUM(bytes) num2 FROM dba_extents GROUP BY file_id) v2,

(SELECT file_id,SUM(BYTES) num3 FROM DBA_FREE_SPACE GROUP BY

file_id) v3

WHERE _id=_id(+)

AND _id=_id(+);

(运行以上我们可以信息

Totle_pace:该数据文件的

Free_space:该数据文件的于大

Used_space:该数据文件的用空间,

Data_space:该数据文件中数据用空间,数据空间,

File_Head:该数据文件用空间,)

数据库表空间增情况的检查:

SQL>select pace_name,(1-()/)*100 used_percent

From (select tablespace_name,sum(bytes) total from dba_free_space group by

tablespace_name) A,(select tablespace_name,sum(bytes) total from dba_data_files

group by tablespace_name) B where pace_name=pace_name;

SQL>SELECT UPPER(PACE_NAME) "表空间",

_GROOTTE_MB "表空间(M)",

_GROOTTE_MB - _BYTES "使(M)",

TO_CHAR(ROUND((_GROOTTE_MB - _BYTES) /

_GROOTTE_MB * 100, 2), '990.99') "使用", _BYTES "

(M)",

_BYTES "(M)" FROM (SELECT TABLESPACE_NAME,

ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,

ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES

FROM _FREE_SPACE GROUP BY TABLESPACE_NAME) F,

(SELECT PACE_NAME,ROUND(SUM() / (1024

* 1024), 2) TOT_GROOTTE_MB FROM _DATA_FILES DD

GROUP BY PACE_NAME) D WHERE PACE_NAME =

PACE_NAME

ORDER BY 4 DESC;

表空间磁盘情况:

SQL>col tablespace_name format a20;

SQL>select _id file_ID,

pace_name tablespace_name,

Bytes,

(-sum(nvl(,0))) used,

sum(nvl(,0)) free,

sum(nvl(,0))/()*100 Percent

from dba_free_space a,dba_data_files b

where _id=_id

group by pace_name,_id,

order by _id;

数据库对象下扩展与表空间的free扩展值的检查:

SQL>select _name, _extent, pace_name

from all_tables a,(select tablespace_name, max(bytes) as big_chunk

from dba_free_space group by tablespace_name ) f where pace_name =

pace_name and _extent > _chunk

union select _name, _extent, pace_name

from all_indexes a,(select tablespace_name, max(bytes) as big_chunk

from dba_free_space group by tablespace_name ) f where pace_name =

pace_name and _extent > _chunk;

Disk ReadSQL语句

SQL>select sql_text from (select * from v$sqlarea order by disk_reads)

where rownum<=5;

十条sql:

SQL>SELECT * FROM (SELECT PARSING_USER_ID

EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,

sql_text FROM v$sqlarea ORDER BY disk_reads DESC)

WHERE ROWNUM<10 ;

等待时间5个系统等待事件的

SQL>select * from (select * from v$system_event where event not like 'SQL%' order

by total_waits desc) where rownum<=5;

当前等待事件的会:

SQL>col username format a10

SQL>set line 120

SQL>col EVENT format a30

SQL>select

,me,,_Waits,_Waited,e_Wait

from v$session S,v$session_event SE where me is not null and =

and ='ACTIVE' and not like '%SQL*Net%';

SQL>select sid, event, p1, p2, p3, wait_time, seconds_in_wait, state from

v$session_wait where event not like '%message%' and event not like 'SQL*Net%' and

event not like '%timer%' and event != 'wakeup time manager';

所连的会有关的当前等待事件:

SQL>select

,me,,_Time,,s_In_Wait

SEC_IN_WAIT

from v$session S,v$session_wait SW where me is not null and

=

and not like '%SQL*Net%' order by _Time Desc;

Oracle状态的检查:

SQL>select

segment_name,owner,tablespace_name,initial_extent,next_extent,dba_rollback_segs.s

tatus from dba_rollback_segs,v$datafile where file_id=file#;

Oracle扩展信息的检查:

SQL>col name format a10

SQL>set linesize 140

SQL>select substr(name,1,40)

name,extents,rssize,optsize,aveactive,extends,wraps,shrinks,hwmsize

from v$rollname rn,v$rollstat rs where (=);

extents:中的

Rssize:以字尺寸

optsize:为optimal参数

Aveactive:从回中删除释放以字平均空间的

Extends:系统增加的的次数。

Shrinks:系统从回收缩的次数。每次

时,系统可能会这个除一多个盘

Hwmsize:尺寸上限尺寸

(如果平均尺寸OPTIMAL说明OPTIMAL设置

如果次数或收缩次数么需要提高OPTIMAL)

的使用情况,在使用资源:

SQL>select me, from v$transaction t,v$rollstat r,

v$rollname u,v$session s where = and

= and = order by me;

shared_server什么:

SQL>SELECT me,e,m,,

#,,,_text

FROM v$session a,v$process b,v$sqltext c

WHERE =13161 AND =

AND _address=s(+) ORDER BY ;

数据库共享池能检查:

SQL>Select namespace,gets,gethitratio,pins,pinhitratio,reloads,

Invalidations from v$librarycache where namespace in

('SQLAREA','TABLE/PROCEDURE','BODY','TRIGGER');

检查数据重比率:

SQL>select sum(reloads)/sum(pins)*100 "reload ratio" from

v$librarycache;

检查数据字典:

SQL>select 1-sum(getmisses)/sum(gets) "data dictionary hit

ratio" from v$rowcache;

(library cache, gethitratiopinhitratio应该大于90%,数据重

,reload ratio应该1%,数据字典,data dictionary hit ratio应该

85%)

检查共享内存的剩余情况:

SQL>select request_misses, request_failures from v$shared_pool_reserved;

(共享内存的剩余情况, request_misses request_failures应该0)

数据速缓冲区能检查:

SQL>select /(+) "db buffer cache hit

ratio" from v$sysstat p,v$sysstat b,v$sysstat c where

='physical reads' and ='db block gets' and

='consistent gets';

检查buffer pool HIT_RATIO执行

SQL>select name, (physical_reads/(db_block_gets+consistent_gets))

"MISS_HIT_RATIO" FROM v$buffer_pool_statistics WHERE (db_block_gets+

consistent_gets)> 0;

(db buffer cache hit ratio 90%,buffer pool

MISS_HIT_RATIO 应该10%)

数据库能检查:

检查Ratio执行

SQL>select sum(waits)* 100 /sum(gets) "Ratio", sum(waits)

"Waits", sum(gets) "Gets" from v$rollstat;

检查count/value执行:

SQL>select class,count from v$waitstat where class like '%undo%';

SQL>select value from v$sysstat where name='consistent gets';

(value)

检查average_wait执行:

SQL>select event,total_waits,time_waited,average_wait from v$system_event

where event like '%undo%';

检查RBS header get ratio执行:

SQL>select ,,, decode(,0,1,1- /)"RBS

header get ratio" from v$rollstat s,v$rollname n where =;

(Ratio应该1%, count/value应该0.01%,average_wait0

越好,RBS header get ratio应该大于95%)

:

SQL>select

,,#,it,ME,,_time,

st_call_et/3600 LAST_HOUR,,

'orakill '||sid||' '||spid HOST_COMMAND,

'alter system kill session '''||||','||#||'''' SQL_COMMAND

from v$session A,V$PROCESS B where = AND SID>6;

:

SQL>SELECT name, value FROM v$sysstat WHERE name IN ('sorts (memory)',

'sorts (disk)');

数据表的参数信息:

SQL>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;

2)根对应资源情况

select ,,,tic#

from v$statname n,v$sesstat v where =18 and tic# = tic# order by

, tic#;

3)根sid对应接正在运行的sql

select /*+ PUSH_SUBQ */ command_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=8);

pidsql语句:

SQL>select sql_text from v$sql

where address in

(select sql_address from v$session

where sid in

(select sid from v$session where paddr in (select addr from v$process where

spid=&pid)));

oracle数据库能监控的SQL

监控等待

SQL>select event,sum(decode(wait_Time,0,0,1))

"Prev",sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot" from v$session_Wait

group by event order by 4;

用情况

SQL>select name, waits, gets, waits/gets "Ratio" from v$rollstat a, v$rollname b

where = ;

监控表空间的 I/O

SQL>select pace_name name,_name "file", pyr,

rd pbr,s pyw, wrt pbw from v$filestat f, dba_data_files df

where # = _id

order by pace_name;

监控文件系统 I/O

SQL>select substr(#,1,2) "#", substr(,1,30) "Name",

,,,s from v$datafile a, v$filestat b

where # = #;

在某户下有的索引

SQL>select user__name, user__name,uniqueness,

column_name from user_indexes where user_ind_columns,

user_ind__name = user__name

and user_ind__name = user__name

order by user__type, user__name,

user__name, column_position;

监控 SGA

SQL>select + "logical_reads", "phys_reads",

round(100 * ((+)-) / (+)) "BUFFER HIT RATIO"

from v$sysstat a, v$sysstat b, v$sysstat c where tic# = 38 and tic# = 39

and tic# = 40;

监控 SGA 字典缓冲区

SQL>select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 "miss

ratio",(1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Hit ratio" from

v$rowcache where gets+getmisses <>0 group by parameter, gets, getmisses;

监控 SGA 共享缓,应该1%

SQL>select sum(pins) "Total Pins", sum(reloads) "Total Reloads",

sum(reloads)/sum(pins) *100 libcache from v$librarycache;

SQL>select sum(pinhits-reloads)/sum(pins) "hit radio",sum(reloads)/sum(pins)

"reload percent" from v$librarycache;

示所有数据库对和大

SQL>select count(name) num_instances ,type ,sum(source_size)

source_size,sum(parsed_size) parsed_size ,sum(code_size) code_size ,sum(error_size)

error_size,sum(source_size) +sum(parsed_size) +sum(code_size) +sum(error_size)

size_required from dba_object_size group by type order by 2;

监控 SGA 中重做日志,应该1%

SQL>SELECT name, gets, misses, immediate_gets, immediate_misses,

Decode(gets,0,0,misses/gets*100) ratio1,

Decode(immediate_gets+immediate_misses,0,0,

immediate_misses/(immediate_gets+immediate_misses)*100) ratio2

FROM v$latch WHERE name IN ('redo allocation', 'redo copy');

监控内存和硬盘比率使 .10,增加 sort_area_size

SQL>SELECT name, value FROM v$sysstat WHERE name IN ('sorts (memory)',

'sorts (disk)');

监控当前数据库在运行什么SQL语句

SQL>SELECT osuser, username, sql_text from v$session a, v$sqltext b

where _address =s order by address, piece;

监控字典缓冲区

SQL>SELECT (SUM(PINS - RELOADS)) / SUM(PINS) "LIB CACHE" FROM

V$LIBRARYCACHE;

SQL>SELECT (SUM(GETS - GETMISSES - USAGE - FIXED)) / SUM(GETS)

"ROW CACHE" FROM V$ROWCACHE;

SQL>SELECT SUM(PINS) "EXECUTIONS", SUM(RELOADS) "CACHE MISSES

WHILE EXECUTING" FROM V$LIBRARYCACHE;(,比率

1%,0%)

SQL>SELECT SUM(GETS) "DICTIONARY GETS",SUM(GETMISSES)

"DICTIONARY CACHE GET MISSES" FROM V$ROWCACHE;

ORACLE

SQL>select * from $ where name='NLS_CHARACTERSET';

监控 MTS

SQL>select busy/(busy+idle) "shared servers busy" from v$dispatcher;

(大于0.5时,参数)

SQL>select sum(wait)/sum(totalq) "dispatcher waits" from v$queue where

type='dispatcher';

SQL>select count(*) from v$dispatcher;

SQL>select servers_highwater from v$mts;

(servers_highwatermts_max_servers时,参数)

碎片

SQL>select tablespace_name,count(tablespace_name) from dba_free_space group by

tablespace_name having count(tablespace_name)>10;

SQL>alter tablespace name coalesce;

SQL>alter table name deallocate unused;

SQL>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;

SQL>select tablespace_name,sum(bytes),max(bytes),count(block_id) from

dba_free_space group by tablespace_name;

看碎片的表

SQL>SELECT segment_name table_name,COUNT(*) extents

FROM dba_segments WHERE owner NOT IN ('SYS', 'SYSTEM') GROUP BY

segment_name HAVING COUNT(*)=(SELECT MAX(COUNT(*)) FROM

dba_segments GROUP BY segment_name);

17. 表、索引的存情况检查

SQL>select segment_name,sum(bytes),count(*) ext_quan from dba_extents where

tablespace_name='&tablespace_name' and segment_type='TABLE' group by

tablespace_name,segment_name;

SQL>select segment_name,count(*) from dba_extents where segment_type='INDEX'

and owner='&owner' group by segment_name;

18使用CPU的用session

SQL>select ,spid,status,substr(m,1,40)

prog,al,osuser,value/60/100 value from v$session a,v$process b,v$sesstat c

where tic#=12 and = and = order by value desc;

(12cpu used by this session)

表空间

A 说明

这是用的一可以出数据库中有表空间的状态如表空

间的使用空间、使用的空间数及现在表空间的是多

B原文:

SELECT upper(pace_name) "表空间",

_grootte_Mb "表空间(M)",

_grootte_Mb - _bytes "使用空间(M)",

to_char(round((_grootte_Mb - _bytes) / _grootte_Mb *

100,2),'990.99') "使用",

_bytes "空间(M)",

_bytes "(M)"

FROM

(SELECT tablespace_name,

round(SUM(bytes)/(1024*1024),2) total_bytes,

round(MAX(bytes)/(1024*1024),2) max_bytes

FROM _free_space

GROUP BY tablespace_name) f,

(SELECT pace_name, round(SUM()/(1024*1024),2)

Tot_grootte_Mb

FROM _data_files dd

GROUP BY pace_name) d

WHERE pace_name = pace_name

ORDER BY 4 DESC;

扩展

A 说明

ORACLE对一个段比如表索引扩展时,表空间中剩余

空间是多少于这剩余空间中的块是否够表索引NEXT”值

所以有时一表空间剩余G的空空间,在使用时ORACLE是提

表或索引扩展是由于这一点,说明空间的碎片太多了这个

本是扩展的一些信息

B原文:

SELECT segment_name,

segment_type,

owner,

pace_name "tablespacename",

initial_extent/1024 "inital_extent(K)",

next_extent/1024 "next_extent(K)",

pct_increase,

/1024 "tablespace max free space(K)",

_bytes/1024 "tablespace total free space(K)"

FROM dba_segments a,

(SELECT tablespace_name,MAX(bytes) bytes,SUM(bytes) sum_bytes

FROM dba_free_space GROUP BY tablespace_name) b

WHERE pace_name=pace_name

AND next_extent>

ORDER BY 4,3,1;

看段(索引)使用空间的

A 说明

有时知道表或一索引多少M的空间,这个满足

的,<>中的内换一可以了

B原文:

SELECT owner,

segment_name,

SUM(bytes)/1024/1024

FROM dba_segments

WHERE owner=

And segment_name=

GROUP BY owner,segment_name

ORDER BY 3 DESC;

数据库中的表

A 说明

语句的,各式,不过这个是最实用的,不

用一DBA及过的内知道

session定了到了这个

B原文:

SELECT ,

_NAME,

,

T,

,

N_ID,

_USERNAME,

_USER_NAME,

S,

_MODE,

E,

,

,

,

#,

M

FROM ALL_OBJECTS A,

V$LOCKED_OBJECT B,

_$SESSION C

WHERE ( _ID = _ID )

AND (S = S )

-- AND

ORDER BY 1,2;

处理过程

A 说明

实际过程中新编过程是处于等待状态

可以这个过程的那个sid注意

v$access这个视图来就一些

B原文:

SELECT * FROM V$ACCESS WHERE owner=owner> And

object=;


本文发布于:2023-11-27,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:当前脚本发生错误

发布评论

评论列表(有0条评论)
    福州电脑网_福州电脑维修_福州电脑之家_福州iThome

    福州电脑网_福州电脑维修_福州电脑之家_福州iThome

    福州电脑维修网(fzithome.com)专业的电脑维修,笔记本维修,上门维修各种电脑,笔记本,平板等,快速上门.电脑知识频道内容覆盖:计算机资讯,电脑基础应用知识,各种电脑故障维修学习,电脑外设产品维修维护,病毒,软件,硬件,常识.