這裡蒐索程式師資訊,查找有用的技術資料
当前位置:首页 » 数据仓库 » oracle数据库瘦身
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracle数据库瘦身

发布时间: 2023-06-11 04:06:52

① oracle理论学习详解及各种简单操作例子怎么解决

1. 数据库的发展过程
层次模型 -->网状模型 -->关系模型 -->对象关系模型
2. 关于数据库的概念
DB:数据库(存储信息的仓库)
DBMS:数据库管理系统(用于管理数据库的工具)
RDBMS:关系型数据库管理系统
ORDBMS:对象关系型的数据库管理系统
3. Oracle数据库的主要特点
1)支持多用户、大事务量的处理
2)数据库安全性和完整性控制
3)支持分布式数据处理
4)可移植性
4.Oracle一些常见问题?
1)如果我只有一张表,为什么我还要创建数据库?
sql语言要求所有表都需放在数据库里。这项设计当然有它好的理由。SQL能控制多为用户同时访问表的行为。能够授予或撤销对整个数据库的访问权。这有时比控制每张表的权限要简单很多
2)创建库的命令的字母全是大写,一定要这样吗?
有些系统确实要求某些关键字采用大写形式。但SQL本身不区分大小写。也就是说,命令不大写也可以,但命令大写是良好的SQL编程惯例。
3)给数据库、表和列命名时有什么主意事项吗?
创建具有描述性的名称通常有不错的效果。有时候要多用几个单词来命名。所有名称都不能包含空格,所以使用下划线能够让你创建更具描述性的名称。命名时最好避免首字母大写,因为SQL不区分大小写。极有可能会搞错数据库。
4)为什么不能直接把BLOB当成所有文本值的类型?
因为这样很浪费空间。VARCHAR或CHAR只会占用特定空间。不会多于256字符。但BLOB需要很大的存储空间。随着数据库的增长,占用存储空间就是冒着耗尽硬盘空间的风险。另外,有些重要的字符串运算无法操作BLOB类型的数据。只能用于VARCHAR或CHAR。
5)为什么需要INT和DEC这类数值类型?
节省数据库存储空间和效率有关。为表的没列选择最合适的数据类型可以为表瘦身,还可以使数据操作更为快速。
5.Oracle关系数据库基础
1)主键:表中其中一列或几列的组合,其值能唯一标识表中每一行。
表中任何列都可以作为主键,但要满足如下条件:
任何两行都不具有相同的主键值
每个行都必须具有一个主键值(主键列不允许为null值)
主键列中的值不允许修改或更新
主键值不能重用(如果某行从表中删除,它的主键不能赋给以后的新行)
一般以id或uuid作为主键的名字
2)外键是什么:
在一个关系(参照表)中是主键,而另一个关系引用这个键。那么这个键在另一个关系中就是外键。
3)外建能干什么:
使两个关系(表)形成关联,外键只能引用参照表中的主键。保持数据一致性,完整性。
如图:

4)如何在数据库内表示一对一

5)如何在数据库内表示一对多

6)关系模型的完整性约束是什么?
是通过关系的某种约束条件对关系进行约束。也就是说关系的值随时间变化时应该满足一些约束条件。如年龄不能超过1000,性别必须是男或者女
7)关系模型的完整性约束能有什么?
实体完整性、参照完整性、用户自定义完整性。
实体完整性:针对基本关系而言,也就是一个二维表,主键不能为NULL
参照完整性:表之间存在关系,自然就存在关系的引用(外键),表和表之间的关系通过外键实现,外键可以为NULL或引用表的主键
用户自定义完整性:针对不同的需求定义自己的完整性约束,如不允许学生编号中出现非数字字符,性别必须是男或者女
6. Oracle自学笔记
1)数据库和表的名称不一定要大写。
2)列是存储在表中的一块数据,行是一组能够描述某个事物的列的集合。列和行构成了表。
3)创建oracle数据库。使用oracle自带的Database Configuration Assistant 来创建库
4)使用DBA身份 创建表空间。具体sql如下:
create tablespace pzw datafile 'C:/oracle/pzw.dbf' SIZE 1024M REUSE AUTOEXTEND OFF extent management local segment space
management auto;
5)删除用户命令
drop user pzw cascade;
6)删除表空间命令
DROP TABLESPACE pzw INCLUDING CONTENTS AND DATAFILES;
7 )查看表空间命令。

