1、Oracle实例内存结构由两部分组成SGA(系统全局区)和PGA(用户全局区)组
SGA是一块共享的内存区域,也是最大的一块内存区域;
PGA则是用户会话专有的内存区域,每个会话在服务器端都有一块专有的内存区域就是PGA。
SGA中包含:数据缓冲区缓存,日志缓冲区、共享池,可能还有大池、Java池、流池。
PGA程序全局区:包含单个用户或服务器数据和控制信息,是Oracle系统分配给一个进程的私有内存区域。其在用户进程连接到Oracle数据库并创建一个会话时,由Oracle自动分配,由参数pga_aggregate_target决定,通过 SHOW PARAMETER语句可以查询该参数信息。
2、为什么要使用表空间?
SQL Server和MySQL可以一个用户管理多个数据库,可以创建数据库项目应用,对应一个单独的表空间,便于数据管理。表空间实质对应数据库磁盘上的文件。
3、如何创建表空间?
CREATE TABLESPACE 表空间名
DATAFILE '数据文件路径名'
SIZE 文件大小
AUTOEXTEND ON NEXT 每次增量 MAXSIZE UNLIMITED
LOGGING -- 表示创建表空间的时候同时生成日志文件
-- 创建表空间
CREATE TABLESPACE my_table_space
DATAFILE 'D:\Ora\Mydata\my_table_space.dbf'
SIZE 5M;
-- 创建用户,用户的默认表空间为 my_table_space。
CREATE USER userr_test
IDENTIFIED BY my_table_space
DEFAULT TABLESPACE my_table_space;
-- 为表空间增加数据文件: 大小 10M,大小自动扩展,扩展的增量为1M,最大扩展到 50M。
ALTER TABLESPACE my_table_space
ADD DATAFILE 'D:\Ora\Mydata\my_table_space.dbf'
SIZE 10M
AUTOEXTEND ON NEXT 1M
MAXSIZE 5M;
-- 修改数据文件的大小
ALTER DATABASE DATAFILE 'D:\Ora\Mydata\my_table_space.dbf' RESIZE 25M;
-- 删除数据文件
ALTER TABLESPACE my_table_space DROP DATAFILE 'D:\Ora\Mydata\my_table_space.dbf';
4、数据库分区
分散数据,减少数据损坏的可能性;可以单独对分区进行备份和恢复;分散到不同磁盘,分散IO,节约备份时间;有利于数据库管理、提高可用性和性能。
分区的方式和种类分为:范围分区、列表分区、散列分区。
-- 1. 按范围分区range
create table stu
(
stu_no NUMBER(4),
stu_name VARCHAR2(10),
stu_class VARCHAR2(9),
grade NUMBER(4),
birthday DATE,
)
PARTITION BY RANGE(birthday)(
PARTITION stu_part1 VALUES LESS THAN(to_date('2000-12-31','yyyy-mm-dd')),
PARTITION stu_part2 VALUES LESS THAN(to_date('2005-12-31','yyyy-mm-dd'))
);
-- 2. 按列表分区list
create table stu
(
stu_no NUMBER(4),
stu_name VARCHAR2(10),
stu_class VARCHAR2(9),
grade NUMBER(4),
birthday DATE,
)
PARTITION BY list(grade)(
PARTITION stu_part1 VALUES(1,2),
PARTITION stu_part2 VALUES(3,4),
PARTITION stu_part3 VALUES(5,6)
);
-- 3. 按散列分区hash
create table stu
(
stu_no NUMBER(4),
stu_name VARCHAR2(10),
stu_class VARCHAR2(9),
grade NUMBER(4),
birthday DATE,
)
PARTITION BY hash(stu_no)(
PARTITION stu_part1,
PARTITION stu_part2,
PARTITION stu_part3
);
--查询分区
SELECT * FROM stu partition(stu_part1);