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

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

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

msg# 1.3.3
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014.02.14 15:39 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
引用:仕様として作物タブの成分1~5を「総使用回数における有効成分」があるものについては、「総使用回数における有効成分」を表示するように変更しますか?tvTekiyoSaku, tvTsushoTekiyoSaku, tvTekiyoByochu, tvTsushoTekiyoByochu を書き換えるだけで簡単に対応できそうなので、ちょっと試してみました。

通常の状態で、作物タブ通称モードで「きゅうり」の作物群一括検索を実行したのと同じ下記コードを SQL タブで実行すると、事務所マシンでは 1.90 秒かかります(自宅マシンだとわずか 0.5 秒程度なんだけど)。
--/d
DROP TABLE IF EXISTS ttTekiyoSaku;
CREATE TEMP TABLE ttTekiyoSaku AS SELECT bango,shurui,meisho,tsusho,idsaku,sakumotsu,idbyochu,byochu,mokuteki,jiki,baisu,ekiryo,hoho,basho,jikan,ondo,dojo,chitai,tekiyaku,kongo,kaisu,seibun1,keito1,kaisu1,(select mid from raccode where ippanmei = seibun1 and cid = substr(idbyochu, 1, 1)) as mid1,seibun2,keito2,kaisu2,(select mid from raccode where ippanmei = seibun2 and cid = substr(idbyochu, 1, 1)) as mid2,seibun3,keito3,kaisu3,(select mid from raccode where ippanmei = seibun3 and cid = substr(idbyochu, 1, 1)) as mid3,seibun4,keito4,kaisu4,(select mid from raccode where ippanmei = seibun4 and cid = substr(idbyochu, 1, 1)) as mid4,seibun5,keito5,kaisu5,(select mid from raccode where ippanmei = seibun5 and cid = substr(idbyochu, 1, 1)) as mid5,yoto,koka,zaikei,ryakusho FROM tekiyo WHERE idSaku IN (SELECT idSaku FROM m_sakumotsu WHERE idSaku REGEXP '^(02000000|02020000|02020002)' AND sakumotsu NOT REGEXP '\((.*、)?(きゅうり|うり科野菜|野菜(類)?).*?(、.*)?を(除|のそ)く');
SELECT * FROM tvTsushoTekiyoSaku;


seibun1..seibun5 に「総使用回数における有効成分」が表示されるように、tvTshushoTekiyoSaku を下記のように書き換えて上のコードを実行すると、事務所マシンでは3倍近い 5.30 秒ほどかかり、あきらかに遅く感じます。
この方法は対応が簡単ですが、実行時間のコストがかかりすぎますね。別スレで書いたように、データベース作成時に seibun1..seibun5 を「総使用回数における有効成分」にしてしまった方が良さそうです。
--/d
drop table if exists tSeibun;
create temp table tSeibun as select distinct ippanmei, seibun from seibun;
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,
ifnullstr((select seibun from tSeibun where ippanmei = seibun1), seibun1) as seibun1, keito1, kaisu1, mid1,
ifnullstr((select seibun from tSeibun where ippanmei = seibun2), seibun2) as seibun2, keito2, kaisu2, mid2,
ifnullstr((select seibun from tSeibun where ippanmei = seibun3), seibun3) as seibun3, keito3, kaisu3, mid3,
ifnullstr((select seibun from tSeibun where ippanmei = seibun4), seibun4) as seibun4, keito4, kaisu4, mid4,
ifnullstr((select seibun from tSeibun where ippanmei = seibun5), seibun5) as seibun5, keito5, kaisu5, mid5,
yoto, koka, zaikei
FROM ttTekiyoSaku;
投票数:0 平均点:0.00

投稿ツリー

  条件検索へ