999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

在Oracle數(shù)據(jù)庫(kù)中進(jìn)行索引與約束

2018-01-01 20:41:50李凡
科學(xué)與財(cái)富 2017年30期

李凡

摘 要: 在Oracle數(shù)據(jù)庫(kù)中為了優(yōu)化數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu),提高查詢的效率,很有必要進(jìn)行數(shù)據(jù)庫(kù)的索引與約束設(shè)置,本文就幾種常用的索引與約束進(jìn)行介紹與探討,結(jié)合大數(shù)據(jù)系統(tǒng)的開(kāi)發(fā),針對(duì)性地提出加強(qiáng)數(shù)據(jù)庫(kù)配置的必要性。

關(guān)鍵詞: Oracle;索引;約束

一、索引的概念

索引是Oracle的一個(gè)對(duì)象,索引中存儲(chǔ)了特定列的排序數(shù)據(jù),實(shí)現(xiàn)對(duì)表的快速訪問(wèn)。使用索引可以很快查找到建立索引時(shí)列的值所在的行,而不必對(duì)表實(shí)現(xiàn)全表掃描,所以適當(dāng)?shù)氖褂盟饕梢詼p少磁盤I/O量。

二、建立索引的方式

建立索引的方式有很多種,從建立索引到查看索引,通過(guò)參數(shù)命令執(zhí)行,常用的索引有以下幾種,大致介紹如下:

1、B-樹(shù)索引:它是Oracle默認(rèn)的索引類型,位圖索引與反向鍵索引建立在其基礎(chǔ)之上。B-樹(shù)索引結(jié)構(gòu)有三個(gè)基本組成部分:根節(jié)點(diǎn)、分支結(jié)點(diǎn)和葉子節(jié)點(diǎn),其中根節(jié)點(diǎn)位于索引結(jié)構(gòu)的最頂端,而葉子節(jié)點(diǎn)位于索引結(jié)構(gòu)的最低端,中間為分支節(jié)點(diǎn)。B-樹(shù)索引的特點(diǎn)是平衡性強(qiáng),不會(huì)因?yàn)閿?shù)據(jù)變更操作影響索引性能。B-樹(shù)索引結(jié)構(gòu)圖如下所示。

2、位圖索引:它是大數(shù)據(jù)支持的索引機(jī)制,適用于沒(méi)有大量更新任務(wù)的數(shù)據(jù)倉(cāng)庫(kù),因?yàn)槲粓D索引里的關(guān)聯(lián)數(shù)據(jù)太多,所以有大量數(shù)據(jù)更新時(shí),位圖索引需做大量的更改,系統(tǒng)開(kāi)銷較大,位圖索引比較適合精確性查找。創(chuàng)建位圖索引的實(shí)例如下

SQL> create bitmap index emp

2 on emp(job);

索引已創(chuàng)建。

3、反向鍵索引:它是指在創(chuàng)建索引的過(guò)程中對(duì)索引列創(chuàng)建的索引鍵值的字節(jié)反向,以避免查找的無(wú)序。使用反向鍵索引使得每個(gè)鍵值被顛倒順序,將序列性的鍵值分散開(kāi),使得鍵值平衡地保存在葉子節(jié)點(diǎn)中。創(chuàng)建反向鍵索引需要使用REVERSE關(guān)鍵字,實(shí)例如下

SQL> create index emp

2 on emp(sal) reverse;

索引已創(chuàng)建。

4、基于函數(shù)的索引:在用戶查詢數(shù)據(jù)時(shí),如果查詢語(yǔ)句的WHERE字句中有函數(shù)存在,Oracle使用函數(shù)索引將加快查詢速度,基于函數(shù)的索引,使用表的列函數(shù)值作為鍵值建立索引結(jié)構(gòu)。以下是通過(guò)UPPER函數(shù)創(chuàng)建基于函數(shù)的索引實(shí)例。

SQL> create index dept

2 on dept(UPPER(dname));

索引已創(chuàng)建。

索引建立后,還需監(jiān)控索引,索引不完整,還要重建索引,索引不用,要?jiǎng)h除索引,這一系列操作,構(gòu)成了索引的體系。

三、約束的概念

Oracle引入約束的目的是保證插入表的數(shù)據(jù)滿足一定的要求,這個(gè)要求可以理解為業(yè)務(wù)規(guī)則的聲明,約束作為數(shù)據(jù)定義的一部分,所以它是聲明性的,而不是過(guò)程性的,這種簡(jiǎn)單的業(yè)務(wù)規(guī)則便于編寫代碼與維護(hù)。使用約束比在應(yīng)用程序中使用規(guī)則驗(yàn)證更有效,執(zhí)行速度更快。

