欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

oracle怎么復(fù)合索引 oracle復(fù)合索引最多幾個(gè)字段

一個(gè)字段建有多個(gè)索引ORACLE如何選擇

1、表的主鍵、外鍵必須有索引;

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了巫山免費(fèi)建站歡迎大家使用!

2、數(shù)據(jù)量超過300的表應(yīng)該有索引;

3、經(jīng)常與其他表進(jìn)行連接的表,在連接字段上應(yīng)該建立索引;

4、經(jīng)常出現(xiàn)在Where子句中的字段,特別是大表的字段,應(yīng)該建立索引;

5、索引應(yīng)該建在選擇性高的字段上;

6、索引應(yīng)該建在小字段上,對(duì)于大的文本字段甚至超長(zhǎng)字段,不要建索引;

7、復(fù)合索引的建立需要進(jìn)行仔細(xì)分析;盡量考慮用單字段索引代替:

A、正確選擇復(fù)合索引中的主列字段,一般是選擇性較好的字段;

B、復(fù)合索引的幾個(gè)字段是否經(jīng)常同時(shí)以AND方式出現(xiàn)在Where子句中?單字段查詢是否極少甚至沒有?如果是,則可以建立復(fù)合索引;否則考慮單字段索引;

C、如果復(fù)合索引中包含的字段經(jīng)常單獨(dú)出現(xiàn)在Where子句中,則分解為多個(gè)單字段索引;

D、如果復(fù)合索引所包含的字段超過3個(gè),那么仔細(xì)考慮其必要性,考慮減少?gòu)?fù)合的字段;

E、如果既有單字段索引,又有這幾個(gè)字段上的復(fù)合索引,一般可以刪除復(fù)合索引;

8、頻繁進(jìn)行數(shù)據(jù)操作的表,不要建立太多的索引;

9、刪除無(wú)用的索引,避免對(duì)執(zhí)行計(jì)劃造成負(fù)面影響;

以上是一些普遍的建立索引時(shí)的判斷依據(jù)。一言以蔽之,索引的建立必須慎重,對(duì)每個(gè)索引的必要性都應(yīng)該經(jīng)過仔細(xì)分析,要有建立的依據(jù)。因?yàn)樘嗟乃饕c不充分、不正確的索引對(duì)性能都毫無(wú)益處:在表上建立的每個(gè)索引都會(huì)增加存儲(chǔ)開銷,索引對(duì)于插入、刪除、更新操作也會(huì)增加處理上的開銷。另外,過多的復(fù)合索引,在有單字段索引的情況下,一般都是沒有存在價(jià)值的;相反,還會(huì)降低數(shù)據(jù)增加刪除時(shí)的性能,特別是對(duì)頻繁更新的表來(lái)說(shuō),負(fù)面影響更大。

Oracle復(fù)合索引建立的問題

1、

理論上可以使用5列的復(fù)合索引,這點(diǎn)通過加hint可以驗(yàn)證;實(shí)際運(yùn)行時(shí)oracle會(huì)比較走這個(gè)索引和全表掃的成本,選低的。

2、

看語(yǔ)句是否用到某個(gè)索引,是可以在執(zhí)行計(jì)劃里看到索引名的,你這種看filter和access的方法屬于繞彎路了,沒那么復(fù)雜。你看執(zhí)行計(jì)劃,如果有index scan就是用到索引了,如果只是table access full就是沒用到。

3、是否有必要建2個(gè)索引要看你的應(yīng)用側(cè)重什么,得到一樣?xùn)|西是有代價(jià)的。如果只考慮查詢性能,2個(gè)索引的效果會(huì)比1個(gè)索引好,因?yàn)檫@2個(gè)語(yǔ)句都可以選最合適的索引不必退而求其次,但是代價(jià)是多消耗了一個(gè)索引的空間和dml時(shí)需多維護(hù)一個(gè)索引。看你覺得這些代價(jià)值不值了。

如有幫助請(qǐng)采納

Oracle數(shù)據(jù)訪問和索引的使用

· 通過全表掃描的方式訪問數(shù)據(jù);

· 通過ROWID訪問數(shù)據(jù);

· 通過索引的方式訪問數(shù)據(jù);

· Oracle順序讀取表中所有的行,并逐條匹配WHERE限定條件。

· 采用多塊讀的方式進(jìn)行全表掃描,可以有效提高系統(tǒng)的吞吐量,降低I/O次數(shù)。

· 即使創(chuàng)建索引,Oracle也會(huì)根據(jù)CBO的計(jì)算結(jié)果,決定是否使用索引。

注意事項(xiàng):

