|
分類:[データベース全般]
2011/07/19(Tue) 12:53:01 編集(投稿者) 2011/07/19(Tue) 09:48:56 編集(投稿者) 2011/07/19(Tue) 08:54:28 編集(投稿者)
WinXP,VS2005(C#),Oracle10g,SI Object Browser11 で開発しています。
お世話になります
画面には名前、フリガナのいづれかを入力し前方一致検索する機能があり これをODP.NETで行うと全表走査しているような反応(数十秒くらい)となります。 しかし、Object Browserで同じSQLを発行した場合は1秒かかりません。
この現象を回避できたかた解決方法を教えていただけないでしょうか
M_NAMEテーブルのNAME,KANA_NAMEはインデックスになっています。
<ODP.NET CommandText内容>
SELECT COUNT(NAME) FROM M_NAME WHERE ( (NAME LIKE :IN_NAME ESCAPE '$') OR (:IN_NAME IS NULL) ) AND ( (KANA_NAME LIKE :IN_KANA_NAME ESCAPE '$') OR (:IN_KANA_NAME IS NULL) )
<Object Browser でのSQL>
SELECT COUNT(NAME) FROM M_NAME WHERE ( (NAME LIKE :'石%' ESCAPE '$') OR ('石%' IS NULL) ) AND ( (KANA_NAME LIKE :'' ESCAPE '$') OR ('' IS NULL) )
|