liugmwx 发表于 2007-11-5 23:41:35

oracle 系统表 查询

<P>数据字典dict总是属于Oracle用户sys的。 <BR>  1、用户: <BR>   select username from dba_users; <BR>  改口令 <BR>   alter user spgroup identified by spgtest; <BR>  2、表空间: <BR>   select * from dba_data_files; <BR>   select * from dba_tablespaces;//表空间 <BR><BR>   select tablespace_name,sum(bytes), sum(blocks) <BR>    from dba_free_space group by tablespace_name;//空闲表空间 <BR><BR>   select * from dba_data_files <BR>    where tablespace_name='RBS';//表空间对应的数据文件 <BR><BR>   select * from dba_segments <BR>    where tablespace_name='INDEXS'; <BR>  3、数据库对象: <BR>   select * from dba_objects; <BR>   CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、 <BR>   PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。 <BR>  4、表: <BR>   select * from dba_tables; <BR>   analyze my_table compute statistics;-&gt;dba_tables后6列 <BR>   select extent_id,bytes from dba_extents <BR>   where segment_name='CUSTOMERS' and segment_type='TABLE' <BR>   order by extent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滚段的空间分配信息 <BR>   列信息: <BR>    select distinct table_name <BR>    from user_tab_columns <BR>    where column_name='SO_TYPE_ID'; <BR>  5、索引:  <BR>   select * from dba_indexes;//索引,包括主键索引 <BR>   select * from dba_ind_columns;//索引列 <BR>   select i.index_name,i.uniqueness,c.column_name <BR>    from user_indexes i,user_ind_columns c <BR>     where i.index_name=c.index_name <BR>     and i.table_name ='ACC_NBR';//联接使用 <BR>  6、序列: <BR>   select * from dba_sequences; <BR>  7、视图: <BR>   select * from dba_views; <BR>   select * from all_views; <BR>  text 可用于查询视图生成的脚本 <BR>  8、聚簇: <BR>   select * from dba_clusters; <BR>  9、快照: <BR>   select * from dba_snapshots; <BR>  快照、分区应存在相应的表空间。 <BR>  10、同义词: <BR>   select * from dba_synonyms <BR>    where table_owner='SPGROUP'; <BR>    //if owner is PUBLIC,then the synonyms is a public synonym. <BR>     if owner is one of users,then the synonyms is a *** synonym. <BR>  11、数据库链: <BR>   select * from dba_db_links; <BR>  在spbase下建数据库链 <BR>   create database link dbl_spnew <BR>   connect to spnew identified by spnew using 'jhhx'; <BR>   insert into acc_nbr@dbl_spnew <BR>   select * from acc_nbr where nxx_nbr='237' and line_nbr='8888'; <BR>  12、触发器: <BR>   select * from dba_trigers; <BR>  存储过程,函数从dba_objects查找。 <BR>  其文本:select text from user_source where name='BOOK_SP_EXAMPLE'; <BR>  建立出错:select * from user_errors; <BR>  oracle总是将存储过程,函数等软件放在SYSTEM表空间。 <BR>  13、约束: <BR>  (1)约束是和表关联的,可在create table或alter table table_name add/drop/modify来建立、修改、删除约束。 <BR>  可以临时禁止约束,如: <BR>   alter table book_example <BR>   disable constraint book_example_1; <BR>   alter table book_example <BR>   enable constraint book_example_1; <BR>  (2)主键和外键被称为表约束,而not null和unique之类的约束被称为列约束。通常将主键和外键作为单独的命名约束放在字段列表下面,而列约束可放在列定义的同一行,这样更具有可读性。 <BR>  (3)列约束可从表定义看出,即describe;表约束即主键和外键,可从dba_constraints和dba_cons_columns 查。 <BR>   select * from user_constraints <BR>   where table_name='BOOK_EXAMPLE'; <BR>   select owner,CONSTRAINT_NAME,TABLE_NAME <BR>    from user_constraints <BR>    where constraint_type='R' <BR>    order by table_name; <BR>  (4)定义约束可以无名(系统自动生成约束名)和自己定义约束名(特别是主键、外键) <BR>  如:create table book_example <BR>    (identifier number not null); <BR>    create table book_example <BR>    (identifier number constranit book_example_1 not null); <BR>  14、回滚段: <BR>  在所有的修改结果存入磁盘前,回滚段中保持恢复该事务所需的全部信息,必须以数据库发生的事务来相应确定其大小(DML语句才可回滚,create,drop,truncate等DDL不能回滚)。 <BR>  回滚段数量=并发事务/4,但不能超过50;使每个回滚段大小足够处理一个完整的事务; <BR>   create rollback segment r05 <BR>   tablespace rbs; <BR>   create rollback segment rbs_cvt <BR>   tablespace rbs <BR>   storage(initial 1M next 500k); <BR>  使回滚段在线 <BR>   alter rollback segment r04 online; <BR>  用dba_extents,v$rollback_segs监测回滚段的大小和动态增长。 <BR>  回滚段的区间信息 <BR>   select * from dba_extents <BR>   where segment_type='ROLLBACK' and segment_name='RB1'; <BR>  回滚段的段信息,其中bytes显示目前回滚段的字节数 <BR>   select * from dba_segments <BR>    where segment_type='ROLLBACK' and segment_name='RB1'; <BR>  为事物指定回归段 <BR>   set transaction use rollback segment rbs_cvt <BR>  针对bytes可以使用回滚段回缩。 <BR>   alter rollback segment rbs_cvt shrink; <BR>   select bytes,extents,max_extents from dba_segments <BR>    where segment_type='ROLLBACK' and segment_name='RBS_CVT'; <BR>  回滚段的当前状态信息: <BR>   select * from dba_rollback_segs <BR>    where segment_name='RB1'; <BR>  比多回滚段状态status,回滚段所属实例instance_num <BR>  查优化值optimal <BR>   select n.name,s.optsize <BR>    from v$rollname n,v$rollstat s <BR>     where n.usn=s.usn; <BR>  回滚段中的数据 <BR>   set transaction use rollback segment rb1;/*回滚段名*/ <BR>   select n.name,s.writes <BR>    from v$rollname n,v$rollstat s <BR>     where n.usn=s.usn; <BR>  当事务处理完毕,再次查询$rollstat,比较writes(回滚段条目字节数)差值,可确定事务的大小。 <BR>  查询回滚段中的事务 <BR>   column rr heading 'RB Segment' format a18 <BR>   column us heading 'Username' format a15 <BR>   column os heading 'Os User' format a10 <BR>   column te heading 'Terminal' format a10 <BR>   select r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te <BR>    from v$lock l,v$session s,v$rollname r <BR>     where l.sid=s.sid(+) <BR>     and trunc(l.id1/65536)=R.USN <BR>     and l.type='TX' <BR>     and l.lmode=6 <BR>   order by r.name; <BR>  15、作业 <BR>  查询作业信息 <BR>   select job,broken,next_date,interval,what from user_jobs; <BR>   select job,broken,next_date,interval,what from dba_jobs; <BR>  查询正在运行的作业 <BR>   select * from dba_jobs_running; <BR>  使用包exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')加入作业。间隔10秒钟 <BR>exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')加入作业。间隔11分钟使用包exec dbms_job.remove(21)删除21号作业。<BR></P>
页: [1]
查看完整版本: oracle 系统表 查询