成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle分區(qū)數(shù)據(jù)問(wèn)題的分析和修復(fù)

數(shù)據(jù)庫(kù) Oracle
一般的分區(qū)表都是Range分區(qū),基本就是數(shù)值范圍或者是日期來(lái)做范圍分區(qū),這個(gè)問(wèn)題該怎么理解呢,如果按照時(shí)間分區(qū),那么另外一個(gè)SQL插入也應(yīng)該失敗才對(duì)。

今天根據(jù)同事的反饋,處理了一個(gè)分區(qū)表的問(wèn)題,也讓我對(duì)Oracle的分區(qū)表功能有了進(jìn)一步的理解。

首先根據(jù)開(kāi)發(fā)同事的反饋,他們?cè)诔绦蚺坎迦胍徊糠謹(jǐn)?shù)據(jù)的時(shí)候,總是會(huì)有一部分請(qǐng)求執(zhí)行失敗,而查看日志就是ORA-14400的錯(cuò)誤,對(duì)于這類問(wèn)題,我有一個(gè)很直觀的感覺(jué),分區(qū)有問(wèn)題。

  1. INSERT INTO DY_USER_ANALYSIS_MIN(ID,STAT_TIME,GAME_TYPE,ZONE_ID,GROUP_ID,ONLINE_5CNT) 
  2.     VALUES(100,to_date('2017-07-12 17:40:00','yyyy-mm-dd HH24:mi:ss'),'pz',to_number(-1),to_number(-1),to_number(0)); 
  3. INSERT INTO DY_USER_ANALYSIS_MIN(ID,STAT_TIME,GAME_TYPE,ZONE_ID,GROUP_ID,ONLINE_5CNT) 
  4.             * 
  5. ERROR at line 1: 
  6. ORA-14400: inserted partition key does not map to any partition 

而如果把‘pz’修改為另外一個(gè)字符串'dhsh'就沒(méi)問(wèn)題。

所以這樣一個(gè)ORA問(wèn)題,通過(guò)初始信息我得到一個(gè)基本的推論,那就是沒(méi)有符合條件的分區(qū)了。而如果仔細(xì)分析,會(huì)發(fā)現(xiàn)這個(gè)問(wèn)題似乎有些蹊蹺。

一般的分區(qū)表都是Range分區(qū),基本就是數(shù)值范圍或者是日期來(lái)做范圍分區(qū),這個(gè)問(wèn)題該怎么理解呢,如果按照時(shí)間分區(qū),那么另外一個(gè)SQL插入也應(yīng)該失敗才對(duì)。

所以帶著疑惑,我查看了分區(qū)的情況,發(fā)現(xiàn)這個(gè)表竟然有默認(rèn)鍵值maxvlue的分區(qū),所以如果說(shuō)指定的Range分區(qū)不存在,似乎有些說(shuō)不通。

這個(gè)問(wèn)題該如果解決呢,一個(gè)直觀的地方就是查看表的DDL,dbms_metadata.get_ddl即可得到。

