Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

参照を含む式の評価について検討する #134

Open
s-yata opened this issue Dec 24, 2014 · 2 comments
Open

参照を含む式の評価について検討する #134

s-yata opened this issue Dec 24, 2014 · 2 comments
Assignees
Milestone

Comments

@s-yata
Copy link
Contributor

s-yata commented Dec 24, 2014

概要

参照型のカラム Ref があり,参照先に Name という Text のカラムがあるとき, Ref.Name == "Mike" のような式を評価する方法に関する Issue です.

現在の実装では, Ref.Name を取ってきて "Mike" と等しいかどうかを調べます.

この式を評価するとき, "Mike" と対応する参照先の行 ID を取得できれば, Ref == ID という式に変換できます.
すると, Text の比較から Int になり,効率化されそうです.

難しいところは,行 ID の取得に時間がかかると厳しいこと,クエリに該当する行 ID がたくさんあると効率が悪いことなどです.
入力されるレコードが少なければ,単純に評価した方が効率良さそうなことも難しさにつながります.

というわけで,以下のように進めてみようと思います.

  1. Ref.Name == "Mike"Ref == ID で差がどのくらいになるかを確認します.
    • 差があまりないのであれば,この時点で終了します.
  2. どのようなケースで置き換えが有効かを検討します.
    • 索引の有無や参照先テーブルの大きさがポイントになるはずです.
  3. 実装方法を検討します.
    • 簡単に実装できそうであれば,さくっと片付けるのが良いと思います.

直接的にはつながりませんが,少し関連のある Issue があります.

@s-yata s-yata self-assigned this Dec 24, 2014
@s-yata s-yata added this to the Icebox milestone Dec 24, 2014
@s-yata
Copy link
Contributor Author

s-yata commented Dec 24, 2014

追記

Ref.Name == "Mike" のような式は,参照先に該当する行が存在しなければ,定数(false)に置き換えられます.

@s-yata
Copy link
Contributor Author

s-yata commented Dec 24, 2014

選択方法

自動的に切り替える案と手動で選択できるようにする案があります.
ハイブリッドとして,明らかに切り替えた方が良いときは自動,それ以外は手動という案もあるかと思います.

テストのことを考えれば,手動でできた方が便利そうです.
デフォルトでは自動選択にして,必要なときは手動選択というのが理想的です.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant