Fundamental I 09 Storage Structure and Relationships
来源:互联网 发布:淘宝抢红包软件被骗 编辑:程序博客网 时间:2024/05/18 01:19
逻辑结构
Oracle结构
Segment的分类
* Table
* Table partition 针对大数据量, 逻辑上这些分区表是属于一张表, 但是一个partition占用Segment
* Cluster 数据相关性, 物理上就在一块
* Index 索引, 一个index会占用1到n个Segment
* Index-organized table IOT 性能优化上用到, 可以用到不同的BLOCK_SIZE
* Index partition
* Undo Segment: 存储在Undo Disk里面, 处理回滚动作
* Temporary segment: 主要用于排序等
* LOB segment: Large Object Segment, 一个LOB 占用一个Segment, table里面存储的是指针 一般不直接村粗LOB, 存储目录更好, 可以用到不同的BLOCK_SIZE
* Nested Table: 嵌套表, 和LOB的相似, 指向另外一个资源
如果存储参数改变, 只对未分配的extent有效
有的参数不能再TS级别指定,只能在Segment指定
* Block: Oracle的Block大小是OS的2的数倍
DB_BLOCK_SIZE指定了缺省的Block大小, 在创建DB的时候被指定,不能修改,用于SYSTEM和TEMPORARY TS
对于标准的Block size , 最小为1 granule ( 4 MB or 16 MB ), 缺省为 48MB
对于非标准 Block size: 必须使用DB_nK_CACHE_SIZE 此处n的值为设置的DB_BLOCK_SIZE相同
非标准块的使用场景
* OATP: 联机事务交易系统, 一般DB_BLOCK_SIZE采用8k
* OAAP: 联机分析系统, 做分析用, 所以 DB_BLOCK_SIZE 会比较大,扩大到32k, 如果BLOCK_SIZE相同, 方便数据转移
Block内容: Header(控制信息)--> Free space --> Data 空间分配的方向是从下往上
Block的重要参数
* INITRANS: 一个transaction只占用一个事务槽, 控制并发数, 如果值为3, 可以有3个transaction同时操作该block
* MAXTRANS: 指定最大的Transaction并发数, 默认值为255
* PCTFREE (重要, 性能调优): 规定了最少的空闲空间, 其目的为了为已存在的Block的扩展, 默认是10%
* PCTUSED (重要, 性能调优): 指定了最小的使用空间, 其目的是为了维护Block, 默认是40%
PCTFREE和PCTUSED的是data block减去header之后剩余空间大小的百分比
管理Data Blocks的方式
* 自动管理: 只能为,
Automatic segment-space management只能被Local Managed tablespace 设置.
CREATE TABLESPACE ......... SEGMENT SPACE MANAGEMENT AUTO;
* 手工管理, 在Oracle 9i以前唯一能够使用的管理方式
High PCTFREE, low PCTUSED用来保存插入一次, 但是常更新的数据.
Low PCTFREE, high PCTUSED用来保存主要操作为insert和delete操作的数据.
Oracle的数据处理的算法:
HWM: High-Water Mark
FREELIST: 指针, 指向了空余的空间, 查找数据之前先在FREELIST查找, 并且HWM 里面查找,如果HWM满了就移动HWM,然后获取空间
1. 在FREELIST里面查找空间, 如果没有多余空间, 则移动HWM, 并且分配新的Block以供插入.
2. Oracle在搜索的时候, 会搜索至HWM
3. 使用Delete之后,HWM位置不变, 使用truncate之后, HWM的水位会重置, 所以在truncate以后, 查询效率更快
当Block的空闲空间小于PCTFREE, 就会把Block加到FREELIST
当Block的空闲空间大于PCTUSED, 就会把Block从FREELIST移除
---------------------------Tables & Views----------------------------
DBA_EXTENTS; --记录Extent的信息
DBA_SEGMENTS; --记录Segment信息
DBA_TABLESPACES; --
DBA_DATA_FILES; --
DBA_FREE_SPACE; --
----------------------------Command----------------------------------
CREATE TABLESPACE tbs_1 DATAFILE 'userdata_01.dbf' SIZE 10M BLOCKSIZE 8k; --创建TS, 并且设置BLOCKSIZE=8k, 创建后不能修改
SELECT TABLESPACE_NAME, BLOCK_SIZE FROM DBA_TABLESPACES; --查询TS的BLOCK_SIZE
SET AUTOTRACE ON STAT; --开启统计信息, 可以看到的内容如下:
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
23 consistent gets
0 physical reads
0 redo size
424 bytes sent via SQL*Net to client
419 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SET AUTOT OFF;
- Fundamental I 09 Storage Structure and Relationships
- Storage Structure and Relationships
- Chapter 09–Storage Structure and Relationships
- Oracle storage structure and relationships
- ORACLE-基础七(Storage Structure and Relationships)
- Fundamental I 05 Using Data Dictionary and Dynamic Performance Views
- Fundamental I 08 Maintaining Tablespaces and Data Files
- BI Concept and Fundamental
- Oacle storage structure
- Oacle storage structure
- Hierarchical Storage structure
- Oracle storage structure
- file system storage structure
- IDENTIFYING AND NON-IDENTIFYING RELATIONSHIPS
- Identifying and non-identifying relationships
- 简译 Relationships and Fetched Properties
- homography, essential and fundamental matrix
- homography, essential and fundamental matrix
- Can’t connect to local MySQL server through socket 解决办法
- testimagetest
- TF-IDF算法简述
- 黑马程序员—数组的反射
- OpenGeoDa:开源空间统计分析软件
- Fundamental I 09 Storage Structure and Relationships
- C++输入输出流总结
- struts学习笔记
- 亚马逊是神马个情况啊,你这样开发源码:Kindle Fire--释放源码啦
- c语言函数内为外部分配空间问题
- 步一步 Mac OS X 与 Windows 7 双系统共存 的“黑苹果” 电脑 安装 入门
- SQLProgress 的导出功能源代码出售 Delphi7
- 冒泡排序
- selenium remote control 实例(java code)