链接地址:查看oracle表空间的两种方式
8)创建用户。
create user pzw identified by pzw;
9)将包空间分配给用户
alter user pzw default tablespace pzw;
10)给用户授权
grant create session, create table, unlimited tablespace to pzw;
11)创建表
CREATE TABLE doughnut_list
(
doughnut_name VARCHAR(10),
doughnut_type VARCHAR(6),
doughnut_birthday DATE
);

12)删除表
DROP TABLE
doughnut_list;

13)给表中增加一列
Alter table EMP add sale number;

14)数据库插入一条数据
insert into DEPT_EMP_TABLE (DEPT_EMP_NO,emp_no,Dept_No,Joined_Date) values (009,'00002',1,to_date('2011-2-28 15:42:56','yyyy-mm-dd hh24:mi:ss'));
commit;

15)数据库修改一条数据
update emp set emp_name='张惠妹',age=20,sex='女',profession='流行歌手' where emp_no = '00002';
commit;
16)数据库删除一条数据

delete emp where emp_no = '000013';
commit;

17)查询全部数据
select * from emp;
18)创建视图
create view adress_view as select * from pzw.adress;

以下为oracle演示数据操作及练习题(对菜鸟及有用。使用scott 登陆。默认密码tiger)
1.查看演示数据的表。
select*fromtab
或者selecttable_namefromuser_tables;
2.查看表结构(plsql操作无效。使用命名提示符 可以操作)
desc dept;
3.查看员工姓名
select ENAMEfrom emp;
4.查询员工的编号和明星(sql语句不区分大小写)
select empno, enamefrom emp;
5.查询所有的字段
select*fromemp;
一般建议不使用*号,使用*号不明确,建议将相关的字段写到select语句的后面,使用*号的效率比较低
6.列出员工的编号,姓名和年薪。
select empno, ename,sal*12from emp;

select语句中可以使用运算符,以上存在一些问题,年薪的字段名称不太明确

7.将查询出来的字段显示为中文
select empnoas 员工编号, ename as 员工姓名, sal*12 as 年薪 from emp;
可以采用as命名别名,as可以省略
如:可以采用as命名别名,as可以省略
8.查询薪水等于5000的员工
select empno, ename, sal from emp where sal=5000;

如果是字符类型的数据进行比较的时候,是区分大小写的。
9.查询薪水不等于5000的员工
select empno, ename, sal from emp where sal<>5000;
10.查询工作岗位不等于manager的员工
select empno,ename,sal,job from emp where job<>
'manager';

在sql语句中如果是字符串采用单引号,引起来,不同于Java中采用双引号,如果是数值型也可以引起来,只不过是数值类型数据当成字符串来处理
11.查询薪水为1600到3000的员工(第一种方式,采用>=和<=)
select empno, ename, sal from emp where sal>=1600 and sal<=3000;
查询薪水为1600到3000的员工(第一种方式,采用between ...and...)
select empno,ename,sal,job from emp where salbetween
1600and 3000;

between ….and …,包含最大值和最小值

between ….and …,不仅仅可以应用在数值类型的数据上,还可以应用在字符数据类型上

between ….and …,对于两个参数的设定是有限制的,小的数在前,大的数在后
12.查询津贴为空的员工
select * from emp where commis null;

13.查询津贴不为空的员工
select * from emp where commis not null;
14.工作岗位为MANAGER,薪水大于2500的员工。
select empno, ename, sal from emp where job='MANAGER'and sal>2500;

and表示并且的含义,表示所有的条件必须满足
15.查询出job为manager和job为salesman的员工。
select * from emp where job='MANAGER'or job='SALESMAN';

or,只要满足条件即可,相当于或者
16.查询薪水大于1800,并且部门编号为20 或者 30的
select * from emp where sal>1800and (deptno=20or deptno=30);

17.查询出job为manager和job为salesman的员工
select * from emp where jobin('MANAGER','SALESMAN');
18.查询job不等于MANAGER并且不能与SALESMAN的员工(第一种写法)
select * from emp where job<> 'MANAGER' and job <> 'SALESMAN';

19 .查询job不等于MANAGER并且不能与SALESMAN的员工(第二种写法)

select * from emp where jobnot in('MANAGER','SALESMAN');

20.查询以M开头的所有员工
select * from emp where ename like 'M %';

21.查询以T结尾的所有员工
select * from emp where ename like '%T';

22.查询以O结尾的所有员工
select * from emp where ename like '%O%';

23.查询姓名中第一个字符为A的所有员工
select * from emp where ename like '_A%';

Like可以实现模糊查询,like支持%和下划线匹配

Like中%和下划线的差别?
%匹配任意字符出现任意次数
下划线只匹配一个任意字符出现一次

Like语句是可以应用在数值类型的数据上的,但是如果没有使用引号括起来的话,那么不能使用%和下划线。类似于等号的操作,如果使用引号括起来的话,那么可以使用%和下划线,将数值类型的数据转换为字符类型后进行处理。
24.按照薪水由小到大排序
s elect * from emporder by sal;

如果存在where子句那么order by必须放到where语句的后面
25.手动指定按照薪水由小到大排序
select * from emp order by saldesc;

26. 按照薪水和姓名排序
select * from emp order by sal desc ,ename desc;

如果采用多个字段排序,如果根据第一个字段排序重复了,会根据第二个字段排序

select * from emp order by sal asc;

26.手动指定按照薪水由大到小排序
select * from emporder by sal desc;

27.按照薪水升序(使用字段的位置来排序)
select * from emp order by 6;

不建议使用此种方式,采用数字含义不明确,程序不健壮
28.查询员工.将员工姓名全部转换成小写。
select lower(ename)from emp;

29.查询job为manager的员工
select * from emp where job=upper('manager');

30.查询姓名以M开头所有的员工
select * from emp wheresubstr(ename, 1,1)='M';

方法的第二个参数表示的是查询字符的位置,0,1都表示第一个字符,负数表示从结尾开始的位置,第三个参数表示截取字符串的长度。
31.取得员工姓名的长度
select length(ename) from emp;

32.取得工作岗位为MANAGER的所有员工
select * from emp where job=trim('MANAGER ');

trim会去首尾空格,不会去除中间的空格
33.查询1986-02-20入职的员工(第一种方法,与数据库的格式匹配上)
select * from emp where HIREDATE='20-2月 -81';

查询1982-02-20入职的员工(第二种方法,将字符串转换成date类型)
select * from emp where hiredate=to_date('1981-02-20 00:00:00', 'YYYY-MM-DD HH24:MI:SS');

to_date可以将字符串转换成日期,具体格式to_date(字符串,匹配格式)
34.查询1981- 02-30以后入职的员工,将入职日期格式为yyyy-mm-dd hh:mm:ss
select empno, ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss')from emp where hiredate>to_date('1981-02-2000:00:00', 'YYYY-MM-DD HH24:MI:SS');

35.查询员工薪水加入前分位
select empno, ename, to_char(sal, '$999,999') from emp;

36.查询薪水加入千分位和保留两位小数
select empno, ename, to_char(sal, '$999,999.00') fromemp;

将数字转换成字符串,格式

控制符

说明

9

表示一位数字

0

位数不够可以补零

$

美元符

L

