柯南君 :Oracle 分区技术 之 如何支撑大数据操作?

本文深入探讨了Oracle的分区技术,包括范围分区、散列分区、列表分区及其组合使用,强调了分区在大数据操作中的性能提升和管理优势。通过实例分析,解释了不同分区策略的适用场景和操作方法,如分裂、合并、添加和删除分区,以及交换功能在ETL和重复记录删除中的应用。此外,还讨论了分区的维护操作和性能评估,为数据库优化提供了实践指导。
摘要由CSDN通过智能技术生成

       

        前段时间,看了罗女士( 资深技术顾问 - Oracle 中国 顾问咨询部)关于《大批量数据处理技术的演讲》视频,感觉受益良多,结合多年的知识积累,柯南君给大家分享一下:

      交流内容:     

      一、Oracle的分区技术

         (一)分区技术内容

            1. 什么是分区?

              分区就是将一个非常大的table或者index 按照某一列的值,分解为更小的,易于管理的逻辑片段---分区。将表或者索引分区不会影响SQL语句以及DML(见备注语句,就和使用非分区表一样,每个分区拥有自己的segment(见备注,因为,DDL(见备注能够将比较大的任务分解为更小的颗粒。分区表只有定义信息,只有每个存放数据的分区才有各自的segment。就好象拥有多个相同列名,列类型的一个大的视图。

  •  大数据对象(表,索引)被分成小物理段;
  •  当分区表建立时,记录基于分区字段值被存储到相应的分区;
  •  分区字段值可以修改(row movement enable);
  •  分区可以存储在不同的表空间;
  •  分区可以有不同的物理存储参数;
  •  分区可以支持IOT表,对象表,LOB字段,varrays等;
             备注:

                    ①  DML(data manipulation language): 
                          它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言;
                          

                     ② segment(data manipulation language): 

                           段(segment)是一种在数据库中消耗物理存储空间的任何实体(一个段可能存在于多个数据文件中,因为物理的数据文件
 是组成逻辑表空间的基本物理存储单位)

             2.分区的好处?

  • 性能
              - Select 和 DML操作只访问指定分区

              - 并行DML操作

              - Patition - wise Join

  • 可管理性:数据删除,数据备份
             - 历史数据清除

             - 提高备份性能

             - 指定分区的数据维护操作

  • 可用性
              - 将故障局限在分区中

              - 缩短恢复时间

  • 分区目标优先级
             - 高性能->数据维护能力->实施难度->高可用性(故障屏蔽能力)   

               ③  如何实施分区?

         

  A .  Range Partitioning(范围分区)

     【案例分析】:

           就是根据数据库表中某一字段的值的范围来划分分区,例如:

   Sql代码  收藏代码
  1. create table graderecord  
  2.   (  
  3.   sno varchar2(10),  
  4.   sname varchar2(20),  
  5.   dormitory varchar2(3),  
  6.   grade int  
  7. )  
  8. partition by range(grade)  
  9. (  
  10.   partition bujige values less than(60),      --不及格  
  11.   partition jige values less than(85),        --及格  
  12.   partition youxiu values less than(maxvalue) --优秀  
  13. )  

    备注:

         ① 分区字段:grade

         ② values less than 必须是确定值

     ③ 每个分区可以单独指定物理属性 例如:partition bujige values less than(60) tablespace data0

         ④ 说明:数据中有空值,Oracle机制会自动将其规划到maxvalue的分区中。

    

    1)插入实验数据:

Sql代码  收藏代码
  1. insert into graderecord values('511601','魁','229',92);  
  2. insert into graderecord values('511602','凯','229',62);  
  3. insert into graderecord values('511603','东','229',26);  
  4. insert into graderecord values('511604','亮','228',77);  
  5. insert into graderecord values('511605','敬','228',47);  
  6. insert into graderecord(sno,sname,dormitory) values('511606','峰','228');  
  7. insert into graderecord values('511607','明','240',90);  
  8. insert into graderecord values('511608','楠','240',100);  
  9. insert into graderecord values('511609','涛','240',67);  
  10. insert into graderecord values('511610','博','240',75);  
  11. insert into graderecord values('511611','铮','240',60);  

   2)下面查询一下全部数据,然后查询各个分区数据,代码一起写:

Java代码  收藏代码
  1. select * from graderecord;  
  2. select * from graderecord partition(bujige);  
  3. select * from graderecord partition(jige);  
  4. select * from graderecord partition(youxiu);  

   全部数据如下:

   

 

   不及格数据如下:

   

 

  及格数据如下:

    

 

    优秀数据如下:

    

    【范围分区特点】:

      ① 最早、最经典的分区算法
      ② Range分区通过对分区字段值的范围进行分区
     ③ Range分区特别适合于按时间周期进行数据的存储。日、周、月、年等。
     ④ 数据管理能力强
     ⑤ 数据迁移
    ⑥ 数据备份
    ⑦ 数据交换
    ⑧ 范围分区的数据可能不均匀
    ⑨ 范围分区与记录值相关,实施难度和可维护性相对较差

B.hash (散列分区)

       【案例分析】:
        散列分区是根据字段的hash值进行均匀分布,尽可能的实现各分区所散列的数据相等。

还是刚才那个表,只不过把范围分区改换为散列分区,语法如下(删除表之后重建):

Sql代码  收藏代码
  1. create table graderecord  
  2. (  
  3.   sno varchar2(10),  
  4.   sname varchar2(20),  
  5.   dormitory varchar2(3),  
  6.   grade int  
  7. )  
  8. partition by hash(sno)  
  9. (  
  10.   partition p1,  
  11.   partition p2,  
  12.   partition p3  
  13. );  

 

  备注:

      ① 说明:散列分区即为哈希分区,Oracle采用哈希码技术分区,具体分区如何由Oracle说的算,也可能我下一次搜索就不是这个数据了。

  

  1)    插入实验数据,与范围分区实验插入的数据相同。

     然后查询分区数据:

Sql代码  收藏代码
  1. select * from graderecord partition(p1);  
  2. select * from graderecord partition(p2);  
  3. select * from graderecord partition(p3);  

   p1分区的数据:

   

 

   p2分区的数据:

   

 

  p3分区的数据:

  

   【HASH分区特点】:

  •基于分区字段的HASH值,自动将记录插入到指定分区。
  •分区数一般是2的幂
  •易于实施
 •总体性能最佳
 •适合于静态数据
 •HASH分区适合于数据的均匀存储
 •HASH分区特别适合于PDML和partition-wise joins。
 •支持 (hash) local indexes
 •9i不支持 (hash)global indexes
 •10g 支持(hash)global indexes HASH分区
 •数据管理能力弱
 •HASH分区对数据值无法控制

c.列表分区

     【案例分析】:

     列表分区明确指定了根据某字段的某个具体值进行分区,而不是像范围分区那样根据字段的值范围来划分的。

Sql代码  收藏代码
  1. create table graderecord  
  2. (  
以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黑师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值