さわらブログ

さわら(@xhiroga)の技術ブログ

ASのLFをORDER BYで再現するときの落とし穴

AS400のLFをORDER BYで再現するときの落とし穴

現場で先輩に指摘されて「なるほど」と思ったのでメモ。

ASにはLF(LOGICAL FILE= 論理ファイル)という仕組みがあり、普通のDBでいうところのVIEWに相当する。
このテーブルに対してあるキー(例えば商品コード)でレコードを検索するとき、ASではSQLを使わずに、商品コード順にソートしてあるLFを上から順に探索し、最初の1件をつかむようにしている。
そのため、LFにもソート順として(商品コード:昇順)がセットされている。

しかし、普通のDBなら検索条件を使う。そのため、LFのソート順をそのまま持ってくると意味がない条件がひとつできる。
これを先輩に指摘されました(普通に見れば気が付きそうなものだけど・・・)

(あれ・・・VIEWのソート順って、SELECTを実行する前のスキャンのパフォーマンス向上には役立つの?それともスキャン後の結果を並び替えるときにしか使われない・・・?よくわからない!)