oracle学习笔记

2019-04-08 18:18

oracle学习笔记.doc 2002-3-7

一、改善数据库性能

1、 用explain plan 来统计检查sql 语句的性能 具体操作: 生成plan_table表

通过运行 rdbms\\admin\%utlxplain.sql

explain plan set statement_id =?statement1? into plan_table for select * from table_name ;

select statement_id, operation, options position from plan_table 注:position 是对开销得描述 operation 操作对象 option 2、用set autotrace set autotrace on set autotrace off 或

set autot on set autot off

3、 选择优化sql 语句的方法 1) 基于代价的优化 两个参数frist_rows 和 all_rows 用修改optimizer_mode 参数的方法: optimizer_mode 参数在init.ora中。

optimizer_mode 参数 还可以设置为 choose . 用修改会话的方法:

alter session set optimizer_goal = frist_rows alter session set optimizer_goal = all_rows 用修改提示的方法:

select --+frist_rows * from table_name where “条件” 或

select /*+frist_rows*/ * from table_name where “条件”

4、 以上是基于代价的优化,还有基于规则的优化已不常用 5、 使用索引改善性能 1) 索引的建立

create [unique] index index_name on table table_name (字段1,字段2 ) 注: 带unique选项表示建立唯一索引 注意: 索引有单列索引,重列索引; 主键、候选键不用建索引;

外键最好键索引;

索引最好建在大表和查询频率高的唯一值的列上; LONG型的列不能键索引; 索引不宜建的太多。 1) 索引的删除 drop index index_name ;

6、 编写共享池中已有的sql语句

用select sql_text from V$sqlarea 可查看共享池中已有的sql语句

二、调整数据库性能

1、 提供足够的内存,减少I/O 操作。

设置 shared_pool_size 、db_block_size、db_block_buffer的大小。(在init.ora中) 2、 减少磁盘竞争

1) 将数据文件和日志文件放在不同磁盘上 如 create database db_name

datafile ?c:\\oracle\\data\\ db_name01.dbf ? logfile ?d:\\ oracle\\data\\ log_name01.dbf? archivelog

2) 将索引和数据建在不同磁盘上

将索引表空间,数据表空间建在不同的磁盘上,分别基于这两个表空间建表和索引。 Create table table_name

( NO number(5) primary key, name varchar2(10) )

tablespace tablespace_in_c;

create index index_name on table_name(NO)

tablespace tablespace_in_d; 3、 调整回滚段 建回滚段:

create public rollback segment rollback_name tablespace RBS optimal to 500k;

注:回滚段建好后和表空间一样处于脱机状态,用修改表空间命令将其联机 修改回滚段:

alter rollback segment rollback_name online| offline storage …… shrink to …… ; 使用回滚段:

savepoint savepoint_7 ; rollback to savepoint_7;

4、 调整网络多线程服务器 1) 设置网络协议的进程调度个数 网络协议的进程调度个数参数 mts_dispatachers = ?tcp,5?,?ipc,5? mts_max_dispatachers = 30 修改网络协议的进程调度个数参数

alter system mts_dispatchers ?tcp,8?, ?ipc,8? , 2) 观察V$dispatacher 数据字典

select name, network, busy, idle from V$dispatacher ; 3) 设置、修改服务器进程个数 mts_servers = 5 mts_max_servers = 20

alter system mts_servers 8 ; 4) 减少检测点

log_checkpoint_interval = 1200 log_checkpoint_timeout = 0 5) 启动检测点监控进程 checkpoint_process = true

5、增加日志组文件

1) create database db_name datafile ?c:\\oracle\\data\\db_name.dbf? logfile group 1 ?c:\\oralce\\log01.dbf? logfile group 2 ?d:\\oralce\\log01.dbf? logfile group 3 ?e:\\oralce\\log01.dbf? archivelog ;

2) alter database db_name

add logfile group 4 ?f:/oracle/log4.daf? ; 3) alter database db_name drop logfile group 4 ; 三、加快数据收索速度 1、 建立索引

create [unique] index index_name

on table_name (字段1、字段2 ) tablespace tablespace_name ; 2、 若表经常被删除、修改 应删除并重建索引 3、 人工强制索引

select * /*+ index (字段1) */ from table_name 4、 建数据簇

create cluster cluster_name (id interger ) size 50 hash is id hashkey 500 ; create table table_name

( 定义子段 …… ) cluster cluster_name () 5、 并行处理

并行处理机制适用于多机处理机制,它能使用分类、连接、表查询、创建索引等操作并行处理,这对于大型表,尤其是多个大型表的处理十分有效。 Parallel_max_servers = 50 Parallel_min_servers = 5

Parallel_server_idle_time = 10 (单位是分钟) 并行度= Parallel_default_size

= 表中的行数/ Parallel_default_scansize 最大并行度 = Parallel_default_max_scan = 50

创建表时加上parallel 选项:

create table table_name ( 字段1, …… )

parallel 15

select --+parallel ( table_name, 50) from table_name ;

select --+noparallel ( table_name) from table_name ;

对索引并行处理: alter table table_name enable primary key using index parallel alter table table_name enable primary key using index noparallel

四、防止访问冲突 1、 加锁

lock table table_name | view_name

in lock_type mode [ nowait ]

其中lock_type 包括 row share , row exclusive ,share updata , share, exclusive, share row exclusive .

[2002-3-12]

在数据库中对oracle数据库对象的常用操作

一、对象: 表、视图、快照、索引、簇、序列、同义词、数据库链、存储过程、函数、触发器和包、聚集。

1、 table :

建表:

create table table_name (

field_name_1 type( length ) [not null] , …… unique ( ) primary key ( )

foreign key( ) references other_table.field on delete/updata cascade ……

) tablespace tablespace_name;

create table table_name as select * from other_table 查询

select field1, field2,…… from table_name where 条件 group by field having 条件

orader by field asc| desc 删除:

drop table table_name ; 修改:

alter table table_name

add (field_1 type [not null ], ……) alter table table_name

modify (field_1 type [not null ], …… )

insert into table_name (field1,field2,field3 ) values(val1,val2,val3);

insert into table_name select * from table2

update table_name field set field = values where ……

alter table table_name add constraints pk_name primary key (“field_name”) ;

alter table table_name drop constraints pk_name;

alter table child_table_name add constraints fk_name foreign key ( “child_field_name.field ”) references parent_table_name ( parent_table_name ) on delete cascade ;


oracle学习笔记.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:阿司匹林的合成论文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: