溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

oracle表和索引設(shè)計(jì)基本建議

發(fā)布時(shí)間:2020-08-09 13:39:03 來源:ITPUB博客 閱讀:222 作者:colin_cwc 欄目:關(guān)系型數(shù)據(jù)庫
表物理設(shè)計(jì)基本建議:
1、除特殊需求,建議采用普通的堆表(heap table)。
2、每個(gè)表在創(chuàng)建的時(shí)候,建議制定所在的表空間,不用默認(rèn)表空間。
3、建議根據(jù)dml操作頻度數(shù)值,如果update操作頻度高,則可將PCTFREE設(shè)置為較高,反之,則可將PCTFREE設(shè)置為較低。
4、當(dāng)表中存在大量delete操作時(shí),PCTUSED值的增大,將提高空間的使用率。
5、對(duì)并發(fā)訪問量比較高的表和索引,將INITRANS設(shè)置較大,特別是針對(duì)索引,例如設(shè)置INITRANS設(shè)為10.
6、對(duì)較小的代碼和參數(shù)表,可考慮IOT表技術(shù)。
7、如果某個(gè)靜態(tài)表關(guān)系比較密切,則可以采用聚簇表的方法。

索引設(shè)計(jì)基本建議:
1、通常而言,交易系統(tǒng)建立為B*樹索引,對(duì)數(shù)據(jù)庫倉庫,則可考慮Bitmap、Bitmap join等索引。
2、通過分析應(yīng)用軟件對(duì)數(shù)據(jù)訪問方式,展開索引設(shè)計(jì)。
3、索引和數(shù)據(jù)分別存儲(chǔ)在不同的表空間。
4、不要對(duì)索引字段進(jìn)行運(yùn)算。
5、不要對(duì)索引字段進(jìn)行格式轉(zhuǎn)換。
6、不要對(duì)索引字段使用函數(shù)。
7、加強(qiáng)使用和索引效率的分析。
8、不要對(duì)索引字段使用NULL值,因?yàn)樗饕荒艽鎯?chǔ)空值。

B*樹單字段索引設(shè)計(jì)建議:
1、分析sql語句中的約束條件字段。
2、如果約束條件不固定,建議創(chuàng)建針對(duì)單字段的普通B*索引。
3、選擇可選性最高的字段建立索引。
4、如果是奪標(biāo)連接sql語句,注意被驅(qū)動(dòng)表(drived table)的連接字段是否需要?jiǎng)?chuàng)建索引。
5、通過多種sql分析工具,分析執(zhí)行計(jì)劃并以量化形式評(píng)估效果。

復(fù)合索引設(shè)計(jì)建議
1、分析sql語句中的約束條件字段。
2、如果約束條件字段比較固定,則優(yōu)先考慮創(chuàng)建多字段的普通B*樹復(fù)合索引。
3、如果字段是主鍵或唯一條件,或者可選性非常高的字段,盡管約束條件字段比較固定,也不一定要建成復(fù)合索引,可建成單字段索引,降低復(fù)合索引開銷。
4、在復(fù)合索引的第一個(gè)字段作為約束條件,該復(fù)合索引才會(huì)啟用,按照可選性高低,進(jìn)行復(fù)合索引字段的排序。

本文建議摘自羅敏老師的《oracle品悟高性能優(yōu)化》。



















向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI