投稿日 | : 2003/08/28(Thu) 19:28 |
投稿者 | : なかむぅ |
Eメール | : |
URL | : |
タイトル | : Re^5: 検索を早くしたい |
> ところがJETの場合、MEMO型フィールドにIndexは利用できなかったりするのです。
> ……正確には、張れない事もないのですが、完全な効果は得られません。
> (無理に張っても、文字列の後半部分にはインデックスが働きません)
大変失礼しました!
当方、ASP-mdbでシステム開発をしています。
あまりMEMO型を使ったことがなかったので、見当違いなことを発言しすみません。
> そもそも、『WHERE 回答 like '*ListBox*'』のような部分検索においては、
> JETの"RushMore Technology"によるクエリー最適化が働きませんので、ほとんど意味はありません。
勉強不足でした。
LIKEではインデックスが使用されないんですね。
他DBでも同じなんでしょうか、、、
> 15分→20時間(泣)という結果になった事さえありますし。
やはり、よくある話なんですね(><
> もっとも、インデックスが有効に利用されるような設計でなければ、
> 意味はないですけれどね。フィールドに無意味にインデックスを張ったせいで、
> 今度は更新速度が低下してしまった、という話も聞きますし。
DB設計をする上で、しっかり考えなければいけない所ですよね。
> # 複雑なSQLでは、SQLが正しく最適化されているかどうかを検証するために、
> # レジストリの実行プランフラグを有効にして、showplan.outファイルの結果を確認したり、
> # DAOのISAMStatsメソッド や ADOのJET_SCHEMA_ISAMSTATSスキーマを利用して、
> # ディスクI/Oやロック頻度について調べてみると良いかもしれません。
これはJETの話なんでしょうか?
それとも、Access、SQL Server、、、
Oracle等ではSQLトレース?みたいな事を聞いたことがあるのですが、、、
博識な方はいろいろ御存知ですよね、感心しました。
neptuneさん、あまりお役に立てず申し訳ありませんが
頑張って下さいね!!