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

研究会

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

〔474〕ACFinder 060831版 kabe (06/08/31 22:58)
〔475〕Re:ACFinder 060831版 Hidemi Oya (06/09/01 0:28)
〔477〕SQL エディタの色分け Hidemi Oya (06/09/01 22:05)
〔479〕vTsushoTekiyo Hidemi Oya (06/09/02 11:58)

〔474〕ACFinder 060831版
 kabe WEB  (06/08/31 22:58)

引用なし
   kabeです。

060831版です。
http://acfinder.kabe.info/

[#468]
屋号抜き取り辞書に「トクソー」を追加しました。
ただし例によってデータベース更新しないと反映されません。

>SQL タブで、http://www.sqlite.org/lang_expr.html にある標準のスカラー関数、集約関数で色分けされないものがあります。
一応追加してみましたので、確認お願いします。

[#471]
>SQL タブのエディタの右ボタンクリックで、「切り取り」が単なる削除になっていて、クリップボードに切り取ったテキストが入りません。
「切り取り」は修正しました。
ただ、「削除」のみは付けてないんですが、必要ですか?

>あと、エディタの右ボタンメニューに、「全選択」と「全消去」があると便利かな。
追加しました。

[#470]
vTekiyo, vTsushoTekiyo を tekiyoビューからではなく、実テーブル m_tekiyo と m_kihon から作成するようにしてみました。
ただ劇的に速くなったようには感じられないのですが、インデックスの作成方法とか他にテクニックあるんでしょうか。

>vTsushoTekiyo の最後に「ORDER BY LENGTH(meisho) DESC」を追加するといけそうです。
ORDER BY LENGTH(meisho)の部分、薬剤タブのメーカーごとの農薬名を選択するコンボボックスの作成に利用してみました。一番短い農薬名が先頭に来ます。

〔475〕Re:ACFinder 060831版
 Hidemi Oya WEB  (06/09/01 0:28)

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

>>SQL タブで、http://www.sqlite.org/lang_expr.html にある標準のスカラー関数、集約関数で色分けされないものがあります。
>一応追加してみましたので、確認お願いします。
 どわ〜、あっという間に全部追加しちゃったんですね。ここまで対応してると、微妙に残っているのは残念なので、いくつか気づいた点を…。
 ビット演算子の '|'、単項演算子の '!', '~' が抜けているようです。あと、exists が exist として登録されちゃってるようです。

>ただ、「削除」のみは付けてないんですが、必要ですか?
 と、改めて聞かれてみると…う〜ん、範囲選択後の Delete キーしか使ってないですね(^_^;)。

>ただ劇的に速くなったようには感じられないのですが、インデックスの作成方法とか他にテクニックあるんでしょうか。
 確かに、それほど速くなった感じがしませんね。う〜ん、何でだろう?
 私が自前ソフトで確認した(ACFinder では CREAE VIEW できないので)時は、集約関数を使ったクロス表作成で、tekiyo と全く同様に 0.1 秒で表示まで完了しました(従来の vTsushoTekiyo だと3秒前後)。データベースは UTF-8 版の acis.db なので、インデックスとかは全く同じです。UTF-8/16 の違いですかねえ? 明日もう少し詰めてみます。

>ORDER BY LENGTH(meisho)の部分、薬剤タブのメーカーごとの農薬名を選択するコンボボックスの作成に利用してみました。一番短い農薬名が先頭に来ます。
 う〜ん、従来通りのようですが?

〔477〕SQL エディタの色分け
 Hidemi Oya WEB  (06/09/01 22:05)

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

'*' は乗算演算子よりも SELECT 文で使うことの方が多いと思いますが、SELECT 文の '*' がボールドで色分けされてると、結構違和感があります。'SELECT *' や 'DISTINCT *'、あるいは '(*)' なら色分けしないってのは、可能でしょうか?
 無理なら、記号1文字演算子は色分けしない方が良いかなあ…。

〔479〕vTsushoTekiyo
 Hidemi Oya WEB  (06/09/02 11:58)

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

>明日もう少し詰めてみます。
 試してみたら、従来のビューでも新しいビューでも速度は変わりませんでした。先日確認したときに速かったのは、[#470] のビューなので、DISTINCT を付け忘れてたからというのが真相のようです(^_^;)。

 で、vTsushoTekiyo をビューではなく CREATE TEMP TABLE で一時テーブルとして作成すると(SQLite.pas では標準状態だと一時テーブルはメモリ上に作成)、最初にテーブル作成に若干時間はかかりますが、検索速度は上がりますね。
 検索開始から表示完了までの時間は、私の環境では下記の通りです。(2) のような複雑なクエリには大きな効果がありますが、集約関数を使う場合は vTsushoTekiyo では同通称異適用に対応できないので、定型処理で使うことはないでしょう。作物タブや病害虫タブでは体感できるほどの効果は期待できないので、vTekiyo, vTsushoTekiyo を一時テーブルにする意味はあまりなあそうです。

一時テーブル作成 3.8 秒

(1) の実行
ビュー: 1回目 1.2 秒、2回目以降 0.9 秒
テーブル: 1回目 0.9 秒、2回目以降 0.6 秒

(2) の実行
ビュー: 1回目 3.9 秒、2回目以降 3.7 秒
テーブル: 1回目 0.2 秒、2回目以降 0.2 秒

(1) SELECT * FROM vTekiyo WHERE (sakumotsu LIKE '稲%')

(2) SELECT
 zaikei,
 tsusho,
 sakumotsu,
 jiki,
 kaisu,
 seibun1,
 kaisu1,
 seibun2,
 kaisu2,
 seibun3,
 kaisu3,
 seibun4,
 kaisu4,
 seibun5,
 kaisu5,
 MAX(CASE byochu WHEN 'べと病' THEN baisu ELSE '' END) AS hex("べと病"),
 MAX(CASE byochu WHEN 'うどんこ病' THEN baisu ELSE '' END) AS hex("うどんこ病"),
 MAX(CASE byochu WHEN '灰色かび病' THEN baisu ELSE '' END) AS hex("灰色かび病"),
 MAX(CASE byochu WHEN '菌核病' THEN baisu ELSE '' END) AS hex("菌核病"),
 MAX(CASE byochu WHEN '斑点細菌病' THEN baisu ELSE '' END) AS hex("斑点細菌病"),
 MAX(CASE byochu WHEN '褐斑病' THEN baisu ELSE '' END) AS hex("褐斑病"),
 MAX(CASE byochu WHEN '黒星病' THEN baisu ELSE '' END) AS hex("黒星病"),
 MAX(CASE byochu WHEN '炭疽病' THEN baisu ELSE '' END) AS hex("炭疽病"),
 MAX(CASE byochu WHEN 'つる枯病' THEN baisu ELSE '' END) AS hex("つる枯病"),
 CONCAT(', ', CASE WHEN byochu NOT IN ("べと病","うどんこ病","灰色かび病","菌核病","斑点細菌病","褐斑病","黒星病","炭疽病","つる枯病") THEN byochu||''||baisu ELSE '' END) AS hex("その他")
FROM vTsushoTekiyo
WHERE
 sakumotsu IN ("きゅうり","きゅうり(施設栽培)")
 AND yoto IN ("殺菌剤")
 AND hoho LIKE '%散布%'
 AND (jiki LIKE '収穫%' OR IFNULL(jiki, '-') = '-')
 AND zaikei IN ("乳剤","水和剤","水溶剤","液剤","マイクロカプセル剤","エアゾル")
 AND shurui NOT IN ("プロパモカルブ塩酸塩液剤")
GROUP BY tsusho
ORDER BY seibun1, seibun2, seibun3, seibun4, seibun5

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