[SQL ] 為何同樣條件查詢時間不一樣?

看板Database作者 (haha)時間13年前 (2012/05/02 23:44), 編輯推噓5(503)
留言8則, 6人參與, 最新討論串1/1
最近因為工作業務上需求須要挑一些資料,因為資料有上百萬筆所以有將 index 索引 的條件盡量往前塞 可是同樣條件的 SQL A: SELECT * FROM TABLE WHERE INDEX_FIELD='條件1' AND NOT_INDEX_FILED = '條件2' B: SELECT INDEX_FIELD FROM TABLE WHERE INDEX_FIELD='條件1' AND NOT_INDEX_FILED = '條件2' 上面 A 的執行時間竟然比 B 還要長?這是為啥呢? 我的環境是 Oracle 8g 然後用 PL/SQL Developer 下去 run SQL 的 不知道為啥有這樣的差異 ._.? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.175.214

05/02 23:53, , 1F
因為 *
05/02 23:53, 1F

05/02 23:54, , 2F
* 全挑跟指定有關係嗎?
05/02 23:54, 2F

05/03 00:24, , 3F
一次叫一百個人跟一次叫二個人...當然有差啊~
05/03 00:24, 3F

05/03 03:52, , 4F
拿欄位資料的多寡對速度也是很傷的
05/03 03:52, 4F

05/03 20:04, , 5F
如果是Count(*)和Count(column)也適用如上道理嗎?
05/03 20:04, 5F

05/03 22:30, , 6F
不同DB有差, 記得有的沒差, 有的有差, 所以請用 count(pk)
05/03 22:30, 6F

05/09 01:34, , 7F
是roll lock 跟 all page lock的分別嗎?
05/09 01:34, 7F

05/09 01:35, , 8F
↑row
05/09 01:35, 8F
文章代碼(AID): #1FeLPr-Y (Database)