Oracle学习笔记-表空间,分区

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);

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值