ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

ORACLE之分区表的创建

2021-03-05 09:58:42  阅读:242  来源: 互联网

标签:nwom -- 创建 PARAM 分区表 LTE ORACLE 5G CHECK


什么是分区表?为什么要用分区表?如何创建分区表?

如果你的数据库中某一个表中的数据满足以下几个条件,那么你就要考虑创建分区表了。
1、数据库中某个表中的数据很多。很多是什么概念?一万条?两万条?还是十万条、一百万条?这个,我觉得是仁者见仁、智者见智的问题。当然数据表中的数据多到查询时明显感觉到数据很慢了,那么,你就可以考虑使区用分表了。如果非要我说一个数值的话,我认为是100万条。

2、但是,数据多了并不是创建分区表的惟一条件,哪怕你有一千万条记录,但是这一千万条记录都是常用的记录,那么最好也不要使用分区表,说不定会得不偿失。只有你的数据是分段的数据,那么才要考虑到是否需要使用分区表。

3、什么叫数据是分段的?这个说法虽然很不专业,但很好理解。比如说,你的数据是以年为分隔的,对于今年的数据而言,你常进行的操作是添加、修改、删除和查询,而对于往年的数据而言,你几乎不需要操作,或者你的操作往往只限于查询,那么恭喜你,你可以使用分区表。换名话说,你对数据的操作往往只涉及到一部分数据而不是所有数据的话,那么你就可以考虑什么分区表了。

那么,什么是分区表呢?
简单一点说,分区表就是将一个大表分成若干个小表。假设,你有一个销售记录表,记录着每个每个商场的销售情况,那么你就可以把这个销售记录表按时间分成几个小表,例如说5个小表吧。2009年以前的记录使用一个表,2010年的记录使用一个表,2011年的记录使用一个表,2012年的记录使用一个表,2012年以后的记录使用一个表。那么,你想查询哪个年份的记录,就可以去相对应的表里查询,由于每个表中的记录数少了,查询起来时间自然也会减少。
但将一个大表分成几个小表的处理方式,会给程序员增加编程上的难度。以添加记录为例,以上5个表是独立的5个表,在不同时间添加记录的时候,程序员要使用不同的SQL语句,例如在2011年添加记录时,程序员要将记录添加到2011年那个表里;在2012年添加记录时,程序员要将记录添加到2012年的那个表里。这样,程序员的工作量会增加,出错的可能性也会增加。

使用分区表就可以很好的解决以上问题。分区表可以从物理上将一个大表分成几个小表,但是从逻辑上来看,还是一个大表。
接着上面的例子,分区表可以将一个销售记录表分成五个物理上的小表,但是对于程序员而言,他所面对的依然是一个大表,无论是2010年添加记录还是2012年添加记录,对于程序员而言是不需要考虑的,他只要将记录插入到销售记录表——这个逻辑中的大表里就行了。SQL Server会自动地将它放在它应该呆在的那个物理上的小表里。
同样,对于查询而言,程序员也只需要设置好查询条件,OK,SQL Server会自动将去相应的表里查询,不用管太多事了。

根据年: INTERVAL(NUMTOYMINTERVAL(1,‘YEAR’))
根据月: INTERVAL(NUMTOYMINTERVAL(1,‘MONTH’))
根据天: INTERVAL(NUMTODSINTERVAL(1,‘DAY’))
根据时分秒: NUMTODSINTERVAL( n, { ‘DAY’|‘HOUR’|‘MINUTE’|‘SECOND’})

数据仅供参考