· 只有全表掃描時(shí)才可以使用多塊讀。該方式下,單個(gè)數(shù)據(jù)塊僅訪問一次。

· 對(duì)于數(shù)據(jù)量較大的表,不建議使用全表掃描進(jìn)行訪問。

· 當(dāng)訪問表中的數(shù)據(jù)量超過數(shù)據(jù)總量的5%—10%時(shí),通常Oracle會(huì)采用全表掃描的方式進(jìn)行訪問。

· 并行查詢可能會(huì)導(dǎo)致優(yōu)化器選擇全表掃描的方式。1.2ROWID訪問表

· Rowid是數(shù)據(jù)存放在數(shù)據(jù)庫(kù)中的物理地址,能夠唯一標(biāo)識(shí)表中的一條數(shù)據(jù)。

· Rowid指出了一條記錄所在的數(shù)據(jù)文件、塊號(hào)以及行號(hào)的位置,因此通過ROWID定位單行數(shù)據(jù)是最快的方法。

注意事項(xiàng):

· Rowid作為一個(gè)偽列,其數(shù)值并不存儲(chǔ)在數(shù)據(jù)庫(kù)中,當(dāng)查詢時(shí)才進(jìn)行計(jì)算。

· Rowid除了在同一集簇中可能不唯一外,每條記錄的Rowid唯一。1.3 INDEX訪問表

· 通過索引查找相應(yīng)數(shù)據(jù)行的Rowid,再根據(jù)Rowid查找表中實(shí)際數(shù)據(jù)的方式稱為“索引查找”或者“索引掃描”。

· 一個(gè)Rowid對(duì)應(yīng)一條數(shù)據(jù)行(根據(jù)Rowid查找結(jié)果,僅需要對(duì)Rowid相應(yīng)數(shù)據(jù)的數(shù)據(jù)塊進(jìn)行一次I/O操作),因此該方式屬于“單塊讀”。

· 對(duì)于索引,除了存儲(chǔ)索引的數(shù)據(jù)外,還保存有該數(shù)據(jù)對(duì)應(yīng)的Rowid信息。

· 索引掃描分為兩步:1)掃描索引確定相應(yīng)的Rowid信息。 2)根據(jù)Rowid從表中獲得對(duì)應(yīng)的數(shù)據(jù)。

注意事項(xiàng):

· 對(duì)于選擇性高的數(shù)據(jù)行,索引的使用會(huì)提升查詢的性能。但對(duì)于DML操作,尤其是批量數(shù)據(jù)的操作,可能會(huì)導(dǎo)致性能的降低。

· 全表掃描的效率不一定比索引掃描差,關(guān)鍵看數(shù)據(jù)在數(shù)據(jù)塊上的具體分布。

索引是關(guān)系數(shù)據(jù)庫(kù)中用于存放每一條記錄的一種對(duì)象,主要目的是加快數(shù)據(jù)的讀取速度和完整性檢查。建立索引是一項(xiàng)技術(shù)性要求高的工作。一般在數(shù)據(jù)庫(kù)設(shè)計(jì)階段的與數(shù)據(jù)庫(kù)結(jié)構(gòu)一道考慮。應(yīng)用系統(tǒng)的性能直接與索引的合理直接有關(guān)。

(1) 單列索引

單列索引是基于單個(gè)列所建立的索引。

(2) 復(fù)合索引

復(fù)合索引是基于兩列或是多列的索引,在同一張表上可以有多個(gè)索引,但是要求列的組合必須不同。

(1) 重命名索引

(2) 合并索引

(表使用一段時(shí)間后在索引中會(huì)產(chǎn)生碎片,此時(shí)索引效率會(huì)降低,可以選擇重建索引或者合并索引,合并索引方式更好些,無(wú)需額外存儲(chǔ)空間,代價(jià)較低)

(3) 重建索引

方式一:刪除原來(lái)的索引,重新建立索引

當(dāng)不需要時(shí)可以將索引刪除以釋放出硬盤空間。命令如下:

例如:

注:當(dāng)表結(jié)構(gòu)被刪除時(shí),有其相關(guān)的所有索引也隨之被刪除。

方式二: Alter index 索引名稱 rebuild;

· 通過創(chuàng)建唯一性索引,可以保證數(shù)據(jù)庫(kù)表中每一行數(shù)據(jù)的唯一性。

· 索引可以大大加快數(shù)據(jù)的檢索速度,這是創(chuàng)建索引的最主要的原因。

· 可以加速表和表之間的連接,特別是在實(shí)現(xiàn)數(shù)據(jù)的參考完整性方面特別有意義。

· 在使用分組和排序子句進(jìn)行數(shù)據(jù)檢索時(shí),同樣可以顯著減少查詢中分組和排序的時(shí)間。