本地货币符号

.

显示小数

,

显示千分位

37.将字符串转换成数值
select * from emp where sal>to_number('1,500','999,999');
38.取得员工的全部薪水,薪水+津贴
select empno, ename, sal, comm, sal+nvl(comm,0) fromemp;

39.如果job为MANAGER薪水上涨10%,如果job为SALESMAN工资上涨50%(case … when … then …end)
select empno, ename, job, sal, (casejobwhen 'MANAGER' thensal*1.1when 'SALESMAN' thensal*1.5end)as newsal from emp;

40.如果job为MANAGER薪水上涨10%,如果job为SALESMAN工资上涨50%(decode)
select empno, ename, job, sal, decode(job,'MANAGER', SAL*1.1, 'SALESMAN',sal*1.5) as newsal from emp;

41.四舍五入
select round(1234567.4567, 2) from al;

Dual是oracle提供的,主要为了方便使用,因为select的时候需要用from
42.聚合函数

count

取得记录数

sum

求和

Avg

取平均

Max

取最大的数

min

取最小的数

43.取得所有员工人数
select count(*) from emp;

Count(*)表示取得所有记录,忽略null,为null值也会取得
44.取得津贴不为null的员工数
select count(comm) from emp;

采用count(字段名称),不会取得为null的纪录
45.取得工作岗位的个数
select count(distinctjob) from emp;

Distinct可以去除重复的纪录
46.取得薪水的合计
select sum(sal) from emp;

47取得薪水的合计(sal+comm)
select sum(sal+nvl(comm, 0)) from emp;
48.取得平均薪水
select avg(sal) from emp;

49.取得最高薪水
select max(to_char(hiredate, 'yyyy-mm-dd')) from emp;

50.取得最小薪水
select min(sal) from emp;

51.取得最早入职的员工
select min(hiredate) from emp;

52.可以将这些聚合函数都放到select中一起使用
select count(*), sum(sal), avg(sal), max(sal),min(sal) from emp;

53.取得每个岗位的工资合计,要求显示岗位名称和工资合计。
select job, sum(sal) from empgroupby job;

采用group by,非聚合函数所使用的字段必须参与分组,
Group by中不能使用聚合函数
如果使用了order by,order by必须放到group by后面
54。取得每个岗位的平均工资大于2000
select job, avg(sal) from emp group by job having avg(sal) >2000;

分组函数的执行顺序:
1、 根据条件查询数据
2、 分组
3、 采用having过滤,取得正确的数据
55. 显示每个员工信息,并显示所属的部门名称
select ename ,dname from emp a ,dept b where a.deptno = b.deptno;

以上查询也称为“内连接”,指查询相等的数据
56.取得员工和所属的经理的姓名
select a.ename, b.ename from emp a, emp b wherea.mgr=b.empno;

以上称为“自连接”,只有一张表连接,具体的查询方法

57.(内连接)显示薪水大于2000的员工信息,并显示所属的部门名称
SQL99语法:
select ename,sal,dname from emp a join dept b on a.deptno = b.deptno where sal>2000;
SQL92语法
select ename,sal,dname from emp a, dept b where a.deptno=b.deptno and sal > 2000;

Sql92语法和sql99语法的区别:99语法可以做到表的连接和查询条件分离,特别是多个表进行连接的时候,会比sql92更清晰
58.(外连接)显示薪水大于2000的员工信息,并显示所属的部门名称,如果某一个部门没有员工。那么该部门也必须显示出来
select dname,ename from emp a right join dept b on a.deptno = b.deptno;
59.查询员工名称和所属经历的名称,如果没有上级经理,也要查询出来
Select e.ename, m.ename mname from emp e, emp mwhere m.empno(+) = e.mgr;
60.查询员工信息,查询哪些人是管理者,要求显示出其员工编号和员工姓名
select ename,ename from emp where empno in (select distinct mgr from emp where mgr is not null);
61.查询那些人的薪水高于员工的平均薪水,需要显示员工编号,员工姓名,薪水。
select empno, ename, sal from emp where sal>(selectavg(sal) from emp);

