Windowsデスクトップ検索-SQL信じられな遅'%検索%'
質問
うことによりクエリをwindowsデスクトップ検索APIを使用してください。
と言うのもあるのでしょうけどねヘイトのwindows7の検索GUIさんにと書くんです。たくさん持っているんですがファイルの索引(約1.000.000)、検索したいため。のようなもの:表示毎に名を含む"bunny".
こちらはiショック性能の問題です。検索
SELECT "System.ItemPathDisplay"
FROM "SystemIndex"
WHERE System.FileName LIKE 'egon%'
では早いですね。もの %egon
ています。が %egon%
かかります。いまの自然の中での指数を解決するために必要となる可能性に大幅に増加やればやっても間違っています。
ここでの問いは
- このwindows指数は大きなSQLデータベース?
- その場合、どこで見ることができま正確な情報の構造についてのDB(主キーインデックス).
している場合は、そのばねのように最適化してください。
代替質問 は誰もが知って高速のSQLステートメントのすべてのファイル egon どこかにするためのものでした。
編集:私は好きではなGUIを検索
でも、だけで、直感的でないと比べてください。を無効にしている場合には犬用のXPでのインタフェースができるような検索クエリのように:
- すべての以前のファイルが1月
- 以上10MB
- 名前パターン
*_homework_*.docx
してみてくださいWindows7でなく"学習"の構文です。と地獄にい ない 知りたい方は別の構文を見つファイルです。
その他の主な問題もあって足しています。ほとんどの時間しか知らのファイル名(部品)だいています。をご利用いただくと、この方法また幾つかの問題:
- まず、す接頭辞で名:
- そのフォルダ名をレイアウトが愚かで順序付けによる親フォルダは、フルパスで、 考え, で..多田...次のポイント)
- そして、もっと面倒した場合、リストの結果やソートについては、時間がかか
やってきて、自分のやりたいと思っていっ制す。また素早くチェックしてもらい、検索の一部の平均サイズのフォルダに"test"とんだファイルです。そのため並べ替えてフォルダを確認私の第二のポイント)ただけで検索をは永遠に...うん、私のタイピングたかに見つけようとするのこんにちは"...あら、完成から約20ファイルです。そこで、能のようで....Okりも、いっそうのようにその回収..それでもゆっくり自分の味---
なので、十分なcursing検索:-)
解決
彼らは名前にインデックスを構築しているように見えますので、それは限り、あなたは文字列の先頭を指定してきたようにインデックスを使用することができますが、あなたがいない場合、それはテーブルスキャンを使用する必要があります。
:
のようなものを使ってみて、その後、彼らはマイクロソフト社のフルテキスト検索エンジンを使用していると仮定すると、 ... system.filenameは 'エゴン' を含む
二つの選択肢は基本的にあります:それは無効として拒否されます(つまり、このSQLインタフェースはそのF-T検索拡張をサポートしていない)、またはそうでなければかなり高速になります。
。編集:おっと - 構文は "(system.filename、 'エゴン・')が含ま" である必要があります。その試合」申し訳ありません。
他のヒント
たぶんしてみてください。
"SELECT \"System.ItemPathDisplay\" FROM \"SystemIndex\" WHERE CONTAINS(System.FileName, 'egon')";
これは遅いです。その理由は、あなたがanwhere文字列ではなく、あなたが内容のため、テーブル全体をスキャンしなければならないことを意味する文字列の先頭にマッチを探しているということです。