· 通過使用索引,可以在查詢的過程中,使用優(yōu)化隱藏器,提高系統(tǒng)的性能。

· 索引的層次不要超過4層。

· 創(chuàng)建索引和維護(hù)索引要耗費(fèi)時(shí)間,這種時(shí)間隨著數(shù)據(jù)量的增加而增加。

· 除了數(shù)據(jù)表占數(shù)據(jù)空間之外,每一個(gè)索引還要占一定的物理空間,如果要建立聚簇索引,那么需要的空間就會(huì)更大。

· 當(dāng)對(duì)表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時(shí)候,索引也要?jiǎng)討B(tài)的維護(hù),這樣就降低了數(shù)據(jù)的維護(hù)速度。

· 更新數(shù)據(jù)的時(shí)候,系統(tǒng)必須要有額外的時(shí)間來(lái)同時(shí)對(duì)索引進(jìn)行更新,以維持?jǐn)?shù)據(jù)和索引的一致性。

1) 不恰當(dāng)?shù)乃饕坏谑聼o(wú)補(bǔ),反而會(huì)降低系統(tǒng)性能。因?yàn)榇罅康乃饕谶M(jìn)行插入、修改和刪除操作時(shí)比沒有索引花費(fèi)更多的系統(tǒng)時(shí)間。

1) 應(yīng)該建索引的列

· 在經(jīng)常需要搜索的列上,可以加快搜索的速度;

· 在作為主鍵的列上,強(qiáng)制該列的唯一性和組織表中數(shù)據(jù)的排列結(jié)構(gòu);

· 在經(jīng)常用在連接的列上,這些列主要是一些外鍵,可以加快連接的速度;

· 在經(jīng)常需要根據(jù)范圍進(jìn)行搜索的列上創(chuàng)建索引,因?yàn)樗饕呀?jīng)排序,其指定的范圍是連續(xù)的;

· 在經(jīng)常需要排序的列上創(chuàng)建索引,因?yàn)樗饕呀?jīng)排序,這樣查詢可以利用索引的排序,加快排序查詢時(shí)間;

· 在經(jīng)常使用在WHERE子句中的列上面創(chuàng)建索引,加快條件的判斷速度。

2) 不應(yīng)該建索引的列

· 在大表上建立索引才有意義,小表無(wú)意義。

· 對(duì)于那些在查詢中很少使用或者參考的列不應(yīng)該創(chuàng)建索引。

· 對(duì)于那些只有很少數(shù)據(jù)值的列也不應(yīng)該增加索引。比如性別,在查詢的結(jié)果中,結(jié)果集的數(shù)據(jù)行占了表中數(shù)據(jù)行的很大比例,。增加索引,并不能明顯加快檢索速度。

· 對(duì)于那些定義為blob數(shù)據(jù)類型的列不應(yīng)該增加索引。這是因?yàn)椋@些列的數(shù)據(jù)量要么相當(dāng)大,要么取值很少。

· 當(dāng)修改性能遠(yuǎn)遠(yuǎn)大于檢索性能時(shí),不應(yīng)該創(chuàng)建索引。

一個(gè)表中有幾百萬(wàn)條數(shù)據(jù),對(duì)某個(gè)字段加了索引,但是查詢時(shí)性能并沒有什么提高,這主要可能是oracle的索引限制造成的。Oracle的索引有一些索引限制,在這些索引限制發(fā)生的情況下,即使已經(jīng)加了索引,oracle還是會(huì)執(zhí)行一次全表掃描,查詢的性能不會(huì)比不加索引有所提高,反而可能由于數(shù)據(jù)庫(kù)維護(hù)索引的系統(tǒng)開銷造成性能更差。

下面的查詢即使在djlx列有索引,查詢語(yǔ)句仍然執(zhí)行一次全表掃描。

把上面的語(yǔ)句改成如下的查詢語(yǔ)句,這樣,在采用基于規(guī)則的優(yōu)化器而不是基于代價(jià)的優(yōu)化器(更智能)時(shí),將會(huì)使用索引。

特別注意:通過把不等于操作符改成OR條件,就可以使用索引,避免全表掃描。

使用IS NULL或IS NOT NULL同樣會(huì)限制索引的使用。因此在建表時(shí),把需要索引的列設(shè)成NOT NULL。如果被索引的列在某些行中存在NULL值,就不會(huì)使用這個(gè)索引(除非索引是一個(gè)位圖索引)。

