Oracle數據庫支持類似於 LIKE '%界面%'這種格式的對字符串的模糊查詢。
為了得出其查詢速度快或慢的結論,做了如下實驗:
(1)在趙老師的機器上產生了一個10萬條記錄的表,不過它只有一個長度為1000 類型為VARCHAR 的字段。
(2)在VB程序中書寫了如下程序段
Dim db As New ADODB.Connection
Dim adoPrimaryRS As New ADODB.Recordset
db.CursorLocation = adUseClIEnt
db.Open "PROVIDER=MSDASQL;driver={Microsoft ODBC for Oracle};server=zl;uid=zlhis;pwd=his;"
adoPrimaryRS.CursorLocation = adUseClIEnt
adoPrimaryRS.CursorType = adOpenStatic
adoPrimaryRS.LockType = adLockBatchOptimistic
Debug.Print Time, Timer
Set adoPrimaryRS = db.Execute("select NAME from TEST where name like '%中國國%' ")
Debug.Print Time, Timer
(3)經多次運行,並把匹配串改為如'%1%','%aklsdjflsasdfasd%'等,發現所耗時間在5——10秒之間波動,其值與匹配串的長度、返回記錄的數量都關系。而與記錄集的CursorLocation等屬性關系不大。
(4)後來我把匹配串改成'34%'之類的格式,結果所耗時間一般在3秒左右,比較穩定。
(5)最後我把匹配串改成'%34'之類的格式,結果所耗時間與'%34%'差不多。