成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

DB2索引創(chuàng)建原則

數(shù)據(jù)庫
索引創(chuàng)建在數(shù)據(jù)庫系統(tǒng)中是很常見的操作,DB2數(shù)據(jù)庫的索引創(chuàng)建需要遵循一定的原則,下面就讓我們一起來了解一下。

DB2索引創(chuàng)建都應(yīng)該哪些原則呢?這是很多人都提到的問題,下面就為您詳細(xì)介紹DB2索引創(chuàng)建原則,供您參考學(xué)習(xí)。

DB2索引實(shí)現(xiàn)是一個(gè)B+樹,通過索引可以實(shí)現(xiàn)快速查詢,避免全表掃描以此來減少IO操作。

索引是對表數(shù)據(jù)的一種抽象,通過抽取有限數(shù)據(jù),對數(shù)據(jù)的分布進(jìn)行計(jì)算,以此來完成對數(shù)據(jù)的快速檢索。

索引創(chuàng)建語句

  1. CREATE INDEX <INDEX_NAME> ON <TABLE_NAME> (<COLNAME1,COLNAME2…>

創(chuàng)建索引需要注意的地方:

索引應(yīng)該用來提高查詢速度,但是會對更新和刪除操作帶來負(fù)面影響,因?yàn)橐礁滤饕K运饕龖?yīng)該創(chuàng)建到更新、刪除相對比讀取少的表上。

索引需要獨(dú)立的空間進(jìn)行存儲和管理。索引是需要磁盤空間來存儲。所以避免重復(fù)創(chuàng)建冗余索引。如下:

  1. “CREATE TABLE TEST_IDX (COL1 INT NOT NULL, COL2 INT NOT NULL, COL3 IN NOT NULL)”“CREATE INDEX TEST_IDX_IDX1 ON TEST_IDX (COL1, COL2, COL3)” 

已經(jīng)有索引TEST_IDX_IDX1在三個(gè)列上,在創(chuàng)建”CREATE INDEX TEST_IDX_IDX2 ON TEST_IDX (COL1, COL2)”,這樣的索引一般沒有什么作用。

索引用來避免表掃描。通過索引對大量數(shù)據(jù)抽取有限部分,形成一個(gè)相對少量的有序數(shù)據(jù)結(jié)構(gòu),通過對有序數(shù)據(jù)結(jié)構(gòu)的查找可以快速想要查找的數(shù)據(jù)。所以索引適合建立在數(shù)據(jù)量比較大的表上,而且該表上的查詢經(jīng)常是根據(jù)條件查詢部分?jǐn)?shù)據(jù)。比如一些系統(tǒng)基礎(chǔ)表,如SYSTEM表,這些表數(shù)據(jù)量小,而且經(jīng)常是查詢?nèi)繑?shù)據(jù),所以這些表上建立索引對性能的影響不是很大,完全可以避免,以免對管理造成影響。

創(chuàng)建索引的目的還有一個(gè)就是保證數(shù)據(jù)唯一性,可以利用”CREATE UNIQUE INDEX <INDEX_NAME> ON <TABLENAME> (<COLNAME>)”,來完成。

主鍵會隱式創(chuàng)建索引,所以請不要在主鍵上創(chuàng)建索引浪費(fèi)空間。

盡量減少索引的創(chuàng)建。DB2路徑訪問優(yōu)化器會根據(jù)表中所提供的索引來完成盡可能多的訪問路徑的成本估計(jì)。創(chuàng)建過多的索引意味著DB2優(yōu)化器生成更多的訪問路徑,完成更多的訪問計(jì)劃成本估算,這會增加SQL語句編譯時(shí)間。

創(chuàng)建唯一索引可以避免排序。因?yàn)樗饕怯行驍?shù)據(jù)結(jié)構(gòu),在進(jìn)行掃描時(shí),DB2會默認(rèn)按照順序輸出結(jié)果,而不是按照插入先后。通過創(chuàng)建唯一索引可以避免排序,提高查詢性能。

