管理表和索引

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1表的管理2目标通过这部分课程的学习,您将了解以下内容:•储存数据的几种方法•oracle常用的数据类型•区别扩展的ROWID与受限制的ROWID•数据行的构造•创建普通表和临时表•管理表内部的存储结构•重新组织,清空,删除表•在表中删除列3用户数据的存储聚簇表索引组织表普通表分区表4Oracle数据类型CHAR(N),NCHAR(N)VARCHAR2(N),NVARCHAR2(N)NUMBER(P,S)DATETIMESTAMPRAW(N)BLOB,CLOB,NCLOB,BFILELONG,LONGRAWROWID,UROWIDVARRAYTABLEREF数据类型固有的用户自定义标量型引用型收集型5ROWID格式扩展的ROWID格式OOOOOOBBBBBBFFFRRR数据对象序号关联数据文件序号所在行序号所在数据块序号BBBBBBBBFFFFRRRR数据块序号所在行序号数据文件序号..受限制的ROWID格式6数据行结构数据块行头列长度列值7创建一个表CREATETABLEhr.employees(employee_idNUMBER(6),first_nameVARCHAR2(20),last_nameVARCHAR2(25)emailVARCHAR2(25)phone_numberVARCHAR2(20)hire_dateDATEDEFAULTSYSDATEjob_idVARCHAR2(10)salaryNUMBER(8,2)commission_pctNUMBER(2,2)manager_idNUMBER(6)department_idNUMBER(4));8创建临时表•创建一全局临时表•临时表仅仅在事务执行或会话建立期间存活•表中数据不能获得DML锁•该表的DMLS不能产生重做日志文件•临时表上同样能创建索引,视图和触发器CREATEGLOBALTEMPORARYTABLEhr.employees_tempASSELECT*FROMhr.employees;9创建一个表的指导方针•将表创建在一个与回滚段表空间、临时段表空间、索引表空间分开的表空间.•使用本地管理表空间,以避免产生碎片.•通过使用设置少量的标准扩展参数策略,以降低表空间碎片10改变表的存储参数设置ALTERTABLEhr.employeesPCTFREE30PCTUSED50STORAGE(NEXT500KMINEXTENTS2MAXEXTENTS100);11手工分配表的扩展ALTERTABLEhr.employeesALLOCATEEXTENT(SIZE500KDATAFILE‘/DISK3/DATA01.DBF’);12非分区表的重新组织ALTERTABLEhr.employeesMOVETABLESPACEdata1;•将表的数据移到另外一个新的表空间,而保留原来约束,权限不变,索引需要重建•可以在新的表空间中重新组织extents13清空一个表TRUNCATETABLEhr.employees;•该动作将删除表中的所有数据并释放其所占的存储空间•该表中的索引数据同样被清除.14DROPTABLEhr.departmentCASCADECONSTRAINTS;删除一个表15删除表中一列从表中删除一列:•从每行移除该列名及该列的数据,释放所占数据块中的空间•在一个大表中删除一列将占用很长的时间ALTERTABLEhr.employeesDROPCOLUMNcommentsCASCADECONSTRAINTSCHECKPOINT1000;16使用UNUSED选项将一列标志为unused状态删除已标志为unused状态的列继续删除该列ALTERTABLEhr.employeesSETUNUSEDCOLUMNcommentsCASCADECONSTRAINTS;ALTERTABLEhr.employeesDROPUNUSEDCOLUMNSCHECKPOINT1000;ALTERTABLEhr.employeesDROPCOLUMNSCONTINUECHECKPOINT1000;17获取表的信息通过查询下面数据字典视图获取表的相关信息•DBA_TABLES•DBA_OBJECTS18总结通过这部分课程的学习,您应该已经了解:•区分扩充的ROWID与受限的ROWID•数据行的结构•创建普通表与临时表•管理表的存储结构•重新组织,清空和删除表•删除表中的列19练习这部分练习包括以下主题:•创建一个表•在一个表内标志一列为未使用状态,删除一列•手工分配extens•清空一个表•获取表的相关信息20索引的管理21目标通过这部分课程的学习,您将了解以下内容:•不同类型索引的用途•创建不同类型的索引•重新组织索引•删除索引•从数据字典中获取索引相关参数信息•监控索引的使用22索引的分类•逻辑分类–单个列或多个列组合–唯一或重复–基于函数•物理分类–分区存放或非分区存放–B-tree•正序或反序–Bitmap23B-Tree索引单元头关键字列长关键字列值ROWID根枝页索引单元24Bitmap索引Blue,10.0.3,12.8.3,1000100100010010100Green,10.0.3,12.8.3,0001010000100100000Red,10.0.3,12.8.3,0100000011000001001Yellow,10.0.3,12.8.3,0010001000001000010keystartROWIDendROWIDbitmapTableIndexBlock10Block11Block12File325比较B-Tree和Bitmap索引B-tree适合元组数目较多的列修改相关数据代价比较便宜使用OR谓词查询效率太低常用于OLTPBitmap适合元组数目较少的列修改相关数据代价比较昂贵使用OR谓词查询效率较高适用于数据仓库存储26创建常规的B-Tree索引CREATEINDEXhr.employees_last_name_idxONhr.employees(last_name)PCTFREE30STORAGE(INITIAL200KNEXT200KPCTINCREASE0MAXEXTENTS50)TABLESPACEindx;27创建索引的指导方针•平衡查询与DML代价•存放在独立的表空间•使用相同的extent大小•对应大的索引考虑使用NOLOGGING模式•索引的INITRANS参数值比相应表中的该参数值大28创建Bitmap索引使用参数CREATE_BITMAP_AREA_SIZE指定可用于Bitmap索引创建的内存总量CREATEBITMAPINDEXorders_region_id_idxONorders(region_id)PCTFREE30STORAGE(INITIAL200KNEXT200KPCTINCREASE0MAXEXTENTS50)TABLESPACEindx;29改变索引的存储参数设置ALTERINDEXemployees_last_name_idxSTORAGE(NEXT400KMAXEXTENTS100);30ALTERINDEXorders_region_id_idxALLOCATEEXTENT(SIZE200KDATAFILE‘/DISK6/indx01.dbf’);分配和收回索引所占的空间ALTERINDEXorders_id_idxDEALLOCATEUNUSED;31重建索引使用ALTERINDEX命令能:•移动索引到另一个表空间•移去已删除数据所占的空间提高表空间的利用率•将正常索引与反序索引互相转化ALTERINDEXorders_region_id_idxREBUILDTABLESPACEindx02;32在线重建索引•在线重建索引ALTERINDEXorders_id_idxREBUILDONLINE;33接合索引BeforecoalescingAftercoalescingALTERINDEXorders_id_idxCOALESCE;34检查索引的有效性ANALYZEINDEXorders_region_id_idxVALIDATESTRUCTURE;INDEX_STATS35删除索引•在大批量数据导入前先删除索引,导入后再重建•删除不经常使用的索引,当需要时再创建.•删除和重建失效的索引.DROPINDEXhr.departments_name_idx;36判断哪些索引未被使用•开始监控索引的使用•停止索引使用的监控ALTERINDEXsummit.orders_id_idxMONITORINGUSAGEALTERINDEXsummit.orders_id_idxNOMONITORINGUSAGE37获取索引信息关于索引的信息通过查询数据字典视图可以获得.•DBA_INDEXES•DBA_IND_COLUMNS•DBA_IND_EXPRESSIONS•V$OBJECT_USAGE38总结通过这部分课程的学习,您应该已经了解:•创建不同类型的索引•重新组织索引•删除索引•怎样从相关数据字典中得到索引信息•怎样开始和结束索引使用情况的监控

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功