如果不使用基于函數(shù)的索引,那么在SQL語(yǔ)句的WHERE子句中對(duì)存在索引的列使用函數(shù)時(shí),會(huì)使優(yōu)化器忽略掉這些索引。 下面的查詢不會(huì)使用索引(只要它不是基于函數(shù)的索引)

也是比較難于發(fā)現(xiàn)的性能問題之一。比如:bdcs_qlr_xz中的zjh是NVARCHAR2類型,在zjh字段上有索引。如果使用下面的語(yǔ)句將執(zhí)行全表掃描。

因?yàn)镺racle會(huì)自動(dòng)把查詢語(yǔ)句改為

特別注意:不匹配的數(shù)據(jù)類型之間比較會(huì)讓Oracle自動(dòng)限制索引的使用,即便對(duì)這個(gè)查詢執(zhí)行Explain Plan也不能讓您明白為什么做了一次“全表掃描”。

(1) 索引無(wú)效

(2) 索引有效

ORACLE 創(chuàng)建組合分區(qū)索引

ORACLE 創(chuàng)建組合分區(qū)索引如下:

create index idx_ename on T_JC_CF(字段)

local

(

partition p0810 tablespace USERS,

partition p0901 tablespace USERS,

partition p0904 tablespace USERS,

partition p0907 tablespace USERS,

partition p0910 tablespace USERS,

partition pmax tablespace USERS

)

分區(qū)索引總結(jié);分區(qū)索引分為2類:

1、global,它必定是Prefix的。不存在non-prefix的

2、local,它又分成2類:

2.1、prefix:索引的第一個(gè)列等于表的分區(qū)列。

2.2、non-prefix:索引的第一個(gè)列不等于表的分區(qū)列。

oracle 數(shù)據(jù)庫(kù)如何建立索引 如何用索引?

創(chuàng)建索引語(yǔ)法:

CREATE [UNIQUE] | [BITMAP] INDEX index_name

--unique表示唯一索引

ON table_name([column1 [ASC|DESC],column2

--bitmap,創(chuàng)建位圖索引

[ASC|DESC],…] | [express])[TABLESPACE tablespace_name][PCTFREE n1]

--指定索引在數(shù)據(jù)塊中空閑空間

[STORAGE (INITIAL n2)][NOLOGGING]

--表示創(chuàng)建和重建索引時(shí)允許對(duì)表做DML操作,默認(rèn)情況下不應(yīng)該使用

[NOLINE][NOSORT];

--表示創(chuàng)建索引時(shí)不進(jìn)行排序,默認(rèn)不適用,如果數(shù)據(jù)已經(jīng)是按照該索引順序排列的可以使用

擴(kuò)展資料:

1、如果有兩個(gè)或者以上的索引,其中有一個(gè)唯一性索引,而其他是非唯一,這種情況下oracle將使用唯一性索引而完全忽略非唯一性索引

2、至少要包含組合索引的第一列(即如果索引建立在多個(gè)列上,只有它的第一個(gè)列被where子句引用時(shí),優(yōu)化器才會(huì)使用該索引)

3、小表不要簡(jiǎn)歷索引

4、對(duì)于基數(shù)大的列適合建立B樹索引,對(duì)于基數(shù)小的列適合簡(jiǎn)歷位圖索引

5、列中有很多空值,但經(jīng)常查詢?cè)摿猩戏强沼涗洉r(shí)應(yīng)該建立索引

6、經(jīng)常進(jìn)行連接查詢的列應(yīng)該創(chuàng)建索引

7、使用create index時(shí)要將最常查詢的列放在最前面

8、LONG(可變長(zhǎng)字符串?dāng)?shù)據(jù),最長(zhǎng)2G)和LONG RAW(可變長(zhǎng)二進(jìn)制數(shù)據(jù),最長(zhǎng)2G)列不能創(chuàng)建索引

9、限制表中索引的數(shù)量(創(chuàng)建索引耗費(fèi)時(shí)間,并且隨數(shù)據(jù)量的增大而增大;索引會(huì)占用物理空間;當(dāng)對(duì)表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時(shí)候,索引也要?jiǎng)討B(tài)的維護(hù),降低了數(shù)據(jù)的維護(hù)速度)

oracle數(shù)據(jù)庫(kù)建立復(fù)合唯一索引

這就簡(jiǎn)單了年份更不可能重復(fù),建立唯一索引 create unique index(年份,屆數(shù),次數(shù)) 即可

分享標(biāo)題:oracle怎么復(fù)合索引 oracle復(fù)合索引最多幾個(gè)字段
轉(zhuǎn)載注明:http://chinadenli.net/article6/hppsig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)網(wǎng)站制作網(wǎng)站維護(hù)ChatGPT關(guān)鍵詞優(yōu)化外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化