四、約束的分類

約束按照功能可以分為五種,對(duì)于每種的特點(diǎn)大致進(jìn)行介紹如下。

1、非空約束:該約束不允許某列為NULL,例如某員工表EMP中,員工號(hào)是不允許為空,即要求員工號(hào)必須存在且為數(shù)字類型NUMBER,在表EMP的定義過(guò)程中已定義了非空約束。通過(guò)數(shù)據(jù)字典可以清楚地查詢約束信息。

2、主鍵約束:該約束和唯一鍵約束很相似,但是主鍵約束不允許插入空值NULL,主鍵唯一標(biāo)識(shí)一個(gè)表的記錄,主鍵可以在一列或多列上創(chuàng)建。對(duì)于創(chuàng)建主鍵約束,可以通過(guò)對(duì)該列插入重復(fù)值進(jìn)行驗(yàn)證,如果主鍵約束結(jié)果唯一且不能為空,說(shuō)明約束正確。

3、唯一約束:該約束要求列的值在表中是唯一的,但是可以插入空值NULL,也就是說(shuō)表中某列的值不能重復(fù),以確保數(shù)據(jù)的唯一性。數(shù)據(jù)的唯一性在數(shù)據(jù)庫(kù)操作中可以避免查找的誤判與數(shù)據(jù)有效性規(guī)則的制定。

4、條件約束:該約束是比較靈活的一類約束,可以根據(jù)需要對(duì)表設(shè)置更多的規(guī)則限制,條件約束說(shuō)明表中每一行的某列或幾列的數(shù)據(jù)必須滿足的條件。條件約束可以使用一個(gè)或多個(gè)約束條件,可以在單一條件約束中使用復(fù)合條件,也可以對(duì)同一列使用多個(gè)條件約束。條件約束的判斷標(biāo)準(zhǔn)是條件約束的返回值,TRUE表示滿足條件,F(xiàn)ALSE表示不滿足條件,拒絕執(zhí)行。條件約束可以在創(chuàng)建表時(shí)創(chuàng)建,也可以在表創(chuàng)建完成后對(duì)某列創(chuàng)建。

5、外鍵約束:該約束不僅僅涉及一個(gè)表,它還涉及主表和從表,使用外鍵約束使得Oracle可以維護(hù)主表和從表之間的引用完整性。簡(jiǎn)單地說(shuō),如果要插入從表的一行數(shù)據(jù),則某列的值要參考主表中引用參考的值,而不能無(wú)限制地插入記錄。

五、兩者的維護(hù)

索引的維護(hù)就是修改索引的各種參數(shù),在維護(hù)索引前先需知道當(dāng)前索引的參數(shù)位置,再根據(jù)設(shè)置進(jìn)行參數(shù)的調(diào)整,以下是索引參數(shù)的修改實(shí)例。

SQL>alter index emp

2 rebuild

3 pctfree 30

4 storage (next 100k);

通過(guò)對(duì)pctfree參數(shù)的修改,適當(dāng)增加存儲(chǔ)空間,這樣可以合并索引碎片,維護(hù)磁盤空間,有利于系統(tǒng)開(kāi)銷后的釋放。

約束的維護(hù)包括約束的完整性設(shè)置與約束的更改操作,尤其是刪除約束性操作普遍,該操作隨時(shí)進(jìn)行,要求用戶具有刪除約束的條件并知道約束的名字,一般可以通過(guò)數(shù)據(jù)字典USER來(lái)查找約束的名字,進(jìn)而使用DROP指令刪除約束,通過(guò)以下實(shí)例說(shuō)明。

SQL>alter table emp

2 drop constraint SYS

通過(guò)該指令,刪除表emp的唯一約束。

六、系統(tǒng)評(píng)價(jià)

索引已經(jīng)成為關(guān)系數(shù)據(jù)庫(kù)非常重要的部分。它們被用作包含所關(guān)心數(shù)據(jù)的表指針。通過(guò)一個(gè)索引,能從表中直接找到一個(gè)特定的記錄,而不必連續(xù)順序掃描這個(gè)表,一次一個(gè)地去查找。對(duì)于大的表,索引是必要的。當(dāng)然索引需要占物理空間,對(duì)表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時(shí)候,索引也要?jiǎng)討B(tài)的維護(hù),降低了數(shù)據(jù)的維護(hù)速度。所以并非所有的數(shù)據(jù)庫(kù)都以相同的方式使用索引。作為通用規(guī)則,只有當(dāng)經(jīng)常查詢索引列中的數(shù)據(jù)時(shí),才需要在表上創(chuàng)建索引。索引占用磁盤空間,并且降低添加、刪除和更新行的速度。如果應(yīng)用程序非常頻繁地更新數(shù)據(jù)或磁盤空間有限,則可能需要限制索引的數(shù)量。在表較大是在建立索引,表中的數(shù)據(jù)越多,索引的優(yōu)越性越明顯。

