oracle分区表的分区有四种类型:范围分区、散列分区、列表分区和复合分区。
创新互联公司专注于莲都企业网站建设,响应式网站,商城建设。莲都网站建设公司,为莲都等地区提供建站服务。全流程定制开发,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
特点如下:
1、范围分区
就是根据数据库表中某一字段的值的范围来划分分区。
数据中有空值,Oracle机制会自动将其规划到maxvalue的分区中。
2、散列分区
根据字段的hash值进行均匀分布,尽可能地实现各分区所散列的数据相等。
散列分区即为哈希分区,Oracle采用哈希码技术分区,具体分区如何由Oracle说的算,也可能我下一次搜索就不是这个数据了。
3、列表分区
列表分区明确指定了根据某字段的某个具体值进行分区,而不是像范围分区那样根据字段的值范围来划分的。
4、复合分区
根据范围分区后,每个分区内的数据再散列地分布在几个表空间中,这样我们就要使用复合分区。复合分区是先使用范围分区,然后在每个分区同再使用散列分区的一种分区方法。
比如将part_date的记录按时间分区,然后每个分区中的数据分三个子分区,将数据散列地存储在三个指定的表空间中。
扩展资料:
分区的恢复方法:
如果数据库运行在archive 模式下,那么一旦数据库损坏则可以通过冷备份(热备份)和归档备份将数据库恢复到断点状态。
数据库控制文件恢复(假设所有控制文件均被破坏):
数据库基于文件系统: 利用操作系统的tar、cp等命令即可。
数据库基于裸设备:dd if=$ORACLE_BASE/con.bak of=/dev/rdrd/drd1 seek=12
参考资料来源:百度百科-oracle数据库
复制B表:
insert into b(城市, 邮编) select distinct 城市, 邮编 from a.
复制C表:
insert into c(帐号,名字,日期) select distinct 帐号,名字,日期 from a.
不用分割表,采用表分区就可以了。
一般数据库量和时间成线性增长关系的数据表一般都要采用分区或者分表的方式来优化数据库。但从sql server 2005 ,0racle8以后都支持了表分区,所以就不要用分割表的形式来优化了,直接采用分区就可以了,同时可以采用不同的分区使用不同的文件组才优化io读写效率。
Oracle分区:
Sql server分区:
有很多种方法可以做分区表转换,常见的有:
1、CTAS,在建分区表时就把源表数据插进去
2、建分区表,从源表导出,再导入分区表,10g可以用数据泵
3、在线重定义,不影响业务,但速度慢些
2亿数据如果按平均行长70也就是十几g,不会很慢,只要存储不太差,估计个把小时怎么也完事了。在线重定义比较慢,但一晚上也没问题,30g的搞过6,7个小时。
用hibernate估计没戏,但你可以使用spring中的JdbcTemplate,直接写sql。
可以先将第一次结果放到一个内存表,然后第二次查询就从内存表中查询。不过,如果有DBA帮你规划索引,索引建得好,一般不用这么干。
内存表的创建可参考