Laboratory of Mobile Agricultural Chemicals Searcher
携帯農薬検索実験室

研究会

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
48 / 114 ツリー <前へ | 次へ>

〔623〕070326test版 kabe (07/03/27 0:01)

〔642〕Re:070329test版 Hidemi Oya (07/03/30 0:06)
〔643〕Re:070329test版 Hidemi Oya (07/04/01 0:29)

〔642〕Re:070329test版
 Hidemi Oya WEB  (07/03/30 0:06)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>データ更新時の処理が増えたため073028test版よりやや時間がかかります。
 自宅マシンでは、30 秒強で、070328test 版とほとんど変わりませんでした。実は、070328test 版で m_byochu を作るのに 0.8 秒、m_tekiyo2 を作るのに 4.7 秒程度だったので、070328test 版より2秒弱遅くなると踏んでたんですが…。
 SQLite.pas は UTF-16 より UTF-8 の方が効率がよいので、エンコーディングを UTF-8 に変更したのが効いているのかもしれませんね。
 また、データベースサイズも 30 %増しは覚悟してたんですが、思ったより小さかったです。

> 検索速度が向上しているはずです。
 作物タブに比べると、わずかにもたつき感があるような気がします。「あざみうま」とか「あぶらむし」とかレコード数が多い(表示に時間がかかる)病害虫を指定したせいでしょうか…。


-- m_byochu 作成
-- idbyochu, byochu は自動的にインデックスが作成される
CREATE TABLE m_byochu (idbyochu INTEGER PRIMARY KEY AUTOINCREMENT, byochu VARCHAR UNIQUE);
INSERT INTO m_byochu (byochu) SELECT DISTINCT byochu FROM m_tekiyo ORDER BY byochu;

-- mtekiyo2 作成
CREATE TABLE m_tekiyo2 AS
SELECT ... FROM m_tekiyo AS a
LEFT JOIN m_sakumotsu ON a.sakumotsu = m_sakumotsu.sakumotsu
LEFT JOIN m_byochu ON a.byochu = m_byochu.byochu;

〔643〕Re:070329test版
 Hidemi Oya WEB  (07/04/01 0:29)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

> 作物タブに比べると、わずかにもたつき感があるような気がします。
 これは、m_tekiyo の idbyochu のインデックスである idxIdByochu が作成されてないのが原因のようです。idxIdByochu を作成すると、速くなりました。
 なお、PRIMARY KEY や UNIQUE を付与したフィールドには自動的にインデックスが作成されるので、idxMByochu や idxMSaku は作成しなくても良さそうです。これらを削除して試してみましたが、検索時間は変わりませんでした。

 ちなみに、下記のように複数のフィールドを指定できるようになっていますが、これだと idsaku に対する検索速度向上効果はありますが、idbyochu に対する効果はありません。文法的には許容されてるけど、最初に指定したフィールドしかインデックスを作成しないような実装になってるんですかねえ?
create index idxIdMTekiyo on m_tekiyo (idsaku, idbyochu);

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
48 / 114 ツリー <前へ | 次へ>
ページ:  ┃  記事番号:   
(SS)C-BOARD vv3.8 is Free.