數(shù)據(jù)庫(kù)約束是為了保證數(shù)據(jù)的完整性而實(shí)現(xiàn)的一套機(jī)制,它具體的根據(jù)各個(gè)不同的數(shù)據(jù)庫(kù)的實(shí)現(xiàn)而有不同的工具,所以我們?cè)趯W(xué)習(xí)約束的時(shí)候就會(huì)看到域完整性(Domain Integrity)、實(shí)體完整性(Entity Integrity)、參照完整性(Referential Integrity)與用戶定義完整性(User-defined Integrity)的不同的約束分類。約束能夠提高Oracle數(shù)據(jù)庫(kù)操作的穩(wěn)定性與查詢效率,對(duì)于數(shù)據(jù)挖掘等高端操作起到一定的保障作用。

總之,隨著大數(shù)據(jù)的開(kāi)發(fā),數(shù)據(jù)庫(kù)的優(yōu)化配置也在不斷地進(jìn)行調(diào)整,索引與約束會(huì)深層次地進(jìn)行改變,以適應(yīng)將來(lái)數(shù)據(jù)庫(kù)的要求。

參考文獻(xiàn)

[1] 魏科科. 基于Oracle數(shù)據(jù)庫(kù)的索引優(yōu)化[J]. 電腦知識(shí)與技術(shù),2015,10.

[2] 裘志華. 基于Oracle數(shù)據(jù)庫(kù)的完整性約束[J].電子商務(wù),2015,4.

[3] 劉超,張明安. 基于Oracle數(shù)據(jù)庫(kù)系統(tǒng)的研究[J]. 軟件,2016,4.endprint

主站蜘蛛池模板: 特级精品毛片免费观看| 2020精品极品国产色在线观看| 国产网站免费| 亚洲无码91视频| 精品少妇人妻av无码久久| 亚洲欧美在线看片AI| 国产黄色爱视频| 免费视频在线2021入口| 成人噜噜噜视频在线观看| 无码有码中文字幕| 亚洲综合婷婷激情| 日韩精品成人在线| 熟妇人妻无乱码中文字幕真矢织江| 亚洲天堂视频在线播放| 波多野结衣视频一区二区| 亚洲国产欧美目韩成人综合| 欧美成人一级| 久久伊人操| 欧美一区精品| 国产欧美日韩另类| 欧美天堂在线| 亚洲精品国产精品乱码不卞| 久久综合色天堂av| 亚洲人成网站在线观看播放不卡| 亚洲高清中文字幕在线看不卡| 午夜精品区| 国产成人精品综合| 久久精品亚洲专区| 2021无码专区人妻系列日韩| 综合社区亚洲熟妇p| 国产成人无码Av在线播放无广告| 伊在人亚洲香蕉精品播放| 国产精品男人的天堂| www.狠狠| 国产成人久久777777| 在线观看视频99| 一级毛片免费观看久| 亚洲无码视频图片| 国产一区二区三区免费观看| 国产一区二区三区在线观看视频 | 永久毛片在线播| 又爽又大又光又色的午夜视频| 久热这里只有精品6| 青青草国产免费国产| 亚洲一道AV无码午夜福利| 波多野结衣无码AV在线| 伦精品一区二区三区视频| 亚洲Av综合日韩精品久久久| 国产毛片不卡| 四虎国产精品永久在线网址| 动漫精品中文字幕无码| 国产永久无码观看在线| 成人在线观看一区| 国产精品9| 中国特黄美女一级视频| 亚洲成a人在线播放www| 国产精品对白刺激| 亚洲成人精品| 成人在线亚洲| 欧美一级片在线| 99九九成人免费视频精品| 亚洲第一视频免费在线| 午夜电影在线观看国产1区| 毛片免费在线| 五月天天天色| 精品国产免费观看一区| 国产激情无码一区二区三区免费| 露脸真实国语乱在线观看| 一本色道久久88| 2020久久国产综合精品swag| 久久久91人妻无码精品蜜桃HD| 亚洲欧州色色免费AV| 毛片网站观看| 69精品在线观看| 毛片视频网址| 伊人成人在线| 在线观看国产网址你懂的| 久久黄色影院| 亚洲成人高清无码| 国产欧美专区在线观看| 青草午夜精品视频在线观看| 72种姿势欧美久久久大黄蕉|