Re: 作物タブの成分1~5

このトピックの投稿一覧へ

なし Re: 作物タブの成分1~5

msg# 1.3.3.1
depth:
3
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2014.02.14 22:37 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
前のアーティクルのコードを自宅マシンで実行すると、標準状態で平均 0.50 秒程度、修正 tvTsushoTekiyoSaku で
平均 1.45 秒程度とやはり3倍弱かかります。が、tSeibun の作り方とtvTsushoTekiyoSaku を下記のようにすれば、標準状態と同じ平均 0.50 秒程度で意図する動作をするようになりました。
--/d
begin transaction;
drop table if exists tSeibun;
create temp table tSeibun (ippanmei varchar primary key, seibun varchar);
insert or ignore into tSeibun select distinct seibun1, ifnull(seibun, seibun1) from m_kihon left join seibun on ippanmei = seibun1 where seibun1 is not null;
insert or ignore into tSeibun select distinct seibun2, ifnull(seibun, seibun2) from m_kihon left join seibun on ippanmei = seibun2 where seibun2 is not null;
insert or ignore into tSeibun select distinct seibun3, ifnull(seibun, seibun3) from m_kihon left join seibun on ippanmei = seibun3 where seibun3 is not null;
insert or ignore into tSeibun select distinct seibun4, ifnull(seibun, seibun4) from m_kihon left join seibun on ippanmei = seibun4 where seibun4 is not null;
insert or ignore into tSeibun select distinct seibun5, ifnull(seibun, seibun5) from m_kihon left join seibun on ippanmei = seibun5 where seibun5 is not null;
commit;

drop view if exists tvTsushoTekiyoSaku;
CREATE temp VIEW tvTsushoTekiyoSaku AS
SELECT DISTINCT
sakumotsu, byochu, mokuteki, shurui, tsusho, jiki, baisu, ekiryo, hoho,
basho, jikan, ondo, dojo, chitai, tekiyaku, kongo, kaisu,
(select seibun from tSeibun where ippanmei = seibun1) as seibun1, keito1, kaisu1, mid1,
(select seibun from tSeibun where ippanmei = seibun2) as seibun2, keito2, kaisu2, mid2,
(select seibun from tSeibun where ippanmei = seibun3) as seibun3, keito3, kaisu3, mid3,
(select seibun from tSeibun where ippanmei = seibun4) as seibun4, keito4, kaisu4, mid4,
(select seibun from tSeibun where ippanmei = seibun5) as seibun5, keito5, kaisu5, mid5,
yoto, koka, zaikei
FROM ttTekiyoSaku;


m_kihon の seibun1..seibun5 を総使用回数における有効成分名にしてしまうと、RAC コードとの対応が若干変わるなど、全体的なチェック・修正が必要になるため、気づきにくいバグを新たに生む可能性が高くなります。この方法なら、タイムコストはかからないので、データベースの中身そのものに手を付けるより無難かもしれません。
ACFinder 側は、下記の2点の追加・修正で OK です。
(1) ACFinder 起動時及びデータベース更新時は、上記の方法で tSeibun を作成する。
(2) tvTekiyoSaku, tvTsushoTekiyoSaku, tvTekiyoByochu, tvTsushoTekiyoByochu の seibun1..seibun5 を上記のように修正する。
投票数:0 平均点:0.00

投稿ツリー

  条件検索へ