Oracle 学习笔记(五)

--表空间,auto: 自动管理, manual: 手动管理   create tablespace  tsp1 datafile ‘D:\ORACLE\ORADATA\O10\tsp1.dbf‘   size 2M segment space management auto;

-- 查看表空间   select tablespace_name,segment_space_management from dba_tablespaces;

-- 回退段管理   --系统回退段,存放于 system 表空间,只有system 表空间内的对象才可以使用   -- 查看回退段   select * from v$rollname;   show parameter undo ;

-- 数据回退

-- 当前系统的scn 号   select dbms_flashback.get_system_change_number() from dual;   -- 闪回   execute dbms_flashback.enable_at_system_change_number(#####);   -- 结束闪回   execute dbms_flashback.disable();   -- 闪回到指定的时间点,物理时间和数据库时间的SCN 的对照表,每5分钟采样   select to_char(time_dp,‘yyyy/mm/dd:hh24:mi:ss‘),SCN from sys.smon_scn_time;

execute dbms_flashback.enable_at_time(to_date(‘2017/9/2/24:12:22‘,   ‘yyyy/mm/dd:hh24:mi:ss‘));   --闪回---取值到游标----停止闪回----将游标中的值插入原表  declare  cursor c1 is select * from scott.e2 where empno=7369;  v_sal c1%rowtype;  begin  DBMS_FLASHBACK.ENABLE_AT_SYSTEM_CHANGE_number (13346413);  open c1;  fetch c1 into v_sal;  dbms_flashback.disable();  update scott.e2 set sal=v_sal.sal where empno=v_sal.empno;  close c1;  end;  /   -- 查看表的更改痕迹

select versions_starttime,versions_endtime,versions_xid,versions_operation, sal   from t1   versions between timestamp minvalue and maxvalue   order by versions_starttime   -- 查看 一个时间段内的更改痕迹   select versions_starttime,versions_endtime,versions_xid,versions_operation, sal   from t1   versions between timestamp to_date(‘2017/9/2/24:12:22‘,‘yyyy/mm/dd:hh24:mi:ss‘)   and maxvalue   order by versions_starttime   -- 查看原sql 语句    select undo_sql from  flashback_transaction_query where xid=‘08001100C7010000‘    -- 多次drop 后,建立同名表   flashback  table t1 to before drop  rename to t2;   -- 构造rowid   select dbms_rowid.rowid_create(1,5413,4,32,7) from dual;   --参数1: 新版本的rowid 格式,64进制,18位, 0:旧版本的rowid 格式,16进制,16位   -- 上面的rowid 代表 4号文件的,第32个块,第7行,将8位16进制转换成10进制,正好是4M,   -- 所以一个数据块的上限为 4M 个oracle 块。   -- 查看每个块中的行数,行的长度不同,块内存放的行数也不同   select dbms_rowid,rowid_block_number(rowid), block#,count(*)   from t1   group by dbms_rowid,rowid_block_number(rowid);   -- 删除指定的列    alter table t1 drop column 列名 checkpoint 1000;    --drop 过程中表的状态为 invalid,如果过程中停电,启动数据库后    alter table t1 drop  columns 列名 continue     -- 查看索引在哪个表哪个列上    select index_name,table_name,column_name from user_ind_columns order by 2,32    -- 查看索引的属性    select index_name,index_type,table_name,uniqueness from user_indexes;    -- 查看索引的内部信息    select height,blocks,br_blks,lf_blks,lf_rows,del_lf_rows from index_stats    -- height: 高度, blocks:索引总块数, br_blks: 枝干块数, lf_rows:叶子内行数    -- del_lf_rows: 叶子中被删除的行数

-- 索引的合并    alter  index 索引名  coalesce;

-- 重新索引    alter index 索引名 rebuild;    -- 查看索引的引用状态   select * from v$objcet_usage;   -- 授权   grant  create session to u1   -- 回收权限   revoke create session  from  u1;   -- 查看字符编码集   select * from v$nls_valid_values where PARAMETER=‘CHARACTERSET‘ order by 2;   -- 提取元数据   select dbms_metadata.get_ddl(‘TABLE‘,‘EMP‘) FROM DUAL;   -- 数据库连接(连接到远程的数据库)    CREATE PUBLIC DATABASE LINK dh connect to system identified by manager using ‘111‘; --一个共有的数据库连接,名称是 dh,连接到 111 所描述的数据库中的 system 用户, -- 密码为manager

-- 查看数据库连接   select * from dba_db_links   -- 关闭数据库连接   ALTER SESSION CLOSE DATABASE LINK dh;      -- 强制使用 hash 连接 -- 适用于大量数据的连接,将两个表中较小的表连接列建立一个hash表, --放入到内存中,必须有等值条件   select   /*+ use_hash(t1 t2) */ t1.* from  t1 ,t2  where t1.id=t2.id   -- 强制使用 merge 连接 -- 排序融合连接,hash 连接大部分时候都比排序融合连接性能好 -- 如果不是等值条件,即 > < >= <= ,不能使用hash 连接,使用排序连接和嵌套循环连接   select  /*+ use_merge(t1 t2) */ t1.* from  t1 ,t2  where t1.id=t2.id

-- 强制使用 nest_loop 连接, 嵌套循环连接,外部表的每一个行都要和内部表的所有行连接 -- 当表的行数较少的时候,数据库会选择这种连接方式   select  /*+ use_nl(t1 t2) */ t1.* from  t1 ,t2  where t1.id=t2.id      -- 强制使用 全表扫描而不使用主键   select  /*+ full(t1) */  * from  t1     -- 强制使用主键而不使用全表扫描   select  /*+ index(index_name) */  * from  t1       -- 强制使用并行查询,提高全表扫描效率   select  /*+ full(t1) parallel(t1,4) */  * from  t1;

时间: 2024-10-10 00:27:44

Oracle 学习笔记(五)的相关文章

Oracle学习笔记五 SQL命令(三):Group by、排序、连接查询、子查询、分页

GROUP BY和HAVING子句 GROUP BY子句 用于将信息划分为更小的组每一组行返回针对该组的单个结果 --统计每个部门的人数: Select count(*) from emp group by deptno; --根据部门分组,并统计 Select deptno, count(*) form emp group by deptno; select deptno, avg(sal) from emp group by deptno; --每个部门的平均工资 HAVING子句 用于指定

oracle 学习笔记(五)

1.集合运算: UNION运算符返回两个集合去掉重复元素后的所有记录. 例:查询属于部门10与部门20的所有员工信息. select * from emp where deptno=10 union select * from emp where deptno=20; UNIONALL 返回两个集合的所有记录,包括重复的. 例:查询工资在500~1500或在1000~2000范围的员工信息(这是两个工资级别). select * from emp where sal between 500 an

oracle学习笔记 存储及raid技术概述

oracle学习笔记 存储及raid技术概述 本课以oracle数据库所运行的环境,讲一下存储和raid技术. 一)oralce生产环境里的结构 先说一下oracle所在的环境. 有一种结构: 两个服务器.两个光纤存储交换机.两个存储, 它们通过网线相互连接在一起. 每个服务器接两个交换机, 每个交换机连两个服务器同时连两个存储, 每个存储和两个交换机有连接. 这是oracle数据库相对比较典型的正规的运行环境. 每个服务器上都装Linux和oracle数据库软件, oracle数据库建在存储上

oracle学习笔记 SQL语句执行过程剖析讲课

oracle学习笔记 SQL语句执行过程剖析讲课 这节课通过讲述一条SQL语句进入数据库 和其在数据库中的整个的执行过程 把数据库里面的体系结构串一下. 让大家再进一步了解oracle数据库里面的各个进程.存储结构以及内存结构的关联关系. 首先来讲整个体系中有客户端.实例和数据库 数据库里有三类文件 控制文件ctl.数据文件dbf.日志文件log 实例中SGA有六大池子 第一大内存区shared pool即共享池 第二大内存区buffer cache 第三块是redo log 我们主要讲上面的三

oracle学习笔记 swap

oracle学习笔记 swap 这节课老师讲了很多,虽说看起来很多都没有用,但老师讲的仔细,我们应该认真了解一下. 这节课主要内容是硬盘的工作机制,工作原理, 以一些系统性能分析工具为线,并附带讲了系统中cpu.内存的工作机制. 对以后进行orace的优化,操作系统的学习非常有帮助. 此前讲过计算机的工作机制. 程序在硬盘上,执行时首先被调入内存成为进程,cpu按照时间片循环的轮回的执行各个进程. 表面上看各个进程都在运行,实际上很多进程都被时间片阻挡在cpu之外. 从宏观上看多个进程同时在执行

Caliburn.Micro学习笔记(五)----协同IResult

Caliburn.Micro学习笔记(五)----协同IResult 今天说一下协同IResult 看一下IResult接口 /// <summary> /// Allows custom code to execute after the return of a action. /// </summary> public interface IResult { /// <summary> /// Executes the result using the specif

Oracle 学习笔记 17 -- 异常处理(PL/SQL)

程序在执行过程中出现异常是正常的,在程序的编写过程中出现异常也是不可避免的.但是要有相应的异常处理的机 制,来保证程序的正常执行.PL/SQL程序执行过程中出现的错误,称为异常.一个优秀的程序都应该能够正确处理 各种出错的情况,并尽可能的从错误中恢复.PL/SQL提供了异常处理机制. 概念: 异常处理(exception)是用来处理正常执行过程中未预料的事件,程序块的异常处理定义的错误和自定义的错误, 由于PL/SQL程序块一旦产生异常而没有指出如何处理时,程序就会异常的终止. 有三种类型的错误

oracle学习笔记之用户管理-3

用户权限机制 1.不同用户表权限的赋予 grant select on scott.emp to software; ---当前登录用户为表所有者,则表名前不用指定所属用户 2.用software登录后 select * from scott.emp; ---software才有权限查询到scott的emp表 方案(schema) 当用户创建好后,如果该用户创建了一个数据对象(如表),此时dbms会创建一个对应的方案与改用户对应,并且该方案的名称和用户名称一致. system与scott都拥有自

【Oracle学习笔记】

内容主要包含: (1)三种循环及其简化 (2)游标的使用 (3)异常处理 (4)存储过程 (5)存储函数 (6)触发器 (7)其他pl/sql操作 ---------------loop循环定义变量-------------------- declare cursor c1 is select * from emp;# rec emp%rowtype;# i numeber:=1; # v_count number;begin# select count(*) into v_count from

oracle学习笔记(二)

设置归档模式(mount状态) ALTER database ARCHIVELOG; //关闭数据库 shutdown immediate //启动数据库到mount状态 startup mount alter database archivelog; //查看归档状态 archive log list; SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 1 下一个存档日志序列