create table nwom.LTE_PARAM_CHEK_5G(
start_time date,
time_stamp date,          --时间戳
MinimumRxLevel varchar2(128),   --最低接收电平
NonIntraFreqMeassrpThld varchar2(128),  --非同频测量RSRP触发门限
ServFreqLowPriRsrpReselhd varchar2(128), --服务频点低优先级RSRP重选门限
EutranFreqLowPriReselThld varchar2(128), --E-UTRAN频点低优先级重选门限
NMinimumRxLevel varchar2(128),     --NMinimumRxLevel最低接收电平
EUTRAN_HO_SWITCH varchar2(128), --切换方式开关-切换
EUTRAN_REDIRECT_SWITCH varchar2(128), --切换方式开关-重定向
InterRatHoA1RsrpThld varchar2(128),  --异系统切换A1 RSRP门限
InterRatHoA2RsrpThld varchar2(128),  --异系统切换A2 RSRP门限
CovHoToEutranBlndA2Thld varchar2(128), --基于覆盖的切换至E-UTRAN盲A2 RSRP门限
CovHoToEutranBRsrpThld1 varchar2(128),--基于覆盖的切换至E-UTRAN B2 RSRP门限1
CovBasedHoB1RsrpThld varchar2(128),  --基于覆盖的切换B1 RSRP门限
NrHoSwitch varchar2(128), --NR切换开关
NrRedirectSwtch varchar2(128),  --NR重定向开关
Sib24Switch varchar2(128),  --SIB24开关
ServBaseNrHoSwitch varchar2(128), --基于业务的E-UTRAN切换/重定向至NR开关
CoverageScenario varchar2(128),--8天线覆盖场景
NrDuCellDrxAlgSwitch varchar2(128), --CDRX开关
PsclA2RsrpThld varchar2(128),--删除SCGA2
B1ThresholdDCNR varchar2(128) --添加门限

) tablespace cm
partition by range (START_TIME)
(
  partition P_1D_20210302 values less than (TO_DATE(' 2021-03-18 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    tablespace CM)

create unique index nwom.LTE_PARAM_CHECK_5G_UIDX on nwom.LTE_PARAM_CHEK_5G(START_TIME,dn_cu,dn_du) tablespace cm local


COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.MinimumRxLevel  IS             '最低接收电平'                  
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.NonIntraFreqMeasRsrpThld  IS   '非同频测量RSRP触发门限'        
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.ServFreqLowPriRsrpReselThd  IS '服务频点低优先级RSRP重选门限'        
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.EutranFreqLowPriReselThld  IS  'E-UTRAN频点低优先级重选门限'     
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.NMinimumRxLevel  IS             'N最低接收电平'                  
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.EUTRAN_HO_SWITCH  IS           '切换方式开关-切换'               
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.EUTRAN_REDIRECT_SWITCH  IS     '切换方式开关-重定向'              
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.InterRatHoA1RsrpThld  IS       '异系统切换A1 RSRP门限'          
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.InterRatHoA2RsrpThld  IS       '异系统切换A2 RSRP门限'          
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.CovHoToEutranBlindA2Thld  IS   '基于覆盖的切换至E-UTRAN盲A2 RSRP门'
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.CovHoToEutranB2RsrpThld1  IS   '基于覆盖的切换至E-UTRAN B2 RSRP门'
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.CovBasedHoB1RsrpThld  IS       '基于覆盖的切换B1 RSRP门限'     
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.NrHoSwitch   IS                 'NR切换开关'                  
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.NrRedirectSwitch   IS           'NR重定向开关'                 
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.Sib24Switch   IS                'SIB24开关'                 
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.ServBasedNrHoSwitch  IS        '基于业务的E-UTRAN切换/重定向至NR开关' 
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.CoverageScenario    IS           '8天线覆盖场景'                 
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.NrDuCellDrxAlgoSwitch  IS      'CDRX开关'                  
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.PscellA2RsrpThld   IS           '删除SCGA2'                 
COMMENT ON COLUMN nwom.LTE_PARAM_CHECK_5G.B1ThresholdENDCNR   IS          '添加门限'

(1)OPERATION_TIME是分区键,每一个月会自动创建一个分区,分区键不允许为null。

(2)alter table table_name enable row movement; 是指允许分区表的分区键是可更新,当某一行更新时,如果更新的是分区列,并且更新后的列值不属于原来的这个分区,如果开启了这个选项,就会把这行从这个分区中delete掉,并加到更新后所属的分区,此时就会发生rowid的改变。相当于一个隐式的delete+insert,但是不会触发insert/delete触发器。如果没有开启这个选项,就会在更新时报错。

标签:nwom,--,创建,PARAM,分区表,LTE,ORACLE,5G,CHECK
来源: https://blog.csdn.net/Liamcsl/article/details/114371737

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有