分析思路:首先根据文字描述找出被依赖的条件,逐次分析
62.查询各个部门的平均薪水所属的等级,需要显示部门编号,平均薪水,等级编号

select a.deptno, a.avg_sal, b.grade from (select deptno, avg(sal) avg_sal fromemp group by deptno) a, salgrade b where a.avg_sal between b.losal and b.hisal;

关键点:将子查询看作一张表
63.查询员工信息以及部门名称
Select e.empno, e.ename, e.deptno, (select dname from dept where deptno = e.deptno) as dname from emp e
64.union可以合并集合(相加)

select * from emp where job='MANAGER'
union
select* from emp where job='SALESMAN'
65.minus可以移出集合(相减)
查询部门编号为10和20的,取出薪水大于2000的。

select * from emp where deptno in(10, 20)
minus
select* from emp where sal>2000
66.rownum隐含字段
select rownum, a.* from emp a;
67.取得前5条数据
select * from emp where rownum <=5;
68.取得薪水最好的前5名

select empno, ename, sal from (select empno,ename, sal from emp order by sal desc)whererownum <=5

② 如何简化 Oracle Linux 6 上的 Oracle 数据库安装

在 Oracle Linux 上,我发现有一种非常轻松的办法可以让系统满足这些安装先决条件:首先安装一个名为 oracle-rdbms-server-11gR2-preinstall 的 RPM 软件包。此 RPM 执行一些预配置步骤,包括:

自动下载并安装 Oracle Grid Infrastructure 和 Oracle Database 11g 第 2 版 (11.2.0.3) 安装过程所需的任何额外的软件包和特定软件版本,并通过 yum 或 up2date 功能处理软件包依赖关系。
创建用户 oracle 和组 oinstall(针对 OraInventory)、dba(针对 OSDBA),供数据库安装期间使用。(出于安全目的,该用户没有默认口令,且不能远程登录)。要启用远程登录,请使用 passwd 工具设置一个口令。)
修改 /etc/sysctl.conf 中的内核参数以更改共享内存、信号、最大文件描述符数量等设置。
设置 /etc/security/limits.conf 中的软硬 shell 资源限制,如锁定内存地址空间、打开的文件数量、进程数和核心文件大小。
对于 x86_64 计算机,在内核中设置 numa=off。

请注意,oracle-rdbms-server-11gR2-preinstall 只是根据数据库安装的需要来分析现有的 /etc/sysctl.conf 和 /etc/security/limits.conf 文件并更新值。所有与数据库安装无关的预自定义设置保持不变。

oracle-rdbms-server-11gR2-preinstall RPM 软件包可通过 Oracle Unbreakable Linux Network(ULN,需要支持合同)、Oracle Linux 分发媒体或 Oracle 公共 yum 信息库获取。因此,无论系统是否在 ULN 注册访问 Oracle 补丁和支持,您均可使用 oracle-rdbms-server-11gR2-preinstall 来简化 Oracle Linux 上的数据库安装。此外,Oracle 公共 yum 信息库现在还包括了所有安全和错误勘误表,从而通过最新的安全更新和错误修复来确保系统的安全和稳定。

安装 oracle-rdbms-server-11gR2-preinstall RPM

本文其余部分将逐步介绍通过 Oracle 公共 yum 信息库在 Oracle Linux 上安装 oracle-rdbms-server-11gR2-preinstall 的过程。我首先从一个运行适用于 x86_64 的 Oracle Linux 第 6 版 Update 3 的系统开始,这个 64 位版本的 Oracle Linux 是我从 Oracle 软件交付云(需要注册或登录)下载的。首先,设置一个 yum 配置文件,让其指向正确的信息库,然后从该信息库安装 oracle-rdbms-server-11gR2-preinstall RPM。

