A5:SQL Mk-2

開発のこと、日々のこと

SQL Severにてselectでのロックについて

ホーム フォーラム A5:SQL Mk-2掲示板 SQL Severにてselectでのロックについて

  • このトピックには2件の返信、1人の参加者があり、最後にwatanabeにより1日、 23時間前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #29620 返信
    watanabe
    ゲスト

    松原様
    いつも大変お世話になっております。
    日頃より便利に活用させていただいています。

    SQL Serverにて「結果セット最大行数」を超える SELECT 文を実行した際に、
    ロックが残る現象が確認されました。
    お忙しいところ恐縮ですが、ご確認いただけましたら幸いです。
    よろしくお願い申し上げます。

    <環境>
    A5:SQL Mk-2 x64(Disabled AI) Version2.20.4<Portable>
    DBMS:SQL Server 2022 に専用接続で使用

    <確認内容>
    結果セット最大行数:5000件で設定
    1)select * from table1                 →結果は5001件以上。ロックされる
    2)select top(100) * from table1            →ロックされない
    3)select * from table1 where columnA = ‘A’      →結果は100件。ロックされない
    4)select * from table1; 実行後、select 1;        →select 1でロックが解除される
    5)select * from table1; 実行後、結果セットを×で閉じる  →結果セットを閉じるとロックが解除される

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

    watanabe さんこんにちは。
     
    SQL Server で「結果セット最大行数」を超える SELECT 文を実行した際に、ロックが残る現象とのことですが、ロックの確認はどのようにされたでしょうか?
     
    SELECT * FROM sys.dm_tran_locks

    でよろしいでしょうか? ちょっと現象が確認できませんでした。

    #29804 返信
    watanabe
    ゲスト

    松原様
    ご確認ありがとうございます。watanabeです。

    はい。sys.dm_tran_locksです。
    実際は下記のようにいくつかJoinして確認いたしました。なお分離レベルは、Read Committedです。
    また新たに確認できたこととして、以下があります。
    6)select * from table1; 実行後”トランザクションの開始(shift+F9)”を実行
      →「Connection is busy with results for another command」エラーが発生する。

    SQL Serverのオプションによるものでしょうか・・・。

    SELECT
    tl.resource_type
    , tl.request_mode
    , tl.request_status
    , resource_associated_entity_id
    , es.login_name
    , es.host_name
    , es.program_name
    , ec.client_net_address
    , er.status
    , er.command
    FROM
    sys.dm_tran_locks AS tl
    LEFT JOIN sys.dm_exec_sessions AS es
    ON tl.request_session_id = es.session_id
    LEFT JOIN sys.dm_exec_requests AS er
    ON tl.request_session_id = er.session_id
    LEFT JOIN sys.dm_exec_connections AS ec
    ON tl.request_session_id = ec.session_id
    WHERE
    ec.client_net_address = ‘xxx.xxx.xxx.xxx’

3件の投稿を表示中 - 1 - 3件目 (全3件中)
返信先: SQL Severにてselectでのロックについて
あなたの情報:




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