毛片在线视频观看,一级日韩免费大片,在线网站黄色,澳门在线高清一级毛片

薈聚奇文、博采眾長、見賢思齊
當(dāng)前位置:公文素材庫 > 計劃總結(jié) > 工作總結(jié) > oracle index學(xué)習(xí)總結(jié)

oracle index學(xué)習(xí)總結(jié)

網(wǎng)站:公文素材庫 | 時間:2019-05-29 22:25:48 | 移動端:oracle index學(xué)習(xí)總結(jié)

oracle index學(xué)習(xí)總結(jié)

oracleindex

1.index需要儲存空間和I/O操作。2.index的目的是加快select的速度的。

3.insert,update,delete數(shù)據(jù)oracle會同時對索引進(jìn)行相應(yīng)的調(diào)整,因此會增加一定的消耗。4.使用index一定能加快select速度嗎?不是的,數(shù)據(jù)少和巨大時index會影響select的速度,因此如果查詢速度可以滿足,就不要建index。5.Index對null無效。

分類:

一、從物理角度

1.partitionedornonpartitioned:分區(qū)或不分區(qū)索引。分區(qū)索引用于分區(qū)表。

2.B-tree(平衡樹):normalorreversekey正常和倒序索引。

oracle默認(rèn)索引方式,平衡樹形索引,在葉子節(jié)點上有雙向鏈表,加快索引定位速度,oracle有一定的優(yōu)化,可以根據(jù)鏈表直接定位記錄,而不走樹,綜合使用提高速度。見圖1和圖2。

圖1

3.bitmap(位圖):用二進(jìn)制的0、1來構(gòu)建索引,在進(jìn)行or操作時非?,但要注意bitmap對于并發(fā)操作時,改一條會鎖了很多記錄,因為所有的記錄在一個索引條目上,所以修改或增加時會一起鎖定,見圖3.

區(qū)別和使用場景B-tree索引Bitmap索引Suitableforhigh-cardinalitySuitableforlow-cardinalitycolumns(用在記錄相同的columns(記錄對應(yīng)的列重復(fù)值較多的列上,如果性別只有兩種值:男和女)。的值較少,如主鍵,姓名等)。UpdatesonkeysrelativelyUpdatestokeycolumnsveryexpensiveinexpensive(在做updated(在做updated時,bitmap的消耗是昂貴的)。時,b-tree只消耗很少的資源)。InefficientforqueriesusingEffcientforqueriesusingORpredicatesORpredicates(where子句中(where子句中or條件較多時速度非?欤﹐r條件較多時速度較慢)UsefulforOLTP(記錄頻繁的Usefulfordatawarehousing(OLIP)數(shù)據(jù)倉庫,查insert和update,查詢相對較少詢系統(tǒng)等較少做數(shù)據(jù)修改的系統(tǒng)。的系統(tǒng))。

二、邏輯角度:

1.singlecolumnorconcatenated單索引和組合索引。2.uniqueornonunique:唯一索引和非唯一索引。

3.function-based:基于函數(shù)的索引,把一些where條件作為函數(shù)。4.domain:數(shù)據(jù)庫以外的索引,如文件等。三、創(chuàng)建index時的注意事項:

1.balancequeryandDMLneeds:索引的目的是為了提高查詢速度,但它會加重DML的負(fù)擔(dān)。2.placeinseparatetablespace:索引和表應(yīng)該放在不同的表空間,如果把索引和表放在同一個空間,會引起競爭,因為在讀取一個表時,記錄和索引是同時讀取,修改也同步進(jìn)行的。3.useuniformextentsizes:Multipesoffiveblocksorminimumextentsizefortablespace.索引空間是extent是大小應(yīng)該是5blocks的倍數(shù),因為oracle是一次讀出5個blocks,如果你的extends是6,就會造成2次I/O操作。

4.considernologgingforlargeindexes:在創(chuàng)建索引時可以關(guān)閉索引對應(yīng)的redo日志,提高速度,因為索引和數(shù)據(jù)不同,如果索引創(chuàng)建時出意外,數(shù)據(jù)還在,就再創(chuàng)建一次好了。5.INITRANSshouldgenerallybehigheronindexesthanonthecorrespondingtables:INITRANS參數(shù)比對應(yīng)的表的值大些,因為索引也是已表記錄的方式保存的,但索引大大小于表的記錄,所以一個block中存儲的索引記錄就大大多于表在一個block中的記錄,加大INITRANS可以增加在一個block中的事務(wù)的并發(fā)數(shù),就提高了效率。

6.rebuildingindexes:如果刪除一條記錄,對應(yīng)的索引僅僅是做了邏輯刪除,只有一個block中的全部索引都被標(biāo)識為邏輯刪除,orcle才會真正的回收block,這時這個block才能被再次利用,在表的記錄做update時,index是先做了邏輯刪除,然后再為該記錄新建一個索引的,所以表在頻繁的增刪改后,就會造成index對應(yīng)的block不完整,和系統(tǒng)碎片的情況是一致的,造成空間浪費,加大index的I/O,影響性能。而rebuildingindexes就可以回收原來的,重新構(gòu)建一個高效的索引,但重構(gòu)時會鎖表。語法:alterindexindex_namerebuild;

7.coalescingindexes:整理索引碎片,效率高,不鎖表。

語法:Alterindexindex_namecoalesce;

四.管理索引

1.分析索引:

1)select*fromuser_objectswhereobject_type="INDEX"2)analyzeindexPK_T_TICKETvalidatestructure;

3)select*fromindex_stats;

HEIGHT(b-treeBLOCKS(索引NAME(索引LF_ROWS(記DEL_LF_ROWS的高度)有多少塊)名)錄數(shù))(刪除記錄數(shù))2256PK_T_TICKET82775792當(dāng)DEL_LF_ROWS/LF_ROWS>15%時應(yīng)進(jìn)行索引重建或索引碎片整理。

2.drop索引:當(dāng)屁量導(dǎo)入大量數(shù)據(jù)時,索引會影響導(dǎo)入速度?梢袁F(xiàn)在drop掉,導(dǎo)入后再重建索引。

3.監(jiān)控索引:

1)設(shè)置監(jiān)控那個索引alterindexpk_t_ticketmonitoringusage;

2)查看該索引用沒有使用select*fromv$object_usage3)selectcount(1)frompk_t_ticket;

4)查看該索引用沒有使用select*fromv$object_usage5)關(guān)閉監(jiān)控alterindexpk_t_ticketnomonitoringusage;監(jiān)控一個月就大概可以知道那些是無用的索引了。6)查詢索引的詳細(xì)信息:select*fromall_ind_columnswhereindex_name="PK_T_TICKET".那個表的那個列上有索引及詳細(xì)信息。

擴(kuò)展閱讀:

友情提示:本文中關(guān)于《oracle index學(xué)習(xí)總結(jié)》給出的范例僅供您參考拓展思維使用,oracle index學(xué)習(xí)總結(jié):該篇文章建議您自主創(chuàng)作。

來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。


oracle index學(xué)習(xí)總結(jié)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請保留原作者信息,謝謝!
鏈接地址:http://www.seogis.com/gongwen/747174.html
相關(guān)文章