Oracle中數(shù)據(jù)冗余稼跳、分區(qū)表

oracle中隨機(jī)取1條或N條(據(jù)說(shuō)效率更高)
select * from table1 sample(10) where rownum <= 10
--其中sample(10) 含義為檢索表中的10%數(shù)據(jù)


一鸟雏、數(shù)據(jù)冗余

**
**
關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)冗余主要是指關(guān)系數(shù)據(jù)庫(kù)中同一信息數(shù)據(jù)的重復(fù)存貯兽叮。

關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)冗余形成的原因:表的重復(fù)爽茴、屬性的重復(fù)厨姚、元組的重復(fù)吕朵、屬性值的重復(fù)猎醇。有的數(shù)據(jù)冗余用于數(shù)據(jù)間建立聯(lián)系、數(shù)據(jù)安全或?yàn)榱藬?shù)據(jù)使用的便利努溃,是必需的數(shù)據(jù)冗余硫嘶,而其余的數(shù)據(jù)冗余為非必需的數(shù)據(jù)冗余應(yīng)盡量予以消除。

數(shù)據(jù)冗余容易產(chǎn)生數(shù)據(jù)的不一致性梧税,同時(shí)浪費(fèi)了寶貴的資源沦疾,應(yīng)盡量減少。但關(guān)系數(shù)據(jù)庫(kù)中為實(shí)現(xiàn)一些功能有些數(shù)據(jù)冗余是必需的第队。必需的數(shù)據(jù)冗余主要用于以下用途:
(1)數(shù)據(jù)間建立聯(lián)系哮塞,如兩表間通過(guò)共同屬性建立聯(lián)系;
(2)數(shù)據(jù)恢復(fù)凳谦,如建立備份文件以備正式文件被破壞時(shí)恢復(fù)忆畅;
(3)數(shù)據(jù)核查,如設(shè)立數(shù)據(jù)校驗(yàn)位可以檢查數(shù)據(jù)在存貯尸执、傳輸?shù)冗^(guò)程中的改變家凯;
(4)數(shù)據(jù)使用的便利,如為了查看數(shù)據(jù)的直觀如失,使用數(shù)據(jù)的方便肆饶、高效。


二岖常、分區(qū)表

**
**
(1) 表空間及分區(qū)表的概念:  
表空間是一個(gè)或多個(gè)數(shù)據(jù)文件的集合驯镊,所有的數(shù)據(jù)對(duì)象都存放在指定的表空間中,但主要存放的是表竭鞍, 所以稱作表空間板惑。

分區(qū)表: 當(dāng)表中的數(shù)據(jù)量不斷增大,查詢數(shù)據(jù)的速度就會(huì)變慢偎快,應(yīng)用程序的性能就會(huì)下降冯乘,這時(shí)就應(yīng)該考慮對(duì)表進(jìn)行分區(qū)。表進(jìn)行分區(qū)后晒夹,邏輯上表仍然是一張完整的表裆馒,只是將表中的數(shù)據(jù)在物理上存放到多個(gè)“表空間”(物理文件上)姊氓,這樣查詢數(shù)據(jù)時(shí),不至于每次都掃描整張表喷好,而只是從當(dāng)前的分區(qū)查到所要的數(shù)據(jù)大大提高了數(shù)據(jù)查詢的速度翔横。

(2) 表分區(qū)有以下優(yōu)點(diǎn):
1、改善查詢性能:對(duì)分區(qū)對(duì)象的查詢可以僅搜索自己關(guān)心的分區(qū)梗搅,提高檢索速度禾唁。
2、增強(qiáng)可用性:如果表的某個(gè)分區(qū)出現(xiàn)故障无切,表在其他分區(qū)的數(shù)據(jù)仍然可用荡短;
3、維護(hù)方便:如果表的某個(gè)分區(qū)出現(xiàn)故障哆键,需要修復(fù)數(shù)據(jù)掘托,只修復(fù)該分區(qū)即可;
4籍嘹、均衡I/O:可以把不同的分區(qū)映射到不同磁盤(pán)以平衡I/O烫映,改善整個(gè)系統(tǒng)性能。

對(duì)應(yīng)的缺點(diǎn):
已經(jīng)存在的表沒(méi)有方法可以直接轉(zhuǎn)化為分區(qū)表噩峦,不過(guò) Oracle11g 提供了在線重定義表的功能。

(3) 如何創(chuàng)建表分區(qū)抽兆?

  • 1识补、 創(chuàng)建范圍(range)分區(qū)
    即根據(jù)分區(qū)鍵值的范圍進(jìn)行劃分,創(chuàng)建一個(gè)標(biāo)準(zhǔn)的range分區(qū)表:
