メインコンテンツへスキップ

SQLコマンド

コメント

12件のコメント

  • nkmt

    メインソースに置き換えたPGで実行してみましたが、遅くて使い物になりませんでした。
    原因は、メインソースにする受注明細データには範囲絞り込みに最適なインデックスが無いのも理由なようです。
    照会リンク 4本を外部リンクにしても速度は遅かったです。
    おそらく作った当時も普通の作りでは耐えられずに、SQLコマンド化したのだと思います。
    ソースにコメントを残しておこうと思います。

  • nkmt

    メインソースにする受注明細データには範囲絞り込みに最適なインデックスが無いのが理由というのは嘘でした。メインソースにした受注明細データには、受注日を持っておらず、そもそもメインソースの項目での絞り込みが出来ない状況でした。Magicの普通の作りでは正規化し過ぎるのはNGで、売上明細データにも鑑項目の売上日や得意先コードを持つなど、ある程度は項目の冗長化は必要だなと思いました。

  • nkmt

    ISHIJIMAさん レスありがとうございます。
    ビューを作って保存した後、
    Magicのデータリポジトリのデータソース名にビューの名前を書いて
    F9 定義取得してみたら
    定義内容が一致していませんになりました。
    午前中は外出するので、また午後にでも探ってみます。

  • nkmt

    全然別のシステムでF9 定義取得してました。

  • nkmt

    正しいシステムで定義取得が出来ました。
    ビューを作って、ビューを定義取得するのは私は初めてでした。
    定義取得した項目には、「モデル」を割り当てる必要もないのかもしれませんが
    割り当てた方がクロスリファレンスにもひっかかるメリットがあるでしょうね。

    ビューの分を例のオンラインタスクに使ってみて速度が出るか確認してみます。
    もしGoodであれば製造工数は減るような気がしましたが
    ビューを定義取得したデータをオンラインタスクのメインソースにして
    StringDate型の日付範囲絞りが今の所成功していません。

  • nkmt

    そもそも定義取得して、APGでデータも読めませんでした。
    Magic側でデータにインデックスを追記したらAPGでデータを読めました。
    失礼しました。
    オンラインタスクでStringDate型の日付範囲絞りもできました。
    今朝はこれぐらいにしておきます。

  • Pu

    こんにちはPuです
    速度と便利さを分けて考えないとダメですよ
    ビューにしたから早くなったなんてないです、ビューは単なるSELECT文ですので
    ビューを開く度にSELECT文が発行されるだけなので、SELECTと同じ速度です。
    毎回多様するSELECT文があるならビューを定義すると便利で使いまわしが出来る
    またビューはUPDATE出来ないので、ユーザーに開放しても安全
    そういう使い方が一般的で、高速化とは別です。
    私の認識が違ってたらごめんなさい
    でわ~でわ~

     

     

     

  • nkmt

    いつもお世話になっております。
    Puさん ISHIJIMAさん レスありがとうございます。
    今回の場合、メインソースの項目では絞り込みが出来ない分がMagicの標準の作りでは遅かったので、SQLコマンドでは速かったというのは体感しました。
    ビューは私は初めて作りましたが、たしかにSELECTだのJOINとか何を私も理解しました。
    ビューで代替した分でのテストには至っておりません。
    (午前中外出して、午後はさっきまでZoomで県外のお客様と打合せをしておりました。)
    ビューは別メンバーは使っているのを聞いた事があるので、場面に応じた使い分けをしていきたいと思います。

  • nkmt

    集計PGは、メインソース読みながらWFへ書き出しリンク等して加算するよりも
    SQLコマンドが楽で、それよりも更に楽なのはビューなのかもしれないですね。
    (やった事ありませんが。)
    ビューへ 日付の範囲指定 とかできるのでしょうね。
    (やった事ありませんが。)

  • nkmt

    ビューでGROUPING集計などをしていないSELECTやJOINだけの分なら、値の変更が出来た感じがします。

  • Pu

    こんにちはPuです
    正しくは、結合(2つ以上のTABLE)されたVIEWに対してはUPDATE,INSERTできません
    1つのTABLEでのVIEWに対しては更新可能です。
    あまりMAGICで単独TABLEのVIEWを使用する頻度が少ないので
    ついついVIEWは更新できないと書いてしましました。
    でわ~でわ~

     

     

     

  • nkmt

    Puさん コメントありがとうございました。

サインインしてコメントを残してください。