Oracle系统表汇总.docx

上传人:飞**** 文档编号:44030202 上传时间:2022-09-20 格式:DOCX 页数:16 大小:16.91KB
返回 下载 相关 举报
Oracle系统表汇总.docx_第1页
第1页 / 共16页
Oracle系统表汇总.docx_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《Oracle系统表汇总.docx》由会员分享,可在线阅读,更多相关《Oracle系统表汇总.docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据字典dict总是属于Oracle用户sys的。 1、用户: select username from dba_users; 改口令 alter user spgroup identified by spgtest; 2、表空间: select * from dba_data_files; select * from dba_tablespaces;/表空间 select tablespace_name,sum(bytes), sum(blocks) from dba_free_space group by tablespace_name;/空闲表空间 select * from dba_d

2、ata_files where tablespace_name=RBS;/表空间对应的数据文件 select * from dba_segments where tablespace_name=INDEXS; 3、数据库对象: select * from dba_objects; CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、 PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。 4、表: select * from dba_tables;

3、 analyze my_table compute statistics;-dba_tables后6列 select extent_id,bytes from dba_extents where segment_name=CUSTOMERS and segment_type=TABLE order by extent_id;/表使用的extent的信息。segment_type=ROLLBACK查看回滚段的空间分配信息 列信息: select distinct table_name from user_tab_columns where column_name=SO_TYPE_ID; 5、索引

4、: select * from dba_indexes;/索引,包括主键索引 select * from dba_ind_columns;/索引列 select i.index_name,i.uniqueness,c.column_name from user_indexes i,user_ind_columns c where i.index_name=c.index_name and i.table_name =ACC_NBR;/联接使用 6、序列: select * from dba_sequences; 7、视图: select * from dba_views; select * f

5、rom all_views; text 可用于查询视图生成的脚本 8、聚簇: select * from dba_clusters; 9、快照: select * from dba_snapshots; 快照、分区应存在相应的表空间。 10、同义词: select * from dba_synonyms where table_owner=SPGROUP; /if owner is PUBLIC,then the synonyms is a public synonym. if owner is one of users,then the synonyms is a private synon

6、ym. 11、数据库链: select * from dba_db_links; 在spbase下建数据库链 create database link dbl_spnew connect to spnew identified by spnew using jhhx; insert into acc_nbrdbl_spnew select * from acc_nbr where nxx_nbr=237 and line_nbr=8888; 12、触发器: select * from dba_trigers; 存储过程,函数从dba_objects查找。 其文本:select text fro

7、m user_source where name=BOOK_SP_EXAMPLE; 建立出错:select * from user_errors; oracle总是将存储过程,函数等软件放在SYSTEM表空间。 13、约束: (1)约束是和表关联的,可在create table或alter table table_name add/drop/modify来建立、修改、删除约束。 可以临时禁止约束,如: alter table book_example disable constraint book_example_1; alter table book_example enable const

8、raint book_example_1; (2)主键和外键被称为表约束,而not null和unique之类的约束被称为列约束。通常将主键和外键作为单独的命名约束放在字段列表下面,而列约束可放在列定义的同一行,这样更具有可读性。 (3)列约束可从表定义看出,即describe;表约束即主键和外键,可从dba_constraints和dba_cons_columns 查。 select * from user_constraints where table_name=BOOK_EXAMPLE; select owner,CONSTRAINT_NAME,TABLE_NAME from user_

9、constraints where constraint_type=R order by table_name; (4)定义约束可以无名(系统自动生成约束名)和自己定义约束名(特别是主键、外键) 如:create table book_example (identifier number not null); create table book_example (identifier number constranit book_example_1 not null); 14、回滚段: 在所有的修改结果存入磁盘前,回滚段中保持恢复该事务所需的全部信息,必须以数据库发生的事务来相应确定其大小(D

10、ML语句才可回滚,create,drop,truncate等DDL不能回滚)。 回滚段数量=并发事务/4,但不能超过50;使每个回滚段大小足够处理一个完整的事务; create rollback segment r05 tablespace rbs; create rollback segment rbs_cvt tablespace rbs storage(initial 1M next 500k); 使回滚段在线 alter rollback segment r04 online; 用dba_extents,v$rollback_segs监测回滚段的大小和动态增长。 回滚段的区间信息 se

