A5:SQL Mk-2

開発のこと、日々のこと

結果セット最大行数について

ホーム フォーラム A5:SQL Mk-2掲示板 結果セット最大行数について

  • このトピックには5件の返信、1人の参加者があり、最後にyamadaにより1ヶ月、 3週前に更新されました。
6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • 投稿者
    投稿
  • #9726 返信
    yamada
    ゲスト

    いつもお世話になっております。

    結果セット最大行数が設定されても、SQLエディタでlimit句がないSQL文を実施して、時間がかかります。

    DB環境:MySQL 5.7.33
    ターブルデータの情報:列数は10列以上、中に100桁の文字列がある、行数は10万ぐらい。
    結果セット最大行数:100

    SQL文:
    select * from テーブル;
    時間:5秒ぐらい。

    select * from テーブル limit 100;
    時間:0.030秒ぐらい。

    結果セット最大行数の使用方法が、私の理解に間違いがありましたら指摘してください。

    #9739 返信
    松原正和
    キーマスター

    yamada さんこんにちは。
     
    こちらでも、2つのやり方で実行時間に差がありました。もしかするとですが、結果セット最大行数では、MySQLサーバーが全データを送ろうとして(A5:SQL Mk-2が100行受け取ったら)途中で処理を打ち切るような処理になるのに対して、limit句をつけるとあらかじめMySQLサーバー側で、100件しか取得しないことがわかるため、内部的な処理が変わるのかもしれません。(実行計画上は差がないですが…)

    #9754 返信
    yamada
    ゲスト

    そうですね、良ければ、
    結果セット最大行数が設定された場合が、SQLエディタで自動的にlimit句をつけてMySQLサーバーに送信したほうがいいですと思います。

    #9765 返信
    松原正和
    キーマスター

    yamada さんこんにちは。
     
    これは大変悩ましい問題なのですが limit 句を使うと、内部的な実行計画が変わってしまいます。

    SQLが速くなるというのは良いことではあるのですが、「A5:SQL Mk-2では問題なく(短い時間で)実行できるのに、アプリケーションに組み込んだとたんにパフォーマンスの問題が発生した」ということにもなりかねず、それはそれで問題に思われます。
     
    「遅いSQLは(正しく)遅く実行される」というのは、SQLクライアントでの大切な機能と思います。
     
    なお、テーブルエディタはユーザーが直接書くSQLではないため、内部的に limit 句を追加しています。

    #9767 返信
    yamada
    ゲスト

    ご回答ありがとうございます。
    了解しました。

    #9768 返信
    yamada
    ゲスト

    >>「遅いSQLは(正しく)遅く実行される」というのは、SQLクライアントでの大切な機能と思います。

    確かそうですね。
    「A5:SQL Mk-2」でデータを編集など機能を使う場合もありますが、遅くなって困ります。
    limit 句を追加するかオプションで設定できれば助かります。

    尚、テーブルエディタに編集機能がありますけど、SQLエディタの方が便利なんです。

6件の投稿を表示中 - 1 - 6件目 (全6件中)
返信先: 結果セット最大行数について
あなたの情報:




コメントは受け付けていません。