Oracle的皮毛

来源:互联网 发布:香蕉网络电视|香蕉tv 编辑:程序博客网 时间:2024/04/28 13:16

听李彪老师讲Oracle的一点笔记


set autotrace on;
SQL语句的分析、跟踪,有点像 Ctrl+L

select instance_name,status from v$instance;
列出实例名和状态

FAST_START_MTTR_TARGET=600
控制DBW0的每次写的时间

show parameters db_block_size;
数据库操作的一个块的大小

show parameters multi;
多块连读的数量

select * from v$log;
alter system switch logfile;
select * from v$log;
查看日志并且,将当前日志切换

alter database add logfile group 4
( 'D:/Oracle/mylog/loga.log','D:/Oracle/myLog/logb.log')
size 10M;
添加一个互为镜像的第四组日志文件

select * from tab;
列出当前用户可以看到的所有表和视图

alter system set log_archive_dest_1
= 'location=D:/Oracle/myLog/Oracle' scope=spfile;
alter system set log_archive_start=true scope=spfile;
alter system set log_archive_format ='primary_%s.arc'
scope=spfile;

shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
archive log list;
将数据库设置为归档模式

select * from v$tablespace;
select * from dba_data_files;
查看表空间,和所在的位置

create tablespace killkillData
Datafile 'D:/Oracle/TableSpace/killkillData.tbs' size 20M
extent management Local uniform size 512K
创建表空间

create undo tablespace undoXX
DATAFILE 'D:/Oracle/Undo/undo01.dbf' size 40M;
创建UNDO表空间,以前叫作RollBack空间

对于大量的数据更改,我们不应该一次性删除,
需要分段删除,其中一种方法是用分区表,另一种是每几十行提交一次,
换一种说法是化整为0

alter tablespace userdat offline;
alter tablespace userdat online;
将表空间挂上或者挂起

删除表空间
drop tablespace userdata
including contents and datafiles;
数据和表空间都被删除,但是实际文件还是存在的

create user yaya
identified by yaya
default tablespace killkillData
quota 30M on killkillData;
grant create session,create table to yaya;
创建用户,并且将该用户授予连接的权利

explan 和 autotrace

实现自动跟踪
@?/rdbms/admin/utlxpls.sql
grant plustrace to scott;

set autotrace traceonly explain -- 只是现实执行计划,不实际执行

create index emp_func_ename_idx on emp ( upper(ename)) -- 可以创建这样的索引,基于函数的索引

analyze table emp compute statisics; -- 分析表的结构,改变算法

oracle 的索引是排序的,也可以建反序索引

RBO 优先级最低的是Table Access Full
最高是用RowID进行索引
RBO越简单的语句越好

CBO 根据优化信息产生优先算法

全表扫描的效率取决于表内数据的稀疏程度

select table_name,num_rows,blocks from user_tables;
查看表的统计信息

整理表用 alter table emp1 move;
但是索引要重建

重建索引的脚本建设
select 'alter index '||index_name||' rebuild online;' from user_indexes;
|| 是连接字符串的操作符

SQL调整过程
高频使用的SQL
调整SQL
添加索引
更改优化器模式
添加提示
使调整持久化

update emp set sal=1000 where ename='SMITH'
update emp set sal=1200 where ename='FORD'
update emp set sal=1200     where   ename='FORD'
是不会共享的,认为都是不同的SQL
对于2、3句来说需要程序员良好的风格
可以依靠存储过程,封装语句,
里面参数将会被认为邦定参数,所以整个存储过程内部的将会被缓存,所以SQL的共用将会大大提高

 SQL调整目标
去掉不必要的大表扫描
缓存小的全表扫描
检验优化索引的使用
检验优化的连接技术

alter table scott.emp cache ;
强制使该表缓存在内存里面

 关于提示:
/*+ XXXXXXXXXXXXXXX*/ 表示提示,提示系统用户用什么算法
e.g:
select /*+ ordered */ empno , ename,dname
from emp,dept
where emp.deptno=dept.deptno
and emp.deptno=10
and dept.dname='sales';
emp 将会作为驱动表,即按照顺序驱动.

truncate table emp;
将使用的指针移到开始位置
不用提交
是 delete from emp;

use_hash( emp , dept ) 使用哈希连接

------故障排除
rman 进入 recover manager
/****************************************************/
rman
connect target sys/oracle@orcl
backup database format='D:/Oracle/Back/MyBackup';

查找所有的文件
select NAME from v$datafile
union
select NAME from v$controlfile
union
select member from v$logfile
原创粉丝点击