oracle 系统表总结
- 格式:docx
- 大小:62.02 KB
- 文档页数:8
ORACLE的五种表的优缺点概述⼀、普通表(heap table):适合⼤部分设计场景,有优点也有缺点。
优点:1.语法简单⽅便2.适合⼤部分场景缺点:1.更新⽇志开销较⼤2.Delete⽆法释放空间(HWM High Water Mark不下降)3.表记录太⼤检索太慢4.索引回表读开销很⼤5.即便有序插⼊,也很难保证有序读出⼆、全局临时表:适合接⼝表设计优点:1.⾼效删除2.产⽣很少的⽇志3.不同的SESSION独⽴,不产⽣锁缺点:1.语法特别2.数据⽆法得到有效的保护全局临时表分两类:⼀个是基于会话的全局临时表(on commit preserve rows),⼀个是基于事务的全局临时表(on commit delete rows),下⾯就是创建的例⼦:create global temporary table T_TMP_SESSION on commit preserve rows as select * from dba_objects;create global temporary table T_TMP_TRANSACTION on commit delete rows as select * from dba_objects;三、分区表:尤其适合⽇志表,⾮常⼤的表优点:1.有效的分区消除 (分区裁剪)2.⾼效的记录清理(即可以对某⼀个分区进⾏truncate)3.⾼效的记录转移(分区交换)缺点:1.语法复杂2.分区过多对系统有⼀定的影响四、索引组织表:适合极少更新的表优点:1.表就是索引,可以避免回表缺点:1.语法复杂2.更新开销较⼤五、蔟表:使⽤频繁关联查询的多表优点:1.可以减少或避免排序缺点:1.语法复杂2.表更新开销⼤。
1.系统表ORACLE数据库的系统参数都存储在数据库中,可以通过SQLPLUS,以用户SYSYTEM 进行查询。
几个重要的表或者视图如下:v$controlfile:控制文件的信息;v$datafile:数据文件的信息;v$log:日志文件的信息;v$process:处理器的信息;v$session:会话信息;v$transaction:事务信息;v$resource:资源信息;v$sga:系统全局区的信息。
上面的视图名中的‘v$’,只是视图名字中的字符。
类似于上面的视图或表还有很多,位于:$ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL文件中。
这些视图或表可以在SQLPLUS中用SELECT语句进行查询。
2.数据字典视图表和列DBA_TABLES、ALL_TABLES和USER_TABLES显示了有关数据库表的一般信息。
DBA_TAB_COLUMNS、ALL_TAB_COLUMNS和USER_TAB_COLUMNS显示了每个数据库表的列的信息。
查看一张表属于哪个表空间select TABLESPACE_NAME from tabs where TABLESPACE_NAME = 表名;注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括表。
完整性约束DBA_CONSTRAINTS、ALL_CONSTRAINTS和USER_CONSTRAINST显示有关约束的一般信息。
DBA_CONS_COLUMNS、ALL_CONS_COLUMNS和USER_CONS_COLUMNS显示有关列的相关约束的一般信息。
视图DBA_VIEWS、ALL_VIEWS和USER_VIEWS。
注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括视图。
序列DBA_SEQUENCES、ALL_SEQUENCES和USER_SEQUENCES。
oracle 工作总结
《Oracle 工作总结》。
在过去的一段时间里,我一直在公司的Oracle团队工作。
在这段时间里,我学到了很多关于Oracle数据库管理和优化的知识,也积累了丰富的工作经验。
在这篇文章中,我将对我的工作进行总结,并分享一些我在Oracle工作中的收获和体会。
首先,我要谈谈我在Oracle数据库管理方面的工作。
在这个岗位上,我负责监控数据库的运行状态,确保数据库的稳定性和安全性。
我学会了如何定期备份数据库,以防止数据丢失。
我还学会了如何优化数据库的性能,通过调整参数和索引来提高数据库的查询效率。
在这个过程中,我遇到了很多问题,但通过不断学习和实践,我逐渐掌握了数据库管理的技巧和方法。
其次,我还要谈谈我在Oracle数据库优化方面的工作。
在这个岗位上,我负责分析数据库的性能问题,并提出优化建议。
我学会了如何通过SQL调优来提高数据库的查询速度,如何通过合理的索引设计来减少数据库的IO负载。
我还学会了如何通过分区表和分区索引来提高数据库的并发处理能力。
通过这些工作,我深入了解了Oracle数据库的优化原理和方法,也提高了自己的技术水平。
总的来说,我的Oracle工作经历让我受益良多。
我不仅学会了数据库管理和优化的技术,也锻炼了自己的分析和解决问题的能力。
我相信,在未来的工作中,我会继续努力学习,不断提高自己的技术水平,为公司的发展贡献自己的力量。
感谢公司给予我这次宝贵的工作机会,我会继续努力,不辜负公司的期望。
今日问题:1merege的使用方法?ORACLE总结序列篇什么是序列?1)系统自动生成的,不重复的整数值。
2)序列是一种数据库对象,可以被多个用户同时享用。
3)典型的用途是作为主键值,他对于每一行必须是唯一的4)序列可以代替应用程序序号。
5)可以对序列值进行缓冲存储,访问效率。
创建序列1.使用create sequence语句创建序列Create sequence mysequenceIncrement by 1Minvalue 1Maxvalue 1Nocache/cacheNocycle/cycle使用序列1.表里使用序列插入值:Insert into test1(name,id) values (‘xixi’,mysequence.nextval);Insert into test1(name,id)values(‘sss’,mysequence.currval);; 查询序列1.命令查询Desc user_sequence2.从数据字典里查询Select min_value,max_value,increment,lastnumber from sequences修改序列Alert sequence mysequenceIncrement by 1Minvalue 1删除序列问题:序列出现不连续的原因1.数据回滚过。
2.系统异常。
3.多个表同时使用一个序列。
索引篇什么是索引?1)一种数据库对象。
2)通过指针加速oracle服务器服务查询速度。
3)通过快速定位数据的方法,减少磁盘I/O。
4)索引与表相互独立。
5)Oracle服务器自动使用索引和维护服务。
创建索引1)自动创建: 在定义PRIMARY KEY 或UNIQUE 约束后系统自动在相应的列上创建唯一性索引。
2)手动创建: 用户可以在其它列上创建非唯一的索引,以加速查询Create index index_table on table (id);删除索引Drop index index_table;查询索引Select * from user_sequences;什么时候适合创建索引1)以下情况可以创建索引:2)列中数据值分布范围很广3)列中包含大量空值4)列经常在WHERE 子句或连接条件中出现5)表经常被访问而且数据量很大,访问的数据大概占数据总量的2%到4%下列情况不要创建索引1)表很小2)列不经常作为连接条件或出现在WHERE子句中3)查询的数据大于2%到4%4)表经常更新同义词篇同义词一使用同义词访问相同的对象1)方便访问其它用户的对象2)缩短对象名字的长度二同义词的意义创建同义词Create synonym tableOrOther for table;删除同义词Drop synonym table;PL/SQL篇什么是PL/SQL:PL/SQL是Procedure Language & Structured Query Language的缩写。
Oracle知识点总结用户/表/复杂查询/plsql/存储过程/函数/游标/触发器/同义词/视图/序列/动态sql 说明:本文中用到的println,是自己创建的一个存储过程,调用了dbms_output.put_line方法代码如下:Create or replace procedure println(v_str in varchar2)AsBeginDbms_output.put_line(v_str);End;1、用户a)创建表空间Create tablespace tablespace_nameDatafile‘E://database/myspace.dbf’size20MAutoextend on解释:创建表空间用于存放表的文件tablespace_name 表空间的名字Datafile‘E://database/myspace.dbf’size20M表空间的路径和初始值大小(文件夹需要提前创建好 .dbf是自己写的扩展名)Autoextend on 设置允许自增,当表空间达到20M是允许自增b)创建用户create user scott identified by tigerdefault tablespace userstemporary tablespace temp注释:创建用户用户名是scott密码是tiger(管理员权限下运行)default tablespace users 定义默认使用的表空间,存放scott用户下创建的表和数据用的temporary tablespace temp 定义临时使用的表空间Users、temp 是系统创建的默认表空间,这里可以用自己定义的表空间c)修改密码alter user scott identified tigerd)删除用户drop user scotte)解锁alter user scott account unlock;f)授权grant connect to scott;授予连接权限grant create view to scott;授予创建视图的权限grant create sequence to scott;授予创建序列的权限grant create table to scott;授权创建表的权限grant dba to scott;授予数据库管理员的权限 dba—>DataBaseAdming)回收权限revoke connect from scott;收回连接权限2、表a)创建表i.Pk fk uk not null check defaultcreate table table_name(id number primary key,name varchar2(20)not null unique,sex char(2)check(sex in('1','0')),birthday date default sysdate,empno number references emp(empno))创建表是同时,添加约束的写法b)修改表i.添加字段alter table table_name add classname varchar2(20);ii.删除字段alter table table_name drop column classname;iii.修改字段alter table table_name modify classname varchar2(50);iv.修改字段名字alter table table_name rename column classname to cname ;v.添加约束(创建完表后添加约束)1.外键约束alter table table_name add constraint fk_name foreign key(cname)references emp(ename);2.一般约束alter table table_name add constraint uk_name unique(name);alter table table_name add constraint ck_sex check(sex in('1','0'));alter table table_name add constraint date default sysdate;3、表数据a)插入数据i.Insert into 表名(字段名,…) values (值….)b)修改数据i.Update 表名 set 字段=新值 where 条件c)删除数据i.Delet1.Delete 表名 where 条件ii.Truncate1.Truncate table 表名Delete和truncate的区别TRUNCATE和DELETE有以下几点区别1、TRUNCATE在各种表上无论是大的还是小的都非常快。
oracle 表的描述Oracle 表的描述引言:Oracle 是一种常用的关系型数据库管理系统,它采用表的形式来存储和组织数据。
表是数据库中的一个重要组成部分,它定义了数据的结构和规范,使数据能够被有效地存储和管理。
本文将介绍Oracle 表的描述以及相关的概念和特性。
一、表的定义和结构表是 Oracle 数据库中的一个基本对象,用于存储和组织数据。
表由一系列的行和列组成,每行代表一个记录,每列代表一个属性。
表的结构由列名、数据类型、长度和约束等属性来定义。
其中,列名是用于标识和引用该列的唯一名称,数据类型定义了列可以存储的数据的类型,长度表示了该列可以存储的数据的最大长度,约束用于限制和保证数据的完整性和一致性。
二、表的创建和删除在 Oracle 中,可以使用 CREATE TABLE 语句来创建表,语法如下:CREATE TABLE 表名(列名1 数据类型(长度) 约束,列名2 数据类型(长度) 约束,...);其中,表名是要创建的表的名称,列名是表中的列的名称,数据类型是列可以存储的数据的类型,长度表示了该列可以存储的数据的最大长度,约束用于限制和保证数据的完整性和一致性。
删除表可以使用 DROP TABLE 语句,语法如下:DROP TABLE 表名;其中,表名是要删除的表的名称。
三、表的修改和查询在 Oracle 中,可以使用 ALTER TABLE 语句来修改表的结构,包括添加、修改和删除列等操作。
语法如下:ALTER TABLE 表名ADD (列名数据类型(长度) 约束);ALTER TABLE 表名MODIFY (列名数据类型(长度) 约束);ALTER TABLE 表名DROP COLUMN 列名;其中,表名是要修改的表的名称,列名是表中的列的名称,数据类型是列可以存储的数据的类型,长度表示了该列可以存储的数据的最大长度,约束用于限制和保证数据的完整性和一致性。
查询表可以使用 SELECT 语句,语法如下:SELECT 列1, 列2, ...FROM 表名;其中,列1、列2 等是要查询的列的名称,表名是要查询的表的名称。
Oracle系统表新增字段alter table mytable add f3 number(3,0) default 0 not null;alter table T_LAB_PaperTestRecords add (FWATERS NUMBER(28,10),FQUANTITATIV NUMBER(28,10));性能监控之监控SQL语句分析表analyze table tablename compute statistics for all indexes;analyze table tablename compute statistics for all indexed columns;analyze table tablename compute statistics for table;监控事例的等待select event,sum(decode(wait_Time,0,0,1)) "Prev",sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot"from v$session_Waitgroup by event order by 4;查看碎片程度高的表SELECT segment_name table_name , COUNT(*) extentsFROM dba_segments WHERE owner NOT IN (SYS, SYSTEM) GROUP BY segment_nameHAVING COUNT(*) = (SELECT MAX( COUNT(*) FROM dba_segments GROUP BY segment_name);表、索引的存储情况检查select segment_name,sum(bytes),count(*) ext_quan fromdba_extents wheretablespace_name=&tablespace_name and segment_type=TABLE group by tablespace_name,segment_name;select segment_name,count(*) from dba_extents where segment_type=INDEX and owner=&ownergroup by segment_name;找使用CPU多的用户session12是cpu used by this sessionselect a.sid,spid,status,substr(a.program,1,40) prog,a.terminal,osuser,value/60/100 valuefrom v$session a,v$process b,v$sesstat cwhere c.statistic#=12 and c.sid=a.sid and a.paddr=b.addr order by value desc;监控表空间的 I/O 比例select df.tablespace_name name,df.file_name "file",f.phyrds pyr,f.phyblkrd pbr,f.phywrts pyw, f.phyblkwrt pbwfrom v$filestat f, dba_data_files dfwhere f.file# = df.file_idorder by df.tablespace_name;回滚段的争用情况select name, waits, gets, waits/gets "Ratio"from v$rollstat a, v$rollname bwhere/doc/a1d1093710661ed9ac51f304.html n = /doc/a1d1093710661ed9ac51f304.html n;在某个用户下找所有的索引select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name from user_ind_columns, user_indexeswhere user_ind_columns.index_name = user_indexes.index_nameand user_ind_columns.table_name = user_indexes.table_nameorder by user_indexes.table_type, user_indexes.table_name, user_indexes.index_name, column_position;监控文件系统的 I/O 比例select substr(a.file#,1,2) "#", substr(/doc/a1d1093710661ed9ac51f304. html ,1,30) "Name",a.status, a.bytes,b.phyrds, b.phywrtsfrom v$datafile a, v$filestat bwhere a.file# = b.file#;监控 SGA 中字典缓冲区的命中率select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 "miss ratio",(1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Hit ratio"from v$rowcachewhere gets+getmisses <>0group by parameter, gets, getmisses;监控 SGA 中共享缓存区的命中率,应该小于1%select sum(pins) "T otal Pins", sum(reloads) "Total Reloads", sum(reloads)/sum(pins) *100 libcachefrom v$librarycache;select sum(pinhits-reloads)/sum(pins) "hit radio",sum(reloads)/sum(pins) "reload percent"from v$librarycache;监控 SGA 的命中率select a.value + b.value "logical_reads", c.value "phys_reads", round(100 * ((a.value+b.value)-c.value) / (a.value+b.value)) "BUFFER HIT RATIO"from v$sysstat a, v$sysstat b, v$sysstat cwhere a.statistic# = 38 and b.statistic# = 39and c.statistic# = 40;监控 SGA 中重做日志缓存区的命中率,应该小于1%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)*10 0) ratio2FROM v$latch WHERE name IN (redo allocation, redo copy);显示所有数据库对象的类别和大小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_requiredfrom dba_object_sizegroup by type order by 2;监控内存和硬盘的排序比率,最好使它小于.10,增加sort_area_sizeSELECT name, value FROM v$sysstat WHERE name IN (sorts (memory), sorts (disk));监控当前数据库谁在运行什么SQL语句SELECT osuser, username, sql_text from v$session a, v$sqltext bwhere a.sql_address =b.address order by address, piece;监控字典缓冲区SELECT (SUM(PINS - RELOADS)) / SUM(PINS) "LIB CACHE" FROM V$LIBRARYCACHE;SELECT (SUM(GETS - GETMISSES - USAGE - FIXED)) / SUM(GETS) "ROW CACHE" FROM V$ROWCACHE;SELECT SUM(PINS) "EXECUTIONS", SUM(RELOADS) "CACHE MISSES WHILE EXECUTING" FROM V$LIBRARYCACHE;后者除以前者,此比率小于1%,接近0%为好。
数据字典dict总是属于Oracle用户sys的。
、用户: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_data_fileswhere tablespace_name='RBS';//表空间对应的数据文件select * from dba_segmentswhere tablespace_name='INDEXS';3、数据库对象:select * from dba_objects;CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PAC KAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。
4、表:select * from dba_tables;analyze my_table compute statistics;>dba_tables后6列select extent_id,bytes from dba_extentswhere segment_name='CUSTOMERS' and segment_type='TABLE'order by extent_id;//表使用的extent的信息。
segment_type='ROLLBACK'查看回滚段的空间分配信息列信息:select distinct table_namefrom user_tab_columnswhere column_name='SO_TYPE_ID';5、索引:select * from dba_indexes;//索引,包括主键索引select * from dba_ind_columns;//索引列select i.index_name,i.uniqueness,c.column_namefrom user_indexes i,user_ind_columns cwhere i.index_name=c.index_nameand i.table_name ='ACC_NBR';//联接使用6、序列:select * from dba_sequences;7、视图:select * from dba_views;select * from all_views;text 可用于查询视图生成的脚本8、聚簇:select * from dba_clusters;9、快照:select * from dba_snapshots;快照、分区应存在相应的表空间。
表空间含义:表空间是数据库的逻辑组成部分。
从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表空间由一个或多个数据文件组成1,oracle 中逻辑结构包括表空间、段、区和块。
说明一下数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由oracle 块构成的这样的一种结构,可以提高数据库的效率。
表空间用于从逻辑上组织数据库的数据。
数据库逻辑上是由一个或是多个表空间组成的2,创建表空间:create tablespace data01 datafile 'd:\test\dada01.dbf' size 20m uniform size 128k;或SQL> create tablespace lqb datefile 'e:\lqb.dbf' size 50M autoextend on next 50M maxsize unlimited extend mangement local;-------------extend mangement local;本地管理表空间。
autoextend on next 50M maxsize unlimited 在50M后最大的扩展时没有限制的3,第3步:创建用户并指定表空间*/ create user USERNAME identified by PASSWORD default tablespace USER_DATE temporary tablespace user_temp;-------------temporary 临时的,暂时的4,如何将表移动到指定表空间alter table TABLE_NAME move tablespace TABLESPACE_NAME;如何将索引移动到指定的表空间alter index INDEX_NAME REBUILD tablespace TABLESPACE_NAME;5,改变表空间的状态a,使表空间脱机alter tablespace 表空间名offline; b,使表空间联机alter tablespace 表空间名online; c,只读表空间alter tablespace 表空间名read only; (修改为可写是alter tablespace 表空间名read write;)6, 知道表空间名,显示该表空间包括的所有表select * from all_tables where tablespace_name='表空间名';7,知道表名,查看该表属于那个表空间select tablespace_name, table_name from user_tables where table_name='emp';8,扩展该表空间,为其增加更多的存储空间。
oracle提供的经典实例表结构标题:Oracle经典实例表结构1. 概述Oracle是一种关系型数据库管理系统,在实际应用中,经典的实例表结构设计是非常重要的。
本文将介绍一些常见的Oracle实例表结构,以供读者参考和学习。
2. 用户表用户表是Oracle数据库中最常见的表之一。
它用于存储用户的基本信息,如用户名、密码、邮箱等。
典型的用户表结构包括用户ID、用户名、密码、邮箱、创建时间等字段。
3. 订单表订单表是在电子商务领域中常见的表之一。
它用于存储用户的订单信息,如订单号、订单时间、订单金额等。
典型的订单表结构包括订单ID、用户ID、订单号、订单时间、订单金额等字段。
4. 商品表商品表是存储商品信息的表。
它记录了商品的基本属性,如商品ID、商品名称、商品价格等。
典型的商品表结构包括商品ID、商品名称、商品价格、商品描述等字段。
5. 客户表客户表是存储客户信息的表。
它记录了客户的基本信息,如客户ID、客户姓名、客户电话等。
典型的客户表结构包括客户ID、客户姓名、客户电话、客户地址等字段。
6. 供应商表供应商表是存储供应商信息的表。
它记录了供应商的基本信息,如供应商ID、供应商名称、供应商地址等。
典型的供应商表结构包括供应商ID、供应商名称、供应商地址、供应商电话等字段。
7. 产品表产品表是存储产品信息的表。
它记录了产品的基本属性,如产品ID、产品名称、产品价格等。
典型的产品表结构包括产品ID、产品名称、产品价格、产品描述等字段。
8. 购物车表购物车表是存储用户购物车信息的表。
它记录了用户加入购物车的商品信息,如购物车ID、用户ID、商品ID等。
典型的购物车表结构包括购物车ID、用户ID、商品ID、加入时间等字段。
9. 支付表支付表是存储用户支付信息的表。
它记录了用户的支付方式、支付金额等信息。
典型的支付表结构包括支付ID、用户ID、支付方式、支付金额等字段。
10. 日志表日志表是存储系统日志信息的表。
oracle 系统表总结ORACLE系统表处理1.取得指定用户的所有表名:范例代码1.SELECT OWNER AS "对象所有者",OBJECT_NAME AS "表名",OBJECT_ID AS "对象编号" from dba_objects where owner = 'RAXNYB' AND OBJECT_TYPE = 'TA BLE' ORDER BY OWNER,OBJECT_TYPE;2.或3.OWNER AS "对象所有者",TABLE_NAME AS "表名" from DBA_TABLES where owner = 'RAXNYB' ORDER BY OWNER,TABLE_ NAME;2.取得指定用户的所有视图名称:范例代码1.SELECT OWNER AS "对象所有者",VIEW_NAME AS "视图名称" from DBA_VIEWS where owner = 'RAXNYB' ORDER BY OWNER,VIEW_N AME;oracle系统表查询1.用户:范例代码1.select username from dba_users;改口令范例代码1.alter user spgroup identified by spgtest;2.表空间:范例代码1.select * from dba_data_files;2.select * from dba_tablespaces;//表空间3.select tablespace_name,sum(bytes), sum(blocks) from dba_free_space group by tablespace_name;//空闲表空间4.select * from dba_data_files where tablespace_name='RBS';//表空间对应的数据文件5.select * from dba_segments where tablespace_name='INDEXS';3.数据库对象范例代码1.select * from dba_objects;2.3.CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。
4.表范例代码1.select * from dba_tables;2.3.select extent_id,bytes from dba_extents where segment_name='CUSTOMERS' and segment_type='TABLE' order by extent_id;//表使用的extent的信息。
segment_type='ROLLBACK'查看回滚段的空间分配信息4.5.select distinct table_name from user_tab_columns where column_name='SO_TYPE_ID';5.索引范例代码1.select * from dba_indexes;//索引,包括主键索引2.select * from dba_ind_columns;//索引列3.select i.index_name,i.uniqueness,c.column_name4.from user_indexes i,user_ind_columns c5.where i.index_name=c.index_name6.and i.table_name ='ACC_NBR';//联接使用6.序列范例代码1.select * from dba_sequences;7.视图范例代码1.select * from dba_views2.select * from all_views3.text字段可用于查询视图生成的脚本8.聚簇范例代码1.select * from dba_clusters9.快照范例代码1.select * from dba_snapshots快照、分区应存在相应的表空间10.同义词范例代码1.select * from dba_synonyms//if owner is PUBLIC,then the synonyms is a public synonym.//if owner is one of users,then the synonyms is a private synonym11.数据库链范例代码1.select * from dba_db_links在spbase下建数据库链:范例代码1.create database link dbl_spnew2.connect to spnew identified by spnew using 'jhhx';3.4.insert into acc_nbr@dbl_spnew select * from acc_nbr where nxx_nbr='237' and line_nbr='8888';12.触发器范例代码1.select * from dba_trigers;存储过程,函数从dba_objects查找其文本:select text from user_source where name='BOOK_SP_EXAMPLE'; 建立出错:select * from user_errorsoracle总是将存储过程,函数等软件放在SYSTEM表空间。
13.约束(1)约束是和表关联的,可在create table或alter table table_name add/drop/modify来建立、修改、删除约束.可以临时禁止约束,如:范例代码1.alter table book_example disable constraint book_example_1;2.alter table book_example enable constraint book_example_1;(2)主键和外键被称为表约束,而not null和unique之类的约束被称为列约束。
通常将主键和外键作为单独的命名约束放在字段列表下面,而列约束可放在列定义的同一行,这样更具有可读性(3)列约束可从表定义看出,即describe;表约束即主键和外键,可从dba_constraints和dba_cons_columns 查。
范例代码1.select * from user_constraints where table_name='BOOK_EXAMPLE';2.select owner,CONSTRAINT_NAME,TABLE_NAME from user_constraints where constraint_type='R' order by table_name;(4)定义约束可以无名(系统自动生成约束名)和自己定义约束名(特别是主键、外键)如:范例代码1.create table book_example (identifier number not null);2.create table book_example (identifier number constranit book_example_1 not null);14、回滚段:在所有的修改结果存入磁盘前,回滚段中保持恢复该事务所需的全部信息,必须以数据库发生的事务来相应确定其大小(DML语句才可回滚,create,drop,truncate等DDL不能回滚)。
回滚段数量=并发事务/4,但不能超过50;使每个回滚段大小足够处理一个完整的事务;范例代码1.create rollback segment r05 tablespace rbs;2.create rollback segment rbs_cvt tablespace rbs storage(initial1M next 500k);使回滚段在线范例代码1.alter rollback segment r04 online;用dba_extents,v$rollback_segs监测回滚段的大小和动态增长。
回滚段的区间信息范例代码1.select * from dba_extents where segment_type='ROLLBACK' and segment_name='RB1';回滚段的段信息,其中bytes显示目前回滚段的字节数范例代码1.select * from dba_segments where segment_type='ROLLBACK' and segment_name='RB1';为事物指定回归段范例代码1.set transaction use rollback segment rbs_cvt针对bytes可以使用回滚段回缩。
范例代码1.2.alter rollback segment rbs_cvt shrink;3.select bytes,extents,max_extents from dba_segments where segment_type='ROLLBACK' and segment_name='RBS_CVT';回滚段的当前状态信息:范例代码1.select * from dba_rollback_segs where segment_name='RB1';比多回滚段状态status,回滚段所属实例instance_num查优化值optimal范例代码1.select ,s.optsize from v$rollname n,v$rollstat s where n.usn=n;回滚段中的数据范例代码1.set transaction use rollback segment rb1;/*回滚段名*/2.select ,s.writes from v$rollname n,v$rollstat s where n.usn=n;当事务处理完毕,再次查询$rollstat,比较writes(回滚段条目字节数)差值,可确定事务的大小。