ORACLE数据库管理初始化参数

更新时间:2023-04-12 14:46:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

管理初始化参数

管理初始化参数(调优的一个重要知识点,凭什么可以对数据库进行调优呢?是因为它可以对数据库的一些参数进行修改修正)

初始化参数用于设置实例或是数据库的特征。oracle9i提供了200多个初始化参数,并且每个初始化参数都有默认值。

显示初始化参数(1) show parameter命令

如何修改参数需要说明的如果你希望修改这些初始化的参数,可以到文件D:\oracle\admin\myoral\pfile\init.ora文件中去修改比如要修改实例的名字数据库(表)的逻辑备份与恢复

逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程,逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程。

物理备份即可在数据库open的状态下进行也可在关闭数据库后进行,但是逻辑备份和恢复只能在open的状态下进行。

导出导出具体的分为:导出表,导出方案,导出数据库三种方式。

导出使用exp命令来完成的,该命令常用的选项有:

userid:用于指定执行导出操作的用户名,口令,连接字符串

tables:用于指定执行导出操作的表

owner:用于指定执行导出操作的方案

full=y:用于指定执行导出操作的数据库

inctype:用于指定执行导出操作的增量类型

rows:用于指定执行导出操作是否要导出表中的数据

file:用于指定导出文件名

导出表

1.导出自己的表exp userid=scott/tiger@myoral tables=(emp,dept) file=d:\e1.dmp

2.导出其它方案的表如果用户要导出其它方案的表,则需要dba的权限或是exp_full_database的权限,比如system就可以导出scott的表E:\oracle\ora92\bin>exp userid=system/manager@myoral tables=(scott.emp) file=d:\e2.emp 特别说明:在导入和导出的时候,要到oracle目录的bin目录下。

3. 导出表的结构exp userid=scott/tiger@accp tables=(emp) file=d:\e3.dmp rows=n

4. 使用直接导出方式exp userid=scott/tiger@accp tables=(emp) file=d:\e4.dmp direct=y 这种方式比默认的常规方式速度要快,当数据量大时,可以考虑使用这样的方法。

这时需要数据库的字符集要与客户端字符集完全一致,否则会报错...

导出数据库导出数据库是指利用export导出所有数据库中的对象及数据,要求该用户具有dba的权限或者是exp_full_database权限

增量备份(好处是第一次备份后,第二次备份就快很多了)

exp userid=system/manager@myorcl full=y inctype=complete file=d:\all.dmp

-精品-

导入介绍

导入就是使用工具import将文件中的对象和数据导入到数据库中,但是导入要使用的文件必须是export所导出的文件。与导出相似,导入也分为导入表,导入方案,导入数据库三种方式。

imp常用的选项有

userid:用于指定执行导入操作的用户名,口令,连接字符串

tables:用于指定执行导入操作的表

formuser:用于指定源用户

touser:用于指定目标用户

file:用于指定导入文件名

full=y:用于指定执行导入整个文件

inctype:用于指定执行导入操作的增量类型

rows:指定是否要导入表行(数据)

ignore:如果表存在,则只导入数据

导入表

1. 导入自己的表

imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp

2. 导入表到其它用户要求该用户具有dba的权限,或是imp_full_database

imp userid=system/tiger@myorcl tables=(emp) file=d:\xx.dmp touser=scott

3. 导入表的结构只导入表的结构而不导入数据

imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp rows=n

4. 导入数据

如果对象(如比表)已经存在可以只导入表的数据

imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp ignore=y

导入方案

导入方案是指使用

import

工具将文件中的对象和数据导入到一个或是多个方案中。如果要导入其它方案,要求该用户具有dba的权限,或者imp_full_database

1.导入自身的方案

imp userid=scott/tiger file=d:\xxx.dmp

2.导入其它方案

要求该用户具有dba的权限

imp userid=system/manager file=d:\xxx.dmp fromuser=system touser=scott

导入数据库

在默认情况下,当导入数据库时,会导入所有对象结构和数据,案例如下:

imp userid=system/manager full=y file=d:\xxx.dmp

-精品-

建立表空间

建立表空间是使用crate tablespace命令完成的,需要注意的是,一般情况下,建立表空间是特权用户或是dba来执行的,如果用其它用户来创建表空间,则用户必须要具有create tablespace的系统权限。

建立数据表空间在建立数据库后,为便于管理表,最好建立自己的表空间

create tablespace data01 datafile 'd:\test\dada01.dbf' size 20m uniform size 128k;

十三:约束

维护数据的完整性介绍介绍

数据的完整性用于确保数据库数据遵从一定的商业和逻辑规则,在oracle中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现,在这三种方法中,因为约束易于维护,并且具有最好的性能,所以作为维护数据完整性的首选。

约束约束约束用于确保数据库数据满足特定的商业规则。

在oracle中,约束包括:not null、unique,primary key,foreign key,和check五种。