以下是针对 Oracle 数据库安装使用 oracle-rdbms-server-11gR2-preinstall 对系统进行预配置的步骤:

作为一个授权用户(如 root)检索配置信息库位置的文件:

# cd /etc/yum.repos.d

# wget http://public-yum.oracle.com/public-yum-ol6.repo

使用文本编辑器修改该文件,将字段 enabled=0 更改为 enabled=1 以反映对应于该计算机操作系统版本的信息库。

下面是 public-yum-old6.repo 的部分内容,以粗体显示更改过的行。

[ol6_latest]

name=Oracle Linux $releasever Latest ($basearch)

baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/$basearch/

gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6

gpgcheck=1

enabled=1

[ol6_UEK_latest]

name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)

baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/latest/$basearch/

gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6

gpgcheck=1

enabled=1

因为目标系统运行的是适用于 x86_64 的 Oracle Linux 第 6 版 Update 6,所以要启用 [ol6_latest] 和 [ol6_UEK_latest] 信息库。

接下来,使用 yum install 命令安装 oracle-rdbms-server-11gR2-preinstall RPM。

清单 1 中的输出显示了安装过程如何检查依赖关系,然后下载和安装所需软件包。

# yum install oracle-rdbms-server-11gR2-preinstall

Loaded plugins:refresh-packagekit, rhnplugin, security

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package oracle-rdbms-server-11gR2-preinstall.x86_64 0:1.0-6.el6 will be installed

--> Processing Dependency:gcc-c++ for package:oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.x86_64

--> Processing Dependency:gcc for package:oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.x86_64

--> Processing Dependency:lio-devel for package:
oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.x86_64

--> Processing Dependency:libstdc++-devel for package:
oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.x86_64

--> Processing Dependency:glibc-devel for package:
oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.x86_64

--> Processing Dependency:compat-libstdc++-33 for package:
oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.x86_64

--> Processing Dependency:ksh for package:oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.x86_64

--> Processing Dependency:compat-libcap1 for package:
oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.x86_64

--> Running transaction check

---> Package compat-libcap1.x86_64 0:1.10-1 will be installed

---> Package compat-libstdc++-33.x86_64 0:3.2.3-69.el6 will be installed

---> Package gcc.x86_64 0:4.4.6-4.el6 will be installed

--> Processing Dependency:cpp = 4.4.6-4.el6 for package:gcc-4.4.6-4.el6.x86_64

--> Processing Dependency:cloog-ppl >= 0.15 for package:gcc-4.4.6-4.el6.x86_64

---> Package gcc-c++.x86_64 0:4.4.6-4.el6 will be installed

--> Processing Dependency:libmpfr.so.1()(64bit) for package:gcc-c++-4.4.6-4.el6.x86_64

---> Package glibc-devel.x86_64 0:2.12-1.80.el6_3.4 will be installed

--> Processing Dependency:glibc-headers = 2.12-1.80.el6_3.4 for package:
glibc-devel-2.12-1.80.el6_3.4.x86_64

--> Processing Dependency:glibc-headers for package:glibc-devel-2.12-1.80.el6_3.4.x86_64

---> Package ksh.x86_64 0:20100621-16.el6 will be installed

---> Package lio-devel.x86_64 0:0.3.107-10.el6 will be installed

---> Package libstdc++-devel.x86_64 0:4.4.6-4.el6 will be installed

--> Running transaction check

---> Package cloog-ppl.x86_64 0:0.15.7-1.2.el6 will be installed

--> Processing Dependency:libppl_c.so.2()(64bit) for package:cloog-ppl-0.15.7-1.2.el6.x86_64

--> Processing Dependency:libppl.so.7()(64bit) for package:cloog-ppl-0.15.7-1.2.el6.x86_64

---> Package cpp.x86_64 0:4.4.6-4.el6 will be installed

