问题描述:
- 1:表空间是存储数据库对象(例如索引 、表)的逻辑容器。
- 2:在创建数据库对象不为其指定存储属性,则相应的表和索引会自动继承表空间的存储特性。
- 故:若需要好的索引、表的性能则需要表空间具有可以使得表性能和可维护性达到最优化的程度。
解决方法:
建议:启动本地管理和自动段空间管理ASSM特性的情况下的创建表空间。
1 -------Oracle12c 性能优化攻略:攻略1-1:创建具有最优性能的数据库
2
3 create tablespace tools
4 datafile '/u01/dbfile/O12C/tools01.dbf' size 100m;
5
6 ------- 通过下面责怪查询来验证创建了本地管理的表空间 并且使用ASSM:
7 select tablespace_name, extent_management, segment_space_management
8 from dba_tablespaces
9 where tablespace_name='TOOLS';
10
11 -------下面是一些输出示例:
12
工作原理:
本攻略中讨论2个独立的表空间特性:
1: 本地管理表空间
2:自动段空间管理ASSM
从oracle12C 开始,所有表空间都创建为本地管理的表空间。而之前版本是可以选择本地管理或者字典管理。
表空间的段空间管理属性可以设置为auto ,也可以设置为MANUAL。Oracle强烈推荐使用AUTO自动段空间管理。这允许Oracle数据库自动管理很多以前数据库管理员必须手动调整的物理空间特性。
在大多数情况下,使用自动段空间管理的表空间将会比手动管理跟高效率的处理事物。除非有经过验证的实例可以证明MANUAL更好,否则都用ASSM
在创建表空间的时候,若木有统一的盘区大小,Oracle将会自动分配盘区大小为64KB/1MB/8MB/64MB
.如果表空间中的大小是可变的,可以使用自动分配大小。可以通过 extent management local autollocate 子句来显示告诉oracle数据库自动确定盘区大小。