具有大量重復(fù)數(shù)據(jù)的列上不要?jiǎng)?chuàng)建索引。在大量重復(fù)的列上創(chuàng)建索引沒有任何意義。如下數(shù)據(jù)結(jié)構(gòu):表中字段col1有大量重復(fù)數(shù)據(jù),其中的數(shù)據(jù)分布是按照90%的Y,和10%的N來分布。這樣的列上創(chuàng)建索引沒有任何意義。在查詢條件為col1=‘Y’時(shí),該表的索引掃描和表掃描沒有特大差異。根據(jù)實(shí)踐經(jīng)驗(yàn),列上的數(shù)據(jù)分布應(yīng)該均勻,并且抽密度不能大于5 ‰。

創(chuàng)建如下表:

  1. “CREATE TABLE TEST1 (NO INT NOT NULL, NAME CHAR(5))”  
  2.  
  3. “CREATE INDEX TEST1_IDX_1 ON TEST1 (NO)”  
  4.  
  5. “INSERT INTO TEST1 SELECT ROW_NUMBER() OVER(), CHR(INT(RAND()*75+48))||CHR(INT(RAND()*75+48))||CHR(INT(RAND()*75+48)) FROM SYSCAT.COLUMNS T1 JOIN SYSCAT.COLUMNS T2 ON T1.COLNAME!=T2.COLNAME FETCH FIRST 100 ROWS ONLY“  
  6.  
  7. “SELECT * FROM TEST1 WHERE NO = 50”  

以上就是DB2索引創(chuàng)建原則介紹。

 

 

【編輯推薦】

DB2循環(huán)查詢的實(shí)現(xiàn)方法

DB2分區(qū)數(shù)據(jù)庫的前滾操作

DB2分區(qū)數(shù)據(jù)庫備份的實(shí)現(xiàn)方法

DB2目錄結(jié)構(gòu)詳解

DB2批量執(zhí)行SQL腳本的實(shí)現(xiàn)

 

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-09-07 17:36:37

DB2索引設(shè)計(jì)準(zhǔn)則

2010-11-02 11:22:06

DB2索引類型

2010-11-03 16:01:31

DB2索引的語法

2010-11-02 14:08:29

DB2創(chuàng)建用戶

2010-11-04 15:34:20

DB2索引優(yōu)化

2010-11-02 11:30:09

DB2索引結(jié)構(gòu)

2010-11-02 14:45:12

DB2創(chuàng)建表空間

2010-11-03 16:32:10

DB2創(chuàng)建數(shù)據(jù)庫

2010-11-03 13:55:39

創(chuàng)建DB2實(shí)例

2010-09-01 09:27:21

DB2表名

2010-09-30 14:48:26

DB2查詢

2010-07-28 08:58:50

DB2并行索引

2010-08-04 15:00:06

DB2未使用索引

2010-11-03 15:49:32

DB2刪除表

2010-08-26 11:37:38

DB2命令

2010-08-31 10:20:10

DB2MSCS集群

2010-09-30 09:53:05

DB2創(chuàng)建表空間

2010-11-03 15:56:13

DB2創(chuàng)建表

2010-11-01 16:19:18

2010-09-30 10:04:06

DB2創(chuàng)建表空間
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲国产偷 | 日韩久久久久久 | 成人精品一区二区 | 国产网站在线免费观看 | 欧美日韩一区二区三区在线观看 | 中文字幕在线欧美 | 久久久精品视频一区二区三区 | 91久久精品 | 成人在线国产 | 91文字幕巨乱亚洲香蕉 | 午夜免费视频 | 久久久久国产一区二区三区四区 | 日韩av美女电影 | 国产精品久久久久久久午夜 | 久久久视频在线 | 狠狠久 | 亚洲成人av一区二区 | 国产精品夜夜夜一区二区三区尤 | 亚洲国产高清在线观看 | 亚洲欧美日韩在线不卡 | yiren22 亚洲综合| 在线免费观看毛片 | 国产乱肥老妇国产一区二 | 免费观看黄a一级视频 | a级大毛片 | av福利网 | 蜜桃视频在线观看免费视频网站www | 日本在线你懂的 | 久热伊人| 不用播放器看的av | 国产精品久久av | 国产精品99一区二区 | 成人影院免费视频 | 大香网伊人 | 国产精品国产三级国产aⅴ原创 | 91精品久久久久久久 | 中文字幕丁香5月 | a久久| 国产精品99久久久久久动医院 | 久久久tv | 欧美日韩国产在线 |