Oracle系统表处理

ORACLE系统表处理 


1.取得指定用户的所有表名:
 
SELECTOWNERAS"对象所有者",OBJECT_NAMEAS"表名",OBJECT_IDAS"对象编号"fromdba_objectswhereowner='RAXNYB'ANDOBJECT_TYPE='TABLE'ORDERBYOWNER,OBJECT_TYPE;
或
OWNERAS"对象所有者",TABLE_NAMEAS"表名"fromDBA_TABLESwhereowner='RAXNYB'ORDERBYOWNER,TABLE_NAME;




2.取得指定用户的所有视图名称:
 
SELECTOWNERAS"对象所有者",VIEW_NAMEAS"视图名称"fromDBA_VIEWSwhereowner='RAXNYB'ORDERBYOWNER,VIEW_NAME;




oracle系统表查询 


1.用户:
 
selectusernamefromdba_users;


改口令
 
alteruserspgroupidentifiedbyspgtest;




2.表空间:
 
select*fromdba_data_files;
select*fromdba_tablespaces;//表空间
selecttablespace_name,sum(bytes),sum(blocks)fromdba_free_spacegroupbytablespace_name;//空闲表空间
select*fromdba_data_fileswheretablespace_name='RBS';//表空间对应的数据文件
select*fromdba_segmentswheretablespace_name='INDEXS';




3.数据库对象
 
select*fromdba_objects;
CLUSTER、DATABASELINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGEBODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。




4.表
 
select*fromdba_tables;
selectextent_id,bytesfromdba_extentswheresegment_name='CUSTOMERS'andsegment_type='TABLE'orderbyextent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滚段的空间分配信息
selectdistincttable_namefromuser_tab_columnswherecolumn_name='SO_TYPE_ID';




5.索引
 
select*fromdba_indexes;//索引,包括主键索引
select*fromdba_ind_columns;//索引列
selecti.index_name,i.uniqueness,c.column_name
fromuser_indexesi,user_ind_columnsc
wherei.index_name=c.index_name
andi.table_name='ACC_NBR';//联接使用




6.序列
 
select*fromdba_sequences;




7.视图
 
select*fromdba_views
select*fromall_views
text字段可用于查询视图生成的脚本




8.聚簇
 
select*fromdba_clusters




9.快照
 
select*fromdba_snapshots


快照、分区应存在相应的表空间 


10.同义词
 
select*fromdba_synonyms


//if owner is PUBLIC,then the synonyms is a public synonym. 
//if owner is one of users,then the synonyms is a private synonym 


11.数据库链
 
select*fromdba_db_links


在spbase下建数据库链:
 
createdatabaselinkdbl_spnew
connecttospnewidentifiedbyspnewusing'jhhx';
insertintoacc_nbr@dbl_spnewselect*fromacc_nbrwherenxx_nbr='237'andline_nbr='8888';




12.触发器
 
select*fromdba_trigers;


存储过程,函数从dba_objects查找 
其文本:select text from user_source where name='BOOK_SP_EXAMPLE'; 
建立出错:select * from user_errors 
oracle总是将存储过程,函数等软件放在SYSTEM表空间。 


13.约束 
(1)约束是和表关联的,可在create table或alter table table_name add/drop/modify来建立、修改、删除约束. 
  可以临时禁止约束,如:
 
altertablebook_exampledisableconstraintbook_example_1;
altertablebook_exampleenableconstraintbook_example_1;


(2)主键和外键被称为表约束,而not null和unique之类的约束被称为列约束。通常将主键和外键作为单独的命名约束放在字段列表下面,而列约束可放在列定义的同一行,这样更具有可读性 
(3)列约束可从表定义看出,即describe;表约束即主键和外键,可从dba_constraints和dba_cons_columns 查。
 
select*fromuser_constraintswheretable_name='BOOK_EXAMPLE';
selectowner,CONSTRAINT_NAME,TABLE_NAMEfromuser_constraintswhereconstraint_type='R'orderbytable_name;


(4)定义约束可以无名(系统自动生成约束名)和自己定义约束名(特别是主键、外键) 如:
 
createtablebook_example(identifiernumbernotnull);
createtablebook_example(identifiernumberconstranitbook_example_1notnull);




14、回滚段: 
在所有的修改结果存入磁盘前,回滚段中保持恢复该事务所需的全部信息,必须以数据库发生的事务来相应确定其大小(DML语句才可回滚,create,drop,truncate等DDL不能回滚)。 
回滚段数量=并发事务/4,但不能超过50;使每个回滚段大小足够处理一个完整的事务;
 
createrollbacksegmentr05tablespacerbs;
createrollbacksegmentrbs_cvttablespacerbsstorage(initial1Mnext500k);




使回滚段在线
 
alterrollbacksegmentr04online;


用dba_extents,v$rollback_segs监测回滚段的大小和动态增长。 


回滚段的区间信息
 
select*fromdba_extentswheresegment_type='ROLLBACK'andsegment_name='RB1';




回滚段的段信息,其中bytes显示目前回滚段的字节数
 
select*fromdba_segmentswheresegment_type='ROLLBACK'andsegment_name='RB1';




为事物指定回归段
 
settransactionuserollbacksegmentrbs_cvt




针对bytes可以使用回滚段回缩。
 
alterrollbacksegmentrbs_cvtshrink;
selectbytes,extents,max_extentsfromdba_segmentswheresegment_type='ROLLBACK'andsegment_name='RBS_CVT';




回滚段的当前状态信息:
 
select*fromdba_rollback_segswheresegment_name='RB1';


比多回滚段状态status,回滚段所属实例instance_num 
查优化值optimal
 
selectn.name,s.optsizefromv$rollnamen,v$rollstatswheren.usn=s.usn;




回滚段中的数据
 
settransactionuserollbacksegmentrb1;/*回滚段名*/
selectn.name,s.writesfromv$rollnamen,v$rollstatswheren.usn=s.usn;




当事务处理完毕,再次查询$rollstat,比较writes(回滚段条目字节数)差值,可确定事务的大小。 
查询回滚段中的事务
 
columnrrheading'RBSegment'formata18
columnusheading'Username'formata15
columnosheading'OsUser'formata10
columnteheading'Terminal'formata10
selectr.namerr,nvl(s.username,'notransaction')us,s.osuseros,s.terminaltefromv$lockl,v$sessions,v$rollnamer
wherel.sid=s.sid(+)
andtrunc(l.id1/65536)=R.USNandl.type='TX'andl.lmode=6orderbyr.name;




15、作业 
  查询作业信息
 
selectjob,broken,next_date,interval,whatfromuser_jobs;
selectjob,broken,next_date,interval,whatfromdba_jobs;


查询正在运行的作业
 
select*fromdba_jobs_running;


使用包
 
execdbms_job.submit(:v_num,'a;',sysdate,'sysdate+(10/(24*60*60))')加入作业。间隔10秒钟
execdbms_job.submit(:v_num,'a;',sysdate,'sysdate+(11/(24*60))')加入作业。间隔11分钟使用包execdbms_job.remove(21)删除21号作业。

转自:http://bbs.csdn.net/topics/350239834

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值