{進捗記録}{進捗}{b_bg_his}{_dg}{_dg_oln}{希哲14年8月12日の開発}{ON 句}{ネステッドループ結合}{マージ結合}{20倍}(35)

{希哲14年8月12日17歩 K#F85E/5B28-F0B2}

前後景一覧整備,装体書整理ページ付け自輪郭検索

途中で終了。

低速求頼については,ほぼ _dg_dg_oln結合部分で生じていることを突き止めた。

どうしても気になりあれこれ試行錯誤していると,WHERE 句 に書いていたフラグb_delb_bg_his)の条件count() 内に移した(OR NULL 付き)だけで,明らかに速くなることに気付いた。その差はおよそ20倍

いまいち理由把握しきれていないが,EXPLAIN ANALYZE では,WHERE 句にフラグ列を含めるとマージ結合になりかなり無駄な処理が入っていることが分かるが,count() に含めるとネステッドループ結合になり無駄なく索引が使われている。

WHERE 句のフラグに索引を張っても ON 句に移しても変化が無かった。

もう少ししっかり理解して最適化しなければならないが,良い一時凌ぎにはなるだろう。

ここで,昨年,_dg_olnn_fgn_bg を加えていたことを思い出した。すっかり忘れていた。これも活かせば,速度上の問題はほぼ解消しそうだ。