過去の桐井戸端BBS (桐ver.8)
16908 検索を高速化したい 郷司 2002/08/08-17:49
ご無沙汰です、早速ですが一つお願いします。(Ver8 sp6)

検索時間の短縮方法を ですが、今までは索引を作っておけばいいと思っていました。

今度、8名ほどで入力・修正するTBLを共有ファイルにするようになりました。
修正時は、項目[No](長整数)で検索(一括で、[No]_&検索 としている)して
目的のレコードで修正するのですが、その時の検索時間がかかって、
なんとか短くしたいのです。
ちなみにデータ数は8000件程度で、10秒くらい掛ります。

マニュアルには、索引の効果があるのは並べ替え、表引き、結合表、併合
といったことが載ってました、で、検索には効き目がないのか....です。
私の長い間の勘違いだった???

共有では索引が無視されるようですので、[No]で並び替えをやって書き出し、
それを開いて検索したりとか、いろいろやってみているのですが、
こうすれば速くなるといった結果が出ません。

何らかの手がかりをお願いしたいです。

16909 V7のマニュアルは説明不足? A.I. 2002/08/08-19:48
記事番号16908へのコメント
郷司さん

手許にV8のマニュアルがなかったので、V7のを見ましたが、
>マニュアルには、索引の効果があるのは並べ替え、表引き、結合表、併合
>といったことが載ってました、で、検索には効き目がないのか....です。
上記のように誤解しやすい表現になっていました。
V5のように、索引に従って整列(並べ替え)を、予めやっておくべきか?
せずとも、主整列項目で検索をすれば自動的に索引を使用して検索されるのか?
説明がありませんでした。

>何らかの手がかりをお願いしたいです。
>
V5しか使っていないので外しているかもしれませんが、
書き出しでは、索引までは、書き出されないのでは?
16914 Re:検索の高速化で 尾形 2002/08/09-06:53
記事番号16908へのコメント
ジャンプ 行番号=先頭
代入   &実行リターン=&検索-[No]
ジャンプ 行番号= + &実行リターン
条件   ([No]<&検索) 検索 ∨,[No]{=&検索}
条件   ([No]>&検索) 検索 ∧,[No]{=&検索}

こんなのはどうでしょうか

16917 Re:V7のマニュアルは説明不足? 郷司 2002/08/09-09:43
記事番号16909へのコメント
どうも、A.I.さん

>V5のように、索引に従って整列(並べ替え)を、予めやっておくべきか?
>せずとも、主整列項目で検索をすれば自動的に索引を使用して検索されるのか?

そうなんですねえ、索引が無視されないならばいいのですが、
新たな索引なら作成が可能なのかな?、そんなことはできないですよね。

>V5しか使っていないので外しているかもしれませんが、
>書き出しでは、索引までは、書き出されないのでは?

そうなんです、索引まで書き出されないので困っているというのが
今回のSOSに至る主因です。
16918 Re:検索の高速化で 郷司 2002/08/09-10:14
記事番号16914へのコメント
どうも、尾形さん ありがとうございます。

>代入   &実行リターン=&検索-[No]

毎回、第一レコードの[No]との差をとって、その差(絶対値?)だけ飛んで...
う〜ん よくわかりません...。(スミマセン)(^^ゞ(^_^;;
[No]が順番に入力されているならば、いいのですかね?
ちなみに説明不足でしたが、[No]はランダムに入力されています。
16919 Re:V7のマニュアルは説明不足? 尾形 2002/08/09-10:23
記事番号16917へのコメント
>そうなんです、索引まで書き出されなので困っているというのが
書き出し 枠組み,"A.tbl"
書き出し 表,"A.TBL",追加,*


16921 Re:検索の高速化で 尾形 2002/08/09-10:31
記事番号16918へのコメント
>[No]はランダムに入力されています。
やっぱそうでしたか (^^;
これじゃダメですね


16922 Ver.5より不便になるはずない! A.I. 2002/08/09-10:56
記事番号16917へのコメント
>>V5のように、索引に従って整列(並べ替え)を、予めやっておくべきか?
>>せずとも、主整列項目で検索をすれば自動的に索引を使用して検索されるのか?
>
V8がV5より機能が劣るはずがないので、主整列項目で検索すれば、自動的に
索引を使用して検索されるのが正解のはずだが・・・・・・・また、共有の状態では、
索引が利用できないという仕様も、本来ならおかしいし、もしそうなら、V5から
V8にバージョンアップする人は、ほとんどいないのでは?・・・・・・・
8000件程度のデータ量で検索時間10秒は、遅すぎます。
何か、別の原因があると思います。
ここは今、盆休み中?のベテラン諸氏の休暇明けを待ってアドバイスを書き込んでもらったら・・・・・・・・?

16926 Re:V7のマニュアルは説明不足? 郷司 2002/08/09-12:38
記事番号16919へのコメント
どうも、尾形さん

>書き出し 枠組み,"A.tbl"
>書き出し 表,"A.TBL",追加,*

これなら、可能ですね。V(^_^)v

しかし、ちょっと待って.....
最初の質問に私が要らぬ事を書いたものですから、それで
方向違いの行き先ですねこっちは。
別のファイル作って速くやっても、修正したいのは
生データの元ファイルですから幾ら速くできても意味無い
わけですよね。(墓穴を掘ることなってたようで)

16927 Re:検索の高速化で 尾形 2002/08/09-13:01
記事番号16921へのコメント
この[No]ってどういった項目なのでしょうか?

ちょっとした思いつきなのですけど
フォーム開始時に[No]で昇順でならべておいて
500行程度毎に[No]を配列変数に確保しておいて
検索時は変数から判断して、ジャンプさせて
そこから下向きに検索させるとか

まぁ、データの状況によっては全く
無理な方法かもしれませんけど
思いつくままにすいません

いずれにしても、表を分割するとか
定義を見なおすとかするしか手は無いのでしょうね
結局V5と同じ手法をとる羽目になるとか (^^;;

16932 Re:検索の高速化で 郷司 2002/08/09-19:01
記事番号16927へのコメント
>この[No]ってどういった項目なのでしょうか?

項目名そのままです、普通の伝票の整理番号です

>結局V5と同じ手法をとる羽目になるとか (^^;;

V5と同じ手法っていうのは、索引を定義するってことですか?
16938 Re:検索の高速化で 尾形 2002/08/10-07:48
記事番号16932へのコメント
>V5と同じ手法っていうのは、索引を定義するってことですか?
v5の時は「専有」か「参照」しかなかった訳ですから
検索が遅くなるなんて事は無かったですよねぇ (^^;

「共有」を使わず(使えず)になんとか「専有」と「参照」のみ
でゴリゴリとやるしかなかったですよね

16945 Re:検索の高速化で 郷司 2002/08/10-21:01
記事番号16938へのコメント
>v5の時は「専有」か「参照」しかなかった訳ですから
>検索が遅くなるなんて事は無かったですよねぇ (^^;
>
>「共有」を使わず(使えず)になんとか「専有」と「参照」のみ
>でゴリゴリとやるしかなかったですよね

そうでしたすね、皆んなで同時に使うってことは夢でした ハイ。

戻る