not null(非空)如果在列上定义了not null,那么当插入数据时,必须为列提供数据。unique(唯一)当定义了唯一约束后,该列值是不能重复的,但是可以为null。primary key(主键)用于唯一的标示表行的数据,当定义主键约束后,该列不但不能重复而且不能为null。需要说明的是:一张表最多只能有一个主键,但是可以有多个unqiue 约束。

foreign key(外键)用于定义主表和从表之间的关系。外键约束要定义在从表上,主表则必须具有主键约束或是unique约束,当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为null。

check 用于强制行数据必须满足的条件,假定在sal列上定义了check约束,并要求sal列值在1000-2000之间如果不在1000-2000之间就会提示出错。

删除约束当不再需要某个约束时,可以删除。

alter table 表名drop constraint 约束名称;特别说明一下:在删除主键约束的时候,可能有错误,比如:alter table 表名drop primary key;

这是因为如果在两张表存在主从关系,那么在删除主表的主键约束时,必须带上cascade 选项如像:alter table 表名drop primary key cascade;

十四:Oracle索引、权限

管理索引-原理介绍介绍索引是用于加速数据存取的数据对象。合理的使用索引可以大大降低i/o次数,从而提高数据访问性能。索引有很多种我们主要介绍常用的几种:为什么添加了索引后,会加快查询速度呢?

创建索引

单列索引是基于单个列所建立的索引,比如:create index 索引名on 表名(列名);

显示索引信息

显示表的所有索引在同一张表上可以有多个索引,通过查询数据字典视图dba_indexs和user_indexs,可以显示索引信息。其中dba_indexs用于显示数据库所有的索引信息,而user_indexs用于显示当前用户的索引信息:select index_name, index_type from user_indexes where table_name = '表名';

显示索引列通过查询数据字典视图user_ind_columns,可以显示索引对应的列的信息

-精品-

select table_name, column_name from user_ind_columns where index_name = 'IND_ENAME'; 你也可以通过pl/sql developer工具查看索引信息

create session 连接数据库

create table 建表

create view 建视图

create public synonym 建同义词

create procedure 建过程、函数、包

create trigger 建触发器

create cluster 建簇

多行注释/*...*/来划分

2.标志符号的命名规范

1).当定义变量时,建议用v_作为前缀v_sal

2).当定义常量时,建议用c_作为前缀c_rate

3).当定义游标时,建议用_cursor作为后缀emp_cursor

4).当定义例外时,建议用e_作为前缀e_error

DECODE函数语法:

DECODE(条件,比较值1,返回值1

比较值2,返回值2 . . .

比较值n,返回值n

返回值(不满足条件时))

select last_name,salary,

decode( trunc(salary/2000,0),//条件

0, 0.00,//比较值1,返回值1

1, 0.09,

2, 0.20,

3, 0.30,

4, 0.40,

5, 0.42,

6, 0.44,

0.45 ) TAX_RATE

from employees

where department_id=80;

非等值查询使用BETWEEN AND 查询近似值作为连接条件的多表结果。

WHERE E.SALARY BETWEEN J.LOW AND J.HIGH

外连接查询SELECT T1.COL,T2.COL FROM WHERE T1.COL(+)=T2.COL;左外连接所有T2的T1信息。SELECT T1.COL,T2.COL FROM WHERE T1.COL=T2.COL(+);右外连接所有T1的T2信息。为了看到与连接条件不匹配的数据,就必须得用外连接。

-精品-

INSERT INTO TABLE(字段1,字段2....)VALUES(值1,值2....)

一次插入只插入一行。字符和日期值需要单引号扩起。

.7、索引:一个方案中的对象;

被ORACLE服务器用来加速对表的查询;

通过使用快速路径访问方法快速定位数据;

与表独立存放;

被ORACLE服务器使用和维护。

一定是WHERE 条件的才有可能使用索引。

手动创建索引: CREATE INDEX index_name on table_name (col_name);

考虑创建索引的情况:

*、包含了大量不同值的列;

*、包含了大量空值的列;

*、一个或者多个列经常被一起出现在WHERE 条件中或者作为连接的条件出现;*、表的数据量很大,而且对表的查询经常是得到表中数据的2%到4%(少量数据). 不应该创建索引的情况:

*、一个很小的表;

*、列很少被用于查询的条件;

*、表上的大多数查询是得到大量数据的;

*、表中的数据经常发生变动;

*、要被索引的列被作为条件表达式的一部分。

查看:user_indexes得到索引的定义和唯一性。

user_ind_columns 得到索引的名称,表名和列名。

select ic.index_name,ic.column_name,ic.column_position, ic.uniquenes

from user_indexes ix,user_ind_columns ic

where ic.index_name=ix.index_name and ic.table_name='table_name';

3.使用集合操作UNION

select employee_id,job_id from employees

union

select employee_id,job_id from job_history;

-精品-

-精品-

本文来源:https://www.bwwdw.com/article/my6l.html

Top