11、lect * from dba_extents where segment_type=ROLLBACK and segment_name=RB1; 回滚段的段信息,其中bytes显示目前回滚段的字节数 select * from dba_segments where segment_type=ROLLBACK and segment_name=RB1; 为事物指定回归段 set transaction use rollback segment rbs_cvt 针对bytes可以使用回滚段回缩。 alter rollback segment rbs_cvt shrink; select byte

12、s,extents,max_extents from dba_segments where segment_type=ROLLBACK and segment_name=RBS_CVT; 回滚段的当前状态信息: select * from dba_rollback_segs where segment_name=RB1; 比多回滚段状态status,回滚段所属实例instance_num 查优化值optimal select n.name,s.optsize from v$rollname n,v$rollstat s where n.usn=s.usn; 回滚段中的数据 set transa

13、ction use rollback segment rb1;/*回滚段名*/ select n.name,s.writes from v$rollname n,v$rollstat s where n.usn=s.usn; 当事务处理完毕,再次查询$rollstat,比较writes(回滚段条目字节数)差值,可确定事务的大小。 查询回滚段中的事务 column rr heading RB Segment format a18 column us heading Username format a15 column os heading Os User format a10 column te

14、 heading Terminal format a10 select r.name rr,nvl(s.username,no transaction) us,s.osuser os,s.terminal te from v$lock l,v$session s,v$rollname r where l.sid=s.sid(+) and trunc(l.id1/65536)=R.USN and l.type=TX and l.lmode=6 order by r.name; 15、作业 查询作业信息 select job,broken,next_date,interval,what from

15、user_jobs; select job,broken,next_date,interval,what from dba_jobs; 查询正在运行的作业 select * from dba_jobs_running; 使用包exec dbms_job.submit(:v_num,a;,sysdate,sysdate + (10/(24*60*60)加入作业。间隔10秒钟 exec dbms_job.submit(:v_num,a;,sysdate,sysdate + (11/(24*60)加入作业。间隔11分钟使用包exec dbms_job.remove(21)删除21号作业。. Post

16、ed by puppy in 玩吧 at 2008-11-06 10:10:03 | 访问 891 次 | 续文:4 返回上一页该Blog续文信息1.查询oracle表空间的使用情况 select b.file_id文件ID, b.tablespace_name表空间, b.file_name物理文件名, b.bytes总字节数, (b.bytes-sum(nvl(a.bytes,0)已使用, sum(nvl(a.bytes,0)剩余, sum(nvl(a.bytes,0)/(b.bytes)*100剩余百分比 from dba_free_space a,dba_data_files b wh

17、ere a.file_id=b.file_id group by b.tablespace_name,b.file_name,b.file_id,b.bytes order by b.tablespace_name 2.查询oracle系统用户的默认表空间和临时表空间 select default_tablespace,temporary_tablespace from dba_users 3.查询单张表的使用情况 select segment_name,bytes from dba_segments where segment_name = RE_STDEVT_FACT_DAY and ow

18、ner = USER RE_STDEVT_FACT_DAY是您要查询的表名称 4.查询所有用户表使用大小的前三十名 select * from (select segment_name,bytes from dba_segments where owner = USER order by bytes desc ) where rownum = 30 5.查询当前用户默认表空间的使用情况 select tablespacename,sum(totalContent),sum(usecontent),sum(sparecontent),avg(sparepercent) from ( SELECT

19、 b.file_id as id,b.tablespace_name as tablespacename,b.bytes as totalContent,(b.bytes-sum(nvl(a.bytes,0) as usecontent,sum(nvl(a.bytes,0) as sparecontent,sum(nvl(a.bytes,0)/(b.bytes)*100as sparepercent FROM dba_free_space a,dba_data_files b WHERE a.file_id=b.file_id and b.tablespace_name = (select d

20、efault_tablespace from dba_users where username = user) group by b.tablespace_name,b.file_name,b.file_id,b.bytes ) GROUP BY tablespacename 6.查询用户表空间的表 select *from user_tables Posted by puppy at 2008-11-06 11:09:07 select * from ( select bytes,segment_name,segment_type,owner from dba_segments where

21、tablespace_name = SYSTEM order by bytes desc ) where rownum select tablespace_name,(bytes/1024/1024) M from dba_data_files; TABLESPACE_NAME M - - USERS 5 SYSAUX310 UNDOTBS1 30 SYSTEM490 EXAMPLE 100 Posted by puppy at 2008-11-07 19:45:16 system表空间增大是正常的,但急剧增大是不合理的。 1有可能是用户对象错误的放在系统表空间中 2也可能是system表空间

22、的UNDO过大 3还有可能和高级复制的空间使用有关 可通过如下语句查看一下是不是有应用的段放到了SYSTEM中: select OWNER,SEGMENT_NAME,SEGMENT_TYPE,BYTESfrom DBA_SEGMENTSwhere TABLESPACE_NAME=SYSTEM and OWNER not in (SYS,SYSTEM) 通过如下查询语句查看找出系统表空间中占用空间最多的Top9对象 SELECT * FROM (SELECT BYTES, segment_name, segment_type, owner FROM dba_segments WHERE tabl

23、espace_name = SYSTEM ORDER BY BYTES DESC) WHERE ROWNUM 10 高级复制会使用 sys.IDL_UB1$ 摘自,Database Administrators Guide 第70页 If you use Advanced Replication and intend to set up a large number of replicated objects, then you are required to monitor the following data dictionary tables with the SQL SELECT co

24、mmand: n ARGUMENT$ n IDL_CHAR$ n IDL_UB1$ n IDL_UB2$ n IDL_SB4$ n I_ARGUMENT1 n I_SOURCE1I$ n SOURCE$ n TRIGGER If necessary, increase storage parameters to accommodate storage requirements of large numbers of replicated objects. 请参考eygle的文章( 系统对象IDL_UB1$表的含义及作用 在ITPUB上有朋友遇到SYSTEM表空间快速扩展的问题 系统表空间异常扩

25、展的情况遇到过很多: 有的和用户表空间或对象分配不当有关 有的和高级复制的空间使用有关. 经过如下代码查询,可以找出系统表空间中占用空间最多的Top9对象: col segment_name for a25 col owner for a10 SELECT * FROM (SELECT BYTES, segment_name, segment_type, owner FROM dba_segments WHERE tablespace_name = SYSTEM ORDER BY BYTES DESC) WHERE ROWNUM 10 / 这个朋友的Top9对象为: 13082174464ID

26、L_UB1$ TABLE SYS 263979520SOURCE$ TABLE SYS 312075008IDL_UB2$ TABLE SYS 47749632 DEPENDENCY$ TABLE SYS 57356416 I_DEPENDENCY2 INDEX SYS 66438912 I_DEPENDENCY1 INDEX SYS 75521408 I_IDL_UB11 INDEX SYS 84341760 IDL_SB4$ TABLE SYS 93555328 I_ACCESS1 INDEX SYS 我们注意到占用空间最大的对象是IDL_UB1$系统表,空间占用近3G,那么这个表是做什么

27、用的呢? 从sql.bsq中我们可以找到这个表的创建语句: create table idl_ub1$/* idl table for ub1 pieces */ ( obj#number not null,/* object number */ partnumber not null, /* part: 0 = diana, 1 = portable pcode, 2 = machine-dependent pcode */ version number,/* version number */ piece#number not null, /* piece number */ length

28、number not null, /* piece length */ piece long raw not null)/* ub1 piece */ storage (initial 10k next 100k maxextents unlimited pctincrease 0) / idl_ub1$表是用来存储PL/SQL的代码单元的,包括DIANA等,IDL在这里代表Interface Definition Language. 这个对象的含义可以从Ixora找到一点提示: It is an intermediate language in which the structure of

29、database tables and the logic of PL/SQL program units can be consistently represented as attributed trees. Oracle uses the DIANA IDL, which comes from compilers for the Ada programming language. DIANA stands for Descriptive Intermediate Attributed Notation for Ada. Anyway, this is one of four tables in the data dictionary used to store the DIANA for PL/SQL program units, and the database objects that they reference. 在高级复制中会用到这个表,所以可能导致这个表快速增长,在Oracle10g之前,高级复制需要考虑的事情的确很多。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