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

オンラインタスクで SELECT TOP 10 のように件数指定が可能か?

コメント

5件のコメント

  • vg

    DbViewRowIdx(0)を代入した変数に範囲式を入れてタスク特性のビュー事前読み込み:YESでできるかとおもいますが、再表示したりしたときの動きがちょっと読めません。

    メインソース指定だけだと、項目に連番とかがない速度的に厳しいのではないでしょうか

     

    SQLSERVERの環境がないので試したことないんですが、

    インデックスのヒント句にTOP 10 とか入れてしまうとかならなりそうな気もしますが

    昔oracleでヒント句欄に 10 * といれて最初の項目が10倍になるという

    いたずらを仕掛けたことがあります

     

    追記 07.12 11:00

    わかりづらかったので一応補足を、ヒント句は本来オプティマイザに適正なインデックスの使用や算出方法を指示したりするものですけど、

    Magicのデータリポジトリのインデックス特性のヒント句欄は、SQLで言うと、"SELECT **ここ**  項目 FROM~ "のところに文字列を埋め込むだけなので、ここに 10 * とかを入れて

    "SELECT 10 *  項目 FROM~ "という

    SQLインジェクション的な使い方ができたよって意味です。

     

  • nkmt

    vg様 レスありがとうございます。
    DbViewRowIdx(0) は未使用ですが、興味はあります。
    SQL Serverでグルーピング集計した時の「順位」は
    たまに使いますが、構文を覚えていないので使う時に
    検索かけております。

    インデックスのヒント句というのは、何の事か知りませんでした。
    使用して欲しいインデックスを明示できるのですね。
    それだけではないのでしょうけど。

  • Tanda

    タスクの範囲式に「DbViewRowIdx(0)<=n」と入れたら、簡単に実現されましたよ。

  • nkmt

    どうもありがとうございました。試してみます。

  • nkmt

    vg様 追記 ありがとうございます。
    何か役に立つ場面があるのかもしれないですね。

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