海量数据库及分区4——《12年资深DBA教你Oracle开发与优化——性能优化部分》
目录:
Oracle数据完整性和锁机制?索引及优化之表分析?表分析、约束及表间关系?Oracle体系结构1Oracle体系结构2?海量数据库及分区1?海量数据库及分区2?海量数据库及分区3?海量数据库及分区4?高级SQL优化(一)??高级SQL优化(二)??高级SQL优化(三) 常用优化工具?PPT和源码下载:????http://sishuok.com/forum/posts/list/6365.html配套视频课程????Oracle性能优化?http://sishuok.com/product/601?????海量数据库和高级SQL优化?http://sishuok.com/product/602??管理分区??再交换后,回到原始状态:??
参见附件脚本3??交换后:??
??子分区可以采用SUBPARTITIONS n方式,也可以采用PARTITION partition_name方式。如果不指定SUBPARTITION子句,则从父分区去继承子分区数。需要注意的是拆分时继承的属性与合并时不同,合并时继承的是表级的属性,原因是合并时有两个父分区。其中关键字values或at取决于分区的类型,即range为at,list为values参见附件14.3??视图说明视图说明DBA_PART_TABLESALL_PART_TABLESUSER_PART_TABLES分区表DBA_TAB_PARTITIONSALL_TAB_PARTITIONSUSER_TAB_PARTITIONS分区DBA_TAB_SUBPARTITIONSALL_TAB_SUBPARTITIONSUSER_TAB_SUBPARTITIONS子分区DBA_PART_KEY_COLUMNSALL_PART_KEY_COLUMNSUSER_PART_KEY_COLUMNS分区键DBA_SUBPART_KEY_COLUMNSALL_SUBPART_KEY_COLUMNSUSER_SUBPART_KEY_COLUMNS?子分区键DBA_PART_COL_STATISTICSALL_PART_COL_STATISTICSUSER_PART_COL_STATISTICS分区的列和柱状图统计信息??视图说明视图说明DBA_SUBPART_COL_STATISTICSALL_SUBPART_COL_STATISTICSUSER_SUBPART_COL_STATISTICS子分区的列和柱状图统计信息DBA_PART_HISTOGRAMSALL_PART_HISTOGRAMSUSER_PART_HISTOGRAMS分区柱状图数据DBA_SUBPART_HISTOGRAMSALL_SUBPART_HISTOGRAMSUSER_SUBPART_HISTOGRAMS子分区柱状图数据DBA_PART_INDEXESALL_PART_INDEXESUSER_PART_INDEXES分区索引??按范围分区和列表分区?1.按范围分区l大表且对数据的扫描经常按使用范围时,如日期和时间l对数据的维护需要使用滚动窗口时,如在数据仓库中,经常按月度需要装载最近3年(36个月)的数据。滚动窗口是指一般是周期性的需要装载新数据并清除旧数据的时间窗口2.列表分区l列的取值范围是离散且可以枚举时,如按地理区域分区、按流程状态分区散列分区? ?无明确的按范围或者列表方式分区时,可考虑在以下情况下使用散列分区:?l想要数据均衡分布,并可启用部分/全部分区智能连接功能时l分区键作为主要的唯一值或者值列表时,如使用序列为主键l想要数据随机均衡分布在不同的分区以便规避I/O瓶颈时?当一个列或多个列构成唯一值时,使用这些列为分区键来建立散列分区,并且将分区数尽量设置为2的幂,如2、4、8、16、32等,一般会获得比较好的性能。?1.复合范围-范围分区?l两个均能按范围分区的维度时,如两个维度的时间(如起始时间、截止时间)?2.复合范围-散列分区?l存储有大量历史数据,且这些历史数据经常要跟另外一个大表连接时。如销售历史表和客户表一期关联对比分析趋势数据时l传统意义上的散列分区数据经常需要滚动操作时,如某个系统访问的日志信息,需要统计不同客户端ip各个时期的各种记录(如访问记录次数、在线时长等)时??3.复合列表-范围分区?l一般用在第一个维度是枚举值,第二个维度是范围值时,如捐赠数额表,可以先按币种列表分区,再按金额范围分区?4.复合列表-散列分区?l通常用在第一个维度是枚举值,第二个维度无法按范围或列表分区时,如某个信用卡记录表,可以先按区域列表分区、再按卡号进行散列分区??5.复合列表-列表分区?l一般用两个维度都是不连续的离散值时,如前述信用卡账户表,可以先按区域列表分区,再按省份或账户类型(白金卡、金卡、银卡、普通卡等)列表分区?习题1.本地分区索引的分区可以增加吗,为什么?2.散列分区要减少分区数如何处理?范围分区和列表分区呢?请试着举例说明。3.假定表A基于列colA有3个范围单击分区,且建立了一个全局分区索引,表中有数据,如果要删除某个分区,有几种方法?4.本地索引分区可以删除吗,为什么?如果某个表存在全局分区索引,删除某个分区后,需要接下来执行什么操作,为什么?5.单级散列分区表与复合*-散列分区交换时,需要满足什么条件?6.举例说明复合*-散列分区中的散列子分区交换为什么只能跟非分区表进行交换。7.对分区执行移动操作的两大主要目的是什么?8.列表归纳各种分区的拆分限制条件,并举例说明其语法。9.散列分区、范围分区、*-Hash和*-List分区分别建议在什么情况下使用?10.练习本课程的分区管理操作,增强对分区管理的直观理解。??转载请注明私塾在线【?http://sishuok.com/forum/blogPost/list/0/6411.html】