> create table t_partition_range (id number,name varchar2(50))

 partition by range(id)(

 partition t_range_p1 values less than (10) tablespace tbspart01,

 partition t_range_p2 values less than (20) tablespace tbspart02,

 partition t_range_p3 values less than (30) tablespace tbspart03,

 partition t_range_pmax values less than (maxvalue) tablespace tbspart04    );
  • 2辫红、Hash分區(qū):
      對(duì)于那些在列的值無(wú)法有效劃分范圍的表凭涂,可以使用hash分區(qū),這樣對(duì)于提高性能還是會(huì)有一定的幫助贴妻,hash分區(qū)會(huì)將表中的數(shù)據(jù)平均分配到你指定的幾個(gè)分區(qū)中切油,但無(wú)法控制數(shù)據(jù)被放入哪個(gè)分區(qū)。
> create table t_partition_range (id number,name varchar2(50))

 partition by hash(id)(

 partition t_range_p1 values less than (10) tablespace tbspart01,

 partition t_range_p2 values less than (20) tablespace tbspart02,

 partition t_range_p3 values less than (30) tablespace tbspart03,

 partition t_range_pmax values less than (maxvalue) tablespace tbspart04    );
  • 3名惩、列表(list)分區(qū):
    如果表的某個(gè)列的值可以枚舉澎胡,則可以考慮對(duì)表進(jìn)行列表分區(qū),比如客戶表可以按照客戶所在的省份進(jìn)行分區(qū)娩鹉,同樣只用將partition by 后關(guān)鍵詞換為list即可攻谁。

(4) 表分區(qū)策略
對(duì)表進(jìn)行分區(qū)設(shè)計(jì)時(shí),首先要考慮和分析分區(qū)表中每個(gè)分區(qū)的數(shù)據(jù)量弯予,
確定哪些表屬于大表戚宦。

關(guān)于分區(qū)的表空間的規(guī)劃,要對(duì)每個(gè)表空間大小進(jìn)行估算锈嫩,比如每個(gè)季度數(shù)據(jù)為100MB受楼,那么最好創(chuàng)建120MB的表空間垦搬,同時(shí)還要考慮數(shù)據(jù)量的增長(zhǎng)。

(5) 管理分區(qū)表
對(duì)已經(jīng)存在表分區(qū)的表艳汽,進(jìn)行的操作有:添加表分區(qū)猴贰、刪除分區(qū)、合并分區(qū)等骚灸。

  • 1糟趾、添加表分區(qū)
1、范圍分區(qū)表(range partitioned table)
ALTER TABLE range_example ADD PARTITION part04 VALUES LESS THAN (TO_DATE('2008-10-1 00:00:00','yyyy-mm-ddhh24:mi:ss'));

2甚牲、哈希分區(qū)表(hash partitioned table)
ALTER TABLE hash_example ADD PARTITION part03;

3义郑、列分區(qū)表(list partitioned table)
ALTER TABLE list_example ADD PARTITION part04 VALUES ('TE');

ALTER TABLE list_example MODIFY PARTITION part04 ADD VALUES('MIS');

ALTER TABLE list_example MODIFY PARTITION part04 DROP VALUES('MIS');
  • 2、刪除表分區(qū)
ALTER TABLE ... DROP PARTITION part_name;
  • 3丈钙、合并表分區(qū)
ALTER TABLE range_example MERGE PARTITIONS part01_1, part01_2 INTO PARTITION part01 UPDATE INDEXES;

--將part01_1和part01_2分區(qū)合并成part01分區(qū)非驮,如果省略u(píng)pdate indexes子句的話,必須重建受影響的分區(qū)的index;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末雏赦,一起剝皮案震驚了整個(gè)濱河市劫笙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌星岗,老刑警劉巖填大,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異俏橘,居然都是意外死亡允华,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)寥掐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)靴寂,“玉大人,你說(shuō)我怎么就攤上這事召耘“倬妫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵污它,是天一觀的道長(zhǎng)剖踊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)衫贬,這世上最難降的妖魔是什么蜜宪? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮祥山,結(jié)果婚禮上圃验,老公的妹妹穿的比我還像新娘。我一直安慰自己缝呕,他們只是感情好澳窑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布斧散。 她就那樣靜靜地躺著,像睡著了一般摊聋。 火紅的嫁衣襯著肌膚如雪鸡捐。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,842評(píng)論 1 290
  • 那天麻裁,我揣著相機(jī)與錄音箍镜,去河邊找鬼。 笑死煎源,一個(gè)胖子當(dāng)著我的面吹牛色迂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播手销,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼歇僧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了锋拖?” 一聲冷哼從身側(cè)響起诈悍,我...
    開(kāi)封第一講書(shū)人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎兽埃,沒(méi)想到半個(gè)月后侥钳,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡柄错,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年舷夺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鄙陡。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖躏啰,靈堂內(nèi)的尸體忽然破棺而出趁矾,到底是詐尸還是另有隱情,我是刑警寧澤给僵,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布毫捣,位于F島的核電站,受9級(jí)特大地震影響帝际,放射性物質(zhì)發(fā)生泄漏蔓同。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一蹲诀、第九天 我趴在偏房一處隱蔽的房頂上張望斑粱。 院中可真熱鬧,春花似錦脯爪、人聲如沸则北。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)尚揣。三九已至涌矢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間快骗,已是汗流浹背娜庇。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留方篮,地道東北人名秀。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像恭取,于是被迫代替她去往敵國(guó)和親泰偿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容