2007/10/9

Informix Query 時間過長

是否有曾遇過Informix在查詢時時間過長的問題
如果排除Server本身硬體的問題,大多數的原因都是使用了不當的SQL Query 指令


DB軟體商本身就有建議要避免使用下列的指令
1. Difficult Regular Expression
像Matches 及 Like 本身支援 Wildcard (技術上就叫 reqular expressions)
eg: select * from xxx where date like '200710%'
在資料庫查詢使用這些指令,本身是無法利用index來加速查詢,資料庫本身只能用線性一筆筆從頭查到尾,如果你資料量愈大,可以想見查詢時間一定會更久

2. Noninitial substring
使用這些指令,資料庫也無法利用Index來判斷,所以查詢時間也會拉長
eg: select * from xxx where inventory [1,2] > '10'

沒有留言: