版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Oracle高级培训,Oracle体系结构,Instance,SGA,Redo LogBuffer,Shared Pool,Data DictionaryCache,Library Cache,DBWR,SMON,PMON,CKPT,LGWR,Others,Userprocess,Serverprocess,PGA,Control files,Data files,Database,DatabaseBuffer Cache,Redo Log files,Java Pool,Large Pool,Parameter file,Archived Log files,OS,Net,DISK,RAM,
2、Streams pool,Oracle体系结构(参考),Oracle 存储的逻辑结构 Segemnt extent block 存储的发展变化 文件系统与裸设备 廉价冗余磁盘阵列 ASM-Auto Storage Management,Oracle存储,Oracle 存储的逻辑结构 Segemnt extent block 存储的发展变化 文件系统与裸设备 廉价冗余磁盘阵列 ASM-Auto Storage Management,系统存储结构图,Made up of,Part of,Temporary,Index,Cache,Cluster,Rollback,Data,Segment,Loca
3、tion of,Free,Extent,Made up of,I n,Location of,Part of,Made up of,Controlling,Control- led by,Part of,Made up of,Part of,Made up of,Made up of,Part of,Made up of,Part of,Part of,Part of,LOB,Lob Index,数据库存储结构,Database,PROD,DISK1/SYS1.dbf,DISK2/ USER1.dbf,DISK3/ USER2.dbf,DISK1/ UNDO1.dbf,DISK1/ TEMP.
4、dbf,D.D.Table DataSeg,D.D.Index IndexSeg,RBSeg,S_DEPT DataSeg,S_EMP DataSeg,Temp TempSeg,1 2 1 2 1 2 1 1 2 2 1 FREE 1 1 2 2 1,EXTENTS,S_DEPT(contd) DataSeg,S_EMPFIRST_NAME Index IndexSeg,Oracle DATA BLOCKS,RBS1(contd) RBSeg,RBS2(contd) RBSeg,RBS1 RBSeg,RBS2 RBSeg,SEGMENTS,SYSTEM,USER_DATA,RBS,TEMP,T
5、ABLESPACES,DATA FILES,数据库存储结构,段的分类1,Table,Cluster,Table partition,Index,段的分类2,Index-organizedtable,Index partition,Undosegment,Temporarysegment,段的分类3,LOBsegment,Bootstrapsegment,Nested table,数据字典管理表空间中的段,表空间可以由一个或多个段组成 段无法跨越表空间,但是段可以跨越属于同一表空间的多个数据文件 每个段由一个或多个分区组成 空间管理信息包含在: 表空间 TS$ 文件FILE$ 段 SEG$ 用过
6、的子段UET$ 用户限额TSQ$ 空闲的子段FET$,DMT决定Extent的参数,决定extent的参数,initial 最初分配的空间 next 下一步分配的空间数 maxextents 最大分配的extent数 minextents 最小分配的extnet数 pctincrease 增长率,指数级增长, optimal 尽量设小,或为0(缺省为空, 仅用于回滚段) freelist,区(Extent),一个区由一组数据库块组成,区是由段分配的,分配的第一个区称初始区(initial),以后分配的区称增量区(next)。 下述情况下分配子段 段创建时 扩展时 修改时 下述情况下释放子段 删
7、除时 修改时 清空时(Truncated) 自动改变大小时 (仅对回滚段),数据字典管理与性能,空间管理引起对uet$,fet$的操作在大量extent的情况下严重影响性能 空间管理锁类型为v$lock.type = ST 你见过drop一个表需要一个星期吗?,本地管理表空间(LMT),不再使用字典表(sys.uet$,sys.fet$)来记录extent分配和使用信息 使用文件头的bitmap来记录extent信息,一个bit表示相应的位置的extent 使用统一分配的extent大小(不主张使用自动分配) 大大提高空间的分配和释放的性能,数据块(block),最小的I/O单元 由一个或多个
8、操作系统块组成 在数据库创建时设定 DB_BLOCK_SIZE是默认的块大小 9i开始支持最多5种不同大小的block(2k,4k,8k,16k,32k),数据库块的内容,Header(包含块地址、表目录、行目录、事务槽等信息),Free space,Data,参考:块内容,数据库块的结构,Block internal,数据块结构示例,数据块空间的使用,80%,80%,40%,Inserts,1,2,3,4,PCTFREE=20PCTUSED=40,行链接,行迁移,检测迁移和链接,使用ANALYZE命令检测迁移和链接 :,Statistic Total Per transaction . -
9、- - . table fetch continued row 495 .02 ,从 report.txt检测迁移和链接 :,SQL ANALYZE TABLE sales.order_hist COMPUTE STATISTICS; Table analyzed.,SQL SELECT num_rows, chain_cnt FROM dba_tables 2 WHERE table_name=ORDER_HIST; NUM_ROWS CHAIN_CNT - - 168 102,清除迁移行,1. 运行 ANALYZE TABLE . LIST CHAINED ROWS; 2. 拷贝行到另一个
10、表. 3. 从原始表中的行删除. 4. 将第2步获得的数据插回表中. 因为迁移只出现在UPDATE操作中,所以第 4步消除了迁移行.,块的存储参数和freelist,Freelist参数的设置和修改 Freelist与pctfree,pctused的关系 Pctfree的设置影响到更新和ITL Pctused的设置影响到空间的利用和IO Freelist可能导致segment header 的争用 Ops/rac 或者 segment header 争用严重可设置freelist group 1,ITL-Interested Transaction List,参考:ITL,事务基础,用户 A,
11、用户 B,Block Header,Data Block,Locked Row,临时表空间的使用,一般在内存排序空间不足使用临时段 CREATE INDEX SELECT . ORDER BY SELECT DISTINCT SELECT . GROUP BY SELECT . UNION Sort merge join Intersect Minus analyze,临时段相关的参数设置,8i 中相关参数 bitmap_merge_area_size create_bitmap_area_size hash_area_size sort_area_size 9i中相关参数 workarea_
12、size_policy = auto pga_aggregate_target Min(pga_aggregate_target*5%) ,100MB),临时表的使用,临时表通常不应该动态创建,应该先创建,然后产品数据库上只使用,分两种类型 数据只有自己可见,当事务结束的时候清除数据 SQL Create global temporary table emp_temp(eno number) on commit delete rows; 数据只有用户自己可见,当session退出的时候清除数据 SQL Create global temporary table emp_temp(eno num
13、ber) on commit preserve rows;,临时表空间的监控,根据V$sort_usage定位哪些session正在使用临时表空间,使用了多少,分别使用了什么SQL SQL desc v$sort_usage USERNAME VARCHAR2(30) USER VARCHAR2(30) SESSION_ADDR RAW(4) SESSION_NUM NUMBER SQLADDR RAW(4) SQLHASH NUMBER TABLESPACE VARCHAR2(31) CONTENTS VARCHAR2(9) SEGTYPE VARCHAR2(9) SEGFILE# NUMB
14、ER SEGBLK# NUMBER EXTENTS NUMBER BLOCKS NUMBER SEGRFNO# NUMBER,回滚段,回滚段的使用 回滚段的作用 数据读一致的问题(数据库的封锁机制) 回滚段的扩展和回缩 相关性能问题的诊断和分析 详细内容请参考回滚段探究,回滚段Oracle事务机制,用回退段保证读一致性(不读脏数据和可重复读):,1,2,3,4,5,6,Tu2,Tu1,Ts3,Ts2,Ts1,时间,事务,表customers,数据缓冲区 cid discnt c001 10 11 15,数据段:,回退段:,Tu1,Tu2,例: 有5个事务并发: Ts1,Ts2,Ts3为查询事务
15、, Tu1,Tu2为更新事务. Tu1:UPDATE customers SET discnt=discnt*1.1 WHERE cid=c001; Tu2: UPDATE customers SET discnt=15 WHERE cid=c001; 事务开始和完成时间段如右上图: 事务对回退段影响如右下图:,回滚段Oracle事务机制,用回退段保证读一致性(不读脏数据和可重复读): 事务的开始顺序和基准时间为:Ts1=0 Tu1=3 Ts2=4 Tu2=5 Ts3=6; 事务的完成顺序和基准时间为:Tu1=4 Tu2=6 Ts16 Ts26 Ts36; 数据缓冲区的内容是最新更改的结果,
16、回退段按时间顺序记录了每次更改以前的数据; 尽管Tu1和Tu2两次更改了discnt的值, 但Tu1开始之前Ts1已开始,所以在时间4结束的Tu1回退信息并不马上消失,保证Ts1从回退段中查得discnt为10,Tu2开始之前Ts2已开始,所以在时间6结束的Tu2回退信息并不马上消失,保证Ts2从回退段中查得discnt为11, Ts3基准时间是6,从缓冲区中查得discnt为15. Ts1和Ts2结束后才清除回退段信息.,索引,逻辑上 单列 / 组合索引 唯一 / 非唯一索引 物理上 分区或非分区 B 树 正常或反向键 位图,B-Tree Index 结构, King King, Blake
17、 Blake James,King Miller Turner, = rowid pointer,Adams Allen,Blake Clark Ford ,James Jones,King Martin,Miller Scott Smith,Turner Ward,Next leaf pointers,Intermediate-Index Blocks,Data block,1481 Clark 2784 Blake 1697 Ford,rowid lookup,Leaf Blocks,DML 操作对索引的影响,插入操作导致在适当的块中插入索引项 删除行只导致逻辑删除索引项,删除的行所占用的
18、空间难以用于新项,直到删除块中的所有项 PCTused 对索引没有影响,索引重组,不稳定表的索引会引起性能问题. 空的索引块进入自由列表. 即使块中只有一条记录,块仍然必须维护 可能需要重建索引.,监视索引,SQL ANALYZE INDEX acct_no_idx VALIDATE STRUCTURE; Index analyzed. SQL SELECT (DEL_LF_ROWS_LEN/LF_ROWS_LEN) * 100 2 AS wastage 3 FROM index_stats; WASTAGE - 24 如果Wastage20%就应该考虑重建! SQL ALTER INDEX
19、acct_no_idx REBUILD; Index altered.,收集索引信息,使用系统包收集 SQL Execute DBMS_STATS.GATHER_INDEX_STATS(HR,LOC_COUNTRY_IX); 创建时收集 SQL Create index hr.loc_country_ix compute statistics; 重建时收集 SQL Alter index hr.loc_country_ix rebuild compute statistics;,监视索引使用,开始监视 ALTER INDEX HR. EMP_NAME_IX MONITORING USAGE;
20、停止监控 ALTER INDEX HR. EMP_NAME_IX NOMONITORING USAGE; 查看结果 SELECT INDEX_NAME, USED FROM V$OBJECT_USAGE;,调整索引,删除不必要的索引以减低DML的额外消耗 SQL alter index HSPK_USER monitoring usage; Index altered. SQL alter index HSPK_USER nomonitoring usage; Index altered. SQL desc v$object_usage Name Null? Type - - - INDEX_
21、NAME NOT NULL VARCHAR2(30) TABLE_NAME NOT NULL VARCHAR2(30) MONITORING VARCHAR2(3) USED VARCHAR2(3) START_MONITORING VARCHAR2(19) END_MONITORING VARCHAR2(19) SQL select index_name,used from v$object_usage; INDEX_NAME USE - - HSPK_USER NO,索引行格式,每个索引行有唯一的表示 create unique index iname on tname (a,b,c) c
22、reate index iname on tname (a,b,c) Label:存储列数和锁定信息,a,b,c,rowid,label,a,b,c,rowid,label,Bitmap Indexes,Table,Index,Block 10,Block 11,Block 12,File 3,B 树索引和位图索引,B 树 适合高基数的列 更新关键字列的费用相对较低 使用OR 谓词的查询效率低 对OLTP 有用 位图 适合低基数的列 更新关键字列的费用非常昂贵 使用OR 谓词的查询效率高 对数据仓库有用,创建大索引,分配一个较大的临时表空间或者创建一个新的大尺寸的临时表空间 用ALTER USER 语句让用户使用该临时表空 为用户设置大的排序区 使用nologging/parallel,Block_size对于索引的影响,8k block size,16k block size,文件系统和裸设备,文件系统 块设备 os文件缓存 I-node linux的ext3 裸设备 字符设备 SGA DISK,裸设备,裸设备,也叫裸分区(原始分区),是一种没有经过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粗纱工岗前能力评估考核试卷含答案
- 贵金属冶炼工班组安全考核试卷含答案
- 电鸣乐器制作工岗前设备考核试卷含答案
- 铸造模具工岗前操作评估考核试卷含答案
- 化工安全员安全生产能力知识考核试卷含答案
- 起重机械装配调试工创新思维强化考核试卷含答案
- 计算机芯片级维修工岗前日常考核试卷含答案
- 石脑油预处理装置操作工复测模拟考核试卷含答案
- 井下配液工班组考核强化考核试卷含答案
- 兽用中药制剂工岗前安全技能测试考核试卷含答案
- 教师三笔字培训课件
- 河南省百师联盟2025-2026学年高一上12月联考英语试卷(含解析含听力原文及音频)
- 2025广东深圳市光明区事业单位选聘博士20人笔试备考试题及答案解析
- 租户加装充电桩免责补充合同(房东版)
- 甘肃省天水市2024-2025学年九年级上学期期末考试物理试题(含答案)
- 2026年海南卫生健康职业学院单招职业技能考试题库参考答案详解
- 法制副校长课件
- 红色大气2026马年期末汇报展示
- 2026年及未来5年市场数据中国钓具市场竞争策略及行业投资潜力预测报告
- (2025)70周岁以上老年人换长久驾照三力测试题库(含参考答案)
- 探究4工业课件2026年中考地理一轮专题复习(河北)
评论
0/150
提交评论