得到的DDL一看,我就有些懵了,開(kāi)發(fā)同學(xué)怎么知道這個(gè)list分區(qū),竟然已經(jīng)用上了這個(gè)還算高級(jí)的特性吧,就是Range-list分區(qū)。

  1. PARTITION BY RANGE ("STAT_TIME"
  2.   SUBPARTITION BY LIST ("GAME_TYPE"
  3.   SUBPARTITION TEMPLATE ( 
  4.     SUBPARTITION "SP_ABC" values ( 'abc' ) 
  5.   TABLESPACE "TEST_DATA" , 
  6. 。。。 
  7.     SUBPARTITION "SP_OTHER" values ( 'xjzj''hij' 
  8. )  TABLESPACE "TEST_DATA"  ) 
  9.  (PARTITION "P_OLD"  VALUES LESS THAN (TO_DATE(' 2015-01-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) 

對(duì)于這類問(wèn)題,雖然還是有些陌生,但是還是有一些分區(qū)表的底子的,所以分析起來(lái)也不會(huì)有太大的偏差。

按照DDL的格式,我們是要想修改template的子分區(qū)模板規(guī)則。

  1. alter table TLSTAT_NEWBG.DY_USER_ANALYSIS_MIN  
  2. set SUBPARTITION TEMPLATE ( 
  3.     SUBPARTITION "SP_ABC" values ( 'abc' ) 
  4.   TABLESPACE "TEST_DATA" , 
  5.     。。。 
  6.     SUBPARTITION "SP_OTHER" values ( 'xjzj''hij','pz’) 
  7.   TABLESPACE "TEST_DATA"  ) 

按照這種方式修改模板就沒(méi)有問(wèn)題了,然后繼續(xù)嘗試插入數(shù)據(jù),發(fā)現(xiàn)還是同樣的錯(cuò)誤。這個(gè)時(shí)候是哪里的問(wèn)題了呢。

根據(jù)錯(cuò)誤反復(fù)排查,還是指向了分區(qū)的定義,那么我們看看其中一個(gè)分區(qū)的情況。

  1. (PARTITION "P_OLD"  VALUES LESS THAN (TO_DATE(' 2015-01-01 00:00:00''SYYYY-MM-DD HH24:MI:SS', 'NL 
  2. _CALENDAR=GREGORIAN'))  
  3.  TABLESPACE "TEST_DATA" 
  4. ( SUBPARTITION "P_OLD_SP_ABC"  VALUES ('abc'
  5.  TABLESPACE "TEST_DATA"
  6. 。。。 
  7.  SUBPARTITION "P_OLD_SP_OTHER"  VALUES ('xjzj', hij', 'pz') 
  8.  TABLESPACE "TEST_DATA") , 

所以按照分區(qū)的定義,里面還是少了這個(gè)subpartition的數(shù)值范圍信息。

如果想重新生成一個(gè)新的subpartition可以使用如下的方式:

  1. ALTER TABLE TLSTAT_NEWBG.DY_USER_ANALYSIS_MIN MODIFY PARTITION P_OLD add SUBPARTITION P_OLD_SP_OTHER_pz VALUES ('pz'); 

如果想生成默認(rèn)的subpartition名稱可以使用如下的方式:

  1. ALTER TABLE TLSTAT_NEWBG.DY_USER_ANALYSIS_MIN MODIFY PARTITION P2017_Q2 add SUBPARTITION VALUES ('pz'); 

這個(gè)時(shí)候的subpartition的信息,我摘錄出一個(gè)來(lái)簡(jiǎn)單看看。

  1. ( SUBPARTITION "P2017_Q3_SP_ABC"  VALUES ('abc'
  2.  TABLESPACE "TEST_DATA"
  3. 。。。 
  4.  SUBPARTITION "P2017_Q3_SP_OTHER"  VALUES ('xjzj''hij')    TABLESPACE "TEST_DATA"
  5.  SUBPARTITION "SYS_SUBP22"  VALUES ('pz'
  6.  TABLESPACE "TEST_DATA") , 

如果依舊覺(jué)得不滿意,我們來(lái)使用merge subpartitions的方式,當(dāng)然這個(gè)操作還是會(huì)有全局鎖的,會(huì)把兩個(gè)分區(qū)整合為一個(gè)。

  1. ALTER TABLE TLSTAT_NEWBG.DY_USER_ANALYSIS_MIN MERGE SUBPARTITIONS P2017_Q2_SP_OTHER,SYS_SUBP21 INTO SUBPARTITION P2017_Q2_SP_OTHER; 

 

責(zé)任編輯:武曉燕 來(lái)源: Linux社區(qū)
相關(guān)推薦

2023-04-25 18:54:13

數(shù)據(jù)數(shù)據(jù)丟失

2021-12-06 08:31:18

Oracle數(shù)據(jù)庫(kù)后端開(kāi)發(fā)

2018-03-09 16:27:50

數(shù)據(jù)庫(kù)Oracle同步問(wèn)題

2010-04-19 13:43:38

Oracle分析函數(shù)

2020-09-25 08:13:48

MySQL

2009-03-06 16:21:59

LinuxTestdisk修復(fù)軟件

2009-05-19 14:34:52

Oraclehash優(yōu)化

2015-09-21 09:10:36

排查修復(fù)Windows 10

2010-04-16 14:48:27

Oracle Spat

2021-12-27 09:15:16

Oracle數(shù)據(jù)庫(kù)后端開(kāi)發(fā)

2010-04-23 15:58:20

Oracle用戶

2023-08-28 10:42:22

數(shù)據(jù)庫(kù)Oracle

2024-10-16 08:23:15

大型語(yǔ)言模型LLM機(jī)器學(xué)習(xí)

2014-06-17 15:20:09

Wi-FiiPadiPhone

2010-04-19 14:23:34

Oracle增加表分區(qū)

2019-05-08 08:00:49

增強(qiáng)分析數(shù)據(jù)科學(xué)分析技術(shù)

2011-08-01 18:42:40

分區(qū)維度物化視圖

2009-02-01 13:33:13

Oracle數(shù)據(jù)庫(kù)配置

2011-05-18 11:08:34

oracleupdate

2010-04-16 12:57:20

Spatial數(shù)據(jù)加密
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 在线视频成人 | 91爱啪啪 | 日本成人福利视频 | 大香网伊人 | 久久久久九九九女人毛片 | 久久国内精品 | 97视频在线观看网站 | 福利网址 | 久久精品国产免费 | 99看片网| 成人国产精品入口免费视频 | 国产精品一区一区三区 | 日日日干干干 | 在线观看视频你懂得 | 97精品超碰一区二区三区 | 精品欧美一区二区精品久久久 | 精品一区二区久久久久久久网精 | 五月免费视频 | 91激情视频 | 久久精品国产亚洲夜色av网站 | 久久99精品久久久久久 | 精品久久影院 | 九色porny自拍视频 | 国产高清一二三区 | 亚洲第一色av | 国产高清精品一区二区三区 | 欧美成人免费在线视频 | 成人二区 | 久久伊| www.4567| 91久久精品一区二区三区 | 国产精品毛片av | 久草综合在线 | 亚洲一区国产精品 | 亚洲精视频| 日韩av免费在线观看 | 国产精品久久久久久久久免费软件 | 亚洲国产成人精品女人久久久 | 成人免费视频网站在线看 | 精品入口麻豆88视频 | 亚洲精品久久久一区二区三区 |