---> Package glibc-headers.x86_64 0:2.12-1.80.el6_3.4 will be installed

--> Processing Dependency:kernel-headers >= 2.2.1 for package:
glibc-headers-2.12-1.80.el6_3.4.x86_64

--> Processing Dependency:kernel-headers for package:glibc-headers-2.12-1.80.el6_3.4.x86_64

---> Package mpfr.x86_64 0:2.4.1-6.el6 will be installed

--> Running transaction check

---> Package kernel-uek-headers.x86_64 0:2.6.32-300.32.1.el6uek will be installed

---> Package ppl.x86_64 0:0.10.2-11.el6 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

Package Arch Version Repository Size

③ oracle11g数据库最新的优势有哪些

现在已经是Oracle12c了。

你要的是这个吗?

Oracle 11g比10g多了哪些新特性?
1. 11 g 扩展了 Oracle 独家具有的提供网格计算优势的功能,来提高用户服务水平、减少停机时间以及更加有效地利用 IT资源,
同时还增强全天候业务应用程序的性能、可伸缩性和安全性,利用真正应用测试(RAT)尽量降低更改的风险
2. 11 g降低了数据库升级以及其他硬件和操作系统更改的成本,显着简化了更改前后的系统测试以便您可以识别和解决问题。如:
利用 Database Replay在数据库级别轻松捕获实际的生产负载并在测试系统上重新播放,这样有效的全面测试系统更改(包括关键的并发特性)的影响。
3. SQL Performance Analyzer识别结构化查询语言 ) SQL(执行计划更改和性能回退。可以使用 SQL Tuning Advisor解决识别的问题,
方法是还原到原始的执行计划或进一步优化。利用管理自动化提高 DBA 效率
4. Oracle 数据库 11 g继续致力于显着简化和完全自动化 DBA 任务。
5.利用自学功能自动进行 SQL 优化系统全局区(SGA)和程序全局区( PGA)的内存缓存区的自动、统一调整新的 advisor用于分区、数据恢复、
流性能和空间管理针对自动数据库诊断监视器 (ADDM)的增强,能够提供 Oracle 真正应用集群 (Oracle RAC)环境中的更好的性能全局视图以及改进的性能比较分析功能。
6.利用故障诊断快速解决问题
7.故障诊断功能使客户在发生错误后捕获 Oracle
8.Support所需的数据变得极为简单。这可以加速问题的解决,减少客户重现问题的需要,尽量降低停机成本
9.通过 Oracle Data Guard快速恢复数据 Oracle Data Guard在本地和远程服务器之间协调数据库的维护和同步以便从灾难或站点故障快速恢复。
Oracle数据库11 g提供了大量显着的 Oracle Data Guard增强,包括可以在物理备用系统上运行实时查询用于报表和其他目的、
可以通过将物理备用系统暂时转换为逻辑备用系统执行联机的、滚动的数据库升级
10.支持测试环境的快照备用系统
11.物理和逻辑备用的性能都有提高。逻辑备用现在支持可扩展标记语言(XML)类型字符大型对象 (CLOB)数据类型和透明的数据加密。现在支持自动的、快速启动的故障切换以支持异步传输。
12.支持滚动升级
13.自动坏块检测和修复
14.快速镜像重新同步,该功能可以有效地重新同步存储网络连接性暂时丢失时自动存储管理镜像的存储阵列
15.自动存储管理的性能增强使得大型数据库可以更快地打开并减少 SGA 内存消耗。这些增强还允许 DBA增加存储分配单元大小以加快大型序列输入/输出 (I/O),显着增加正常运行时间
16.Oracle数据库11 g使您可以应用很多一次性数据库补丁(包括诊断补丁),而没有停机时间。新的数据恢复 advisor通过快速识别故障根本原因、为 DBA提供可用的恢复选项,
极大地减少了停机时间,在某些情况下,还通过“自我恢复”机制自动纠正问题。
17.自动编译数据库中的 PL/SQL 和 Java
18.更快的触发器,包括更加有效地调用每行触发器
19.更快的简单 SQL 操作
20.更快的 Oracle Data Guard 和 Oracle Streams 复制
21.与网络文件系统( NFS) 存储设备更快、更可靠的直接连接、更快的升级
22.大型文件更快的备份/还原更快的备份压缩
23.Oracle 数据库 11 g包括大量新的 ILM特性,例如
新的分区功能,包括 按父/子引用分区、按虚拟列分区
Oracle数据库11 g还具有带 Oracle闪回数据归档的 Total Recall,可以在选定的表中查询以前的数据,从而提供了一种简单实用的向数据中添加时间维度的方法以便于更改跟踪、 ILM、审计和合规。
24.Oracle 数据库 11g还有其他高可用性增强,包括:
Oracle闪回事务查询,提供带其他相关事务更改的流氓事务的按钮更改
具有更多可传输选项的增强的平台移植和数据移动,包括可传输分区、
模式和跨平台数据库
Oracle恢复管理器 (RMAN)支持 Windows Volume Shadow Copy
Service ( VSS )快照,从而实现与 Windows备份更紧密的集成
优化性能和可靠性
合规、法律取证以及整合数据仓库的趋势导致数据库的大小每两年就会增加两倍,这极大地影响了大型数据库的存储成本和性能、可靠性以及可管理性
Oracle 数据库 11 g使组织可以使用低成本的服务器和模块化的存储器轻松伸缩大型的事务和数据仓库系统并提供快速的全天候数据访问。
Oracle 数据库11 g提供新的创新特性以进一步提高要求极严格的环境的性能和可伸缩性。
利用 SecureFiles安全地存储您的所有数据
SecureFiles 是 Oracle用于在数据库中存储大型对象) LOB (例如图像、大型文本对象或包括 XML、医学成像以及地理空间栅格对象在内的高级数据类型)的下一代产品。
SecureFiles提供能够完全与文件系统相媲美的卓越性能。此外,它还提供高级功能,例如智能压缩、透明加密以及透明的重复删除。
通过联机事务处理压缩提高性能并尽量降低存储成本
Oracle 数据库 11 g支持联机事务处理 (OLAP)应用程序中常用的更新、插入和删除操作的数据压缩。以前的 Oracle数据库版本支持数据仓库应用
程序常用的批量数据加载操作的压缩。 Oracle 数据库 11 g OLTP表压缩通过更加高效地使用内存来缓存数据以及减少表扫描的 I/O提高了数据库性能
利用 OLTP表压缩,您可以利用最小的处理开销达到 2 到 3倍的压缩比。

④ 数据库性能优化有哪些措施

1、调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。

2、调整应用程序结构设计。这一部分也是在开发信息系统之前完成,程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构。不同的应用程序体系结构要求的数据库资源是不同的。

3、调整数据库SQL语句。应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了ORACLE数据库的性能。ORACLE公司推荐使用ORACLE语句优化器(Oracle Optimizer)和行锁管理器(row-level manager)来调整优化SQL语句。

4、调整服务器内存分配。内存分配是在信息系统运行过程中优化配置的,数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小。需要注意的是,SGA区不是越大越好,SGA区过大会占用操作系统使用的内存而引起虚拟内存的页面交换,这样反而会降低系统。

5、调整硬盘I/O,这一步是在信息系统开发之前完成的。数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O负载均衡。

6、调整操作系统参数,例如:运行在UNIX操作系统上的ORACLE数据库,可以调整UNIX数据缓冲池的大小,每个进程所能使用的内存大小等参数。

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。

在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。

例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。

(4)oracle数据库瘦身扩展阅读

数据库,简单来说是本身可视为电子化的文件柜--存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。

数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。

在经济管理的日常工作中,常常需要把某些相关的数据放进这样的"仓库",并根据管理的需要进行相应的处理。

例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。