[系統] Oracle決定使不使用INDEX

看板Database (資料庫)作者 (run and fall)時間11年前 (2013/09/24 17:28), 編輯推噓0(0028)
留言28則, 3人參與, 最新討論串1/1
大家好 小弟今天遇到一個非常奇怪的情況 我建立一個新的TABLE 欄位只有一個ID 把rownum放進ID INSERT 五百萬筆資料 也就是TABLE內有ID 1~ ID 5000000 再建立一個INDEX ON ID 接著測試 SELECT ID FROM TABLE WHERE ID=435323 發現執行計劃居然是FULL TABLE SCAN 此時再建立UNIQUE INDEX ON ID 再下一次剛剛的SQL發現執行計劃就走UNIQUE INDEX了 因為這是新的TABLE應該不會有需要analyze的問題.. 我覺得這是一個非常基本的情況..不知為何沒使用INDEX? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.65.163.29

09/24 22:45, , 1F
id column type is?
09/24 22:45, 1F

09/24 22:48, , 2F
關鍵字 "events 10053" 弄懂這個你就有答案了
09/24 22:48, 2F

09/24 22:52, , 3F
kobedisel大,我試了varchar,number都有此情形
09/24 22:52, 3F

09/24 22:52, , 4F
iFEELing,我馬上去看,謝謝!
09/24 22:52, 4F

09/25 22:24, , 5F
iFEELing 大大也是高手,event 10053會產生會解讀
09/25 22:24, 5F

09/25 22:27, , 6F
基本上以cbo的db,你就可以知道oracle為何那麼走
09/25 22:27, 6F

09/25 22:28, , 7F
有幾會的話是否可以跟ifeeling交流一下
09/25 22:28, 7F

09/26 16:24, , 8F
不好意思,不知道iFEELing大會不會再看這篇..想再請教一下
09/26 16:24, 8F

09/26 16:25, , 9F
今天我又試了一次普通的index,Oracle居然採用了,我懷疑是不
09/26 16:25, 9F

09/26 16:25, , 10F
是我上次建錯table,想請問我文章說的那種情形,會有可能發生
09/26 16:25, 10F

09/26 16:26, , 11F
嗎? (id都不重複,建立非uniuqe的index卻不採用)
09/26 16:26, 11F

09/26 17:56, , 12F
一般來說按照你建的資料筆數,與資料看起來並無重複的
09/26 17:56, 12F

09/26 17:57, , 13F
不管是建unique or normal index按照你的query來說
09/26 17:57, 13F

09/26 17:58, , 14F
應該都是會走index的,除非你where 條件有欄位型態轉換
09/26 17:58, 14F

09/26 17:59, , 15F
不然按照這樣的比數跟資料分布狀態oracle應沒道理走full
09/26 17:59, 15F

09/26 17:59, , 16F
table scan,而且你也不是用bind variable的方式執行
09/26 17:59, 16F

09/26 18:01, , 17F
嗯...那我懷疑是我當初建立index時下錯table了..
09/26 18:01, 17F

09/26 18:01, , 18F
雖然走了一條冤枉路,但學到很多,謝謝樓上幾位大大
09/26 18:01, 18F

09/26 18:04, , 19F
不過當你覺得oracle應該走什麼plan實際上卻不走的話
09/26 18:04, 19F

09/26 18:05, , 20F
就可以使用event 10053去看為何,一般來說我都是用
09/26 18:05, 20F

09/26 18:05, , 21F
oradebug比較多,我比較習慣,印象中alter session set
09/26 18:05, 21F

09/26 18:06, , 22F
event 應該也可以,上網查一下就有,看個人習慣
09/26 18:06, 22F

09/26 18:07, , 23F
而最常用的event就2個 10046 10053這兩個會了,基本上
09/26 18:07, 23F

09/26 18:07, , 24F
大半部分的效能難題都可以解了
09/26 18:07, 24F

09/26 18:10, , 25F
最後推薦你我常看的網路文章就是大陸的老熊跟蓋國強
09/26 18:10, 25F

09/26 18:10, , 26F
這兩個都是oracle ace都很強一個程式強另一個系統熟
09/26 18:10, 26F

09/26 18:11, , 27F
有空可以多多看看這兩人文章或是書,對dba很有幫助的
09/26 18:11, 27F

09/26 18:19, , 28F
好的!! 謝謝k大
09/26 18:19, 28F
文章代碼(AID): #1IGLiy3t (Database)
文章代碼(AID): #1IGLiy3t (Database)