- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DBの利用状況をAccessから把握したい)
DBの利用状況をAccessから把握したい
このQ&Aのポイント
- MS Access 2003のVBAからSQL Server 2005の利用状況を参照できるのか?
- DB、テーブル、レコードへの接続台数や接続ユーザー名などの特定情報を知りたい
- 特定のテーブルの使用やADPの起動状況により処理を制限したい
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
MDBでよく見かける「ローカルのワークテーブルにまとめて落してグリッドでメンテナンスさせる」というのの類似のことをやろうとしているのでしょうか?私はあまりそういうのはしないので、踏み込んだコメントは避けます(アプリケーションロックでしのいでいる例が多いかもしれないですね) ・元のテーブルにロックを掛けたいとのことですが、SQL Serverにロックヒントなどを使ってロックを掛けさせると、ロックされたリソースにアクセスした側は永遠に待ちになりますので、あとからアクセスした側は画面が真白になって使い物にならないと思います。で、SET LOCK_TIMEOUT 0とすればすぐにロックタイムアウトしますが、アプリケーションの修正を考えると現実的ではないでしょう。 メンテナンス中にロックを掛けたままトランザクションを維持し続ける仕組みも難しいです。 ・SQL Server 2005から動的管理ビューで、sys.dm_exec_sessionsというのが提供されていますので、「現在アクセスしているセッション」は見ることができます。見られるのはアクセスしているアプリーケーション名、ユーザ名、ホスト名などですが、テーブル単位・レコード単位でのアクセス状況がわかるわけではありません。 ・コントロールする単位がテーブルであったとしても、Oracleと違い、SQL Serverはテーブル単位で参照専用にすることはできません。更新を無効にするトリガを仕込んで、それをメンテナンス中だけ有効にするのがせいぜいかと思います。
お礼
いつも、ありがとうございます。 色々考えてみましたが、色々やりたいことがあるので当面現状のまま 様子を見てみます. (ワークテーブルに同じキーのデータがあれば、更新できない旨の メッセージを表示する)