1、查看存储过程创建脚本
select TEXT from dba_source where owner= 'XXX' and type = 'PROC'
注:owner是指用户名,type可以查看类型、比如视图、建表等。
2、查看表的存储大小
select segment_name, bytes/1024/1024
from user_segments
where segment_type = 'TABLE'
order by 2 desc
3、查看索引信息
select
'select indexdef('||a.id||',1) union all'
from
sysobjects a,sysindexes b,dba_indexes c
where
a.id=b.id and b.flag=0
and a.name=c.index_name
and c.owner='XXX';
4、查看对应的表的索引信息
select
a.name ,
c.table_name ,
c.tablespace_name,
d.column_name
from
sysobjects a ,
sysindexes b ,
dba_indexes c,
user_ind_columns d
where
a.id =b.id
and b.flag =0
and a.name =c.index_name
and c.owner ='XXX'
and a.name =d.index_name
and a.subtype$='INDEX';
5、查看锁
查询表在被使用的SESS_ID
SELECT
cast(rowid as varbinary) >> 58 ep_n,*
FROM V$SESSIONS
WHERE
STATE <>'IDLE'
AND SQL_TEXT IS NOT NULL;
查询结果中SQL_TEXT是SQL语句,可以看都在执行什么,
再用sp_close_session($SESS_ID); --关掉session号为$SESS_ID的连接关掉。
注:如果是分布式,第一列代表对应的节点位置。
6、控制台执行导出文本
这里采用spool的方式
DIsql -S xxx/xxx@jjhjk:5236 `d:\E_BASEINFO.sql
--spool_AO_OPANOMALY.sql
spool的文件
set ECHO off
SET NEWPAGE NONE
SET HEADING OFF
SET PAGESIZE 0
SET TRIMSPOOL ON
SET LINESIZE 2500
set LINESHOW off
SET TIMING OFF
SET FEED OFF
SET CHAR_CODE UTF8
SPOOL D:\aaa.txt
select
'|'||a||'|,|'||b||'|,|'||c||'|,|'||d||'|,|'||e||'|,|'||f||'|,|'||g||'|,|'||h||'|,|'||i||'|,|'||g||'|,|'||k||'|,|'||l||'|,|'||m||'|'
from "aaa" where rownum<=100;
SPOOL OFF ;
7、修改列的数据类型
ALTER TABLE PRODUCTION.PRODUCT_REVIEW MODIFY NAME VARCHAR(8) DEFAULT '刘青' NOT NULL;
8、
具有DBA权限的用户需要对EMPLOYEE_ADDRESS表增加一列,列名为ID(序号),
数据类型为INT,值小于10000。
ALTER TABLE RESOURCES.EMPLOYEE_ADDRESS ADD ID INT PRIMARY KEY CHECK (ID
<10000);
9、具有 DBA 权限的用户需要删除 PRODUCT 表的 PRODUCT_SUBCATEGORYID 一列。
ALTER TABLE PRODUCTION.PRODUCT DROP PRODUCT_SUBCATEGORYID CASCADE;
10、 具有DBA权限的用户需要在PRODUCT表上增加UNIQUE约束, UNIQUE字段为
NAME。
ALTER TABLE PRODUCTION.PRODUCT ADD CONSTRAINT CONS_PRODUCTNAME UNIQUE(NAME);
11、使用 REBUILD 将索引置为生效状态。
ALTER INDEX INDEX_C1 REBUILD ;
12、查看每个表的数据容量
declare
used_space number;
begin
for rec in
(
select table_name from user_tables order by 1
)
loop
execute immediate 'select table_used_pages(''用户名'','''||rec.table_name||''')*(select page()/1024)/1024 USE