skillup

技術ブログ

Database

DB負荷調査のセオリー

投稿日:2021年12月30日 更新日:

DB負荷などで見ておきたいことのまとめなど。(今のプロジェクトではSQLServerを使っていますが、他のデータベースでも同じかと思います。)

参考URL

SQLServer: 現在実行中クエリのリアルタイムトラブルシューティング

現在進行形のSQLを確認

現在発行されているSQLの一覧とその状態を見るクエリです。

見るべきポイントなど

メインで見ているテーブルのデータは以下のURLを参考に。

https://docs.microsoft.com/ja-jp/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-requests-transact-sql?view=sql-server-ver15

https://docs.microsoft.com/ja-jp/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-sql-text-transact-sql?view=sql-server-ver15

  • spid・・セッションID
  • elapsed_sec(=time_sec)・・SQLの実行されている時間(単位:秒)
  • status・・現在のクエリの状態
  • command_text・・実行されているSQL
  • wait_time・・ブロックされているときの待ち時間
  • granted_query_memory・・キロバイト

検索条件は

となっているので、実行中で1秒以上実行されているSQL(あとは任意のSQLの検索語句)を抽出します。

コネクションの数

どの場所からどれくらいつながれているかのチェック

あまりにも多い場合、余計なSQLが発行されすぎていないか、プログラム側でcloseをつけているかなどのチェックが必要ですね・・・

メモリ消費量のの高いSQLを見る方法など

負荷の高いSQL(現在進行中ではなく、累積)

https://docs.microsoft.com/ja-jp/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-query-stats-transact-sql?view=sql-server-ver15

  • total_worker_time・・前回数分の実行時間
  • execution_count・・実行回数

一定の保存期間で単純に累積のSQLの実行時間などを見ていくSQLです。

SQL Server で実行された SQL を SQL で取得する方法

負荷試験の実際の実行

SQL Server 負荷試験と確認方法について

実際に負荷をかけることができるっぽいですね・・・プログラムの試験と違って負荷試験って再現が結構難しいだけにこの方法はめっちゃ助かります。

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

O/Rマッパー iciqlについて

以前、このブログでも紹介したO/Rマッパーのiciqlについて、使い方や問題点がある程度わかったので書いておきます。 Contents1 インストール2 自動生成3 注意点3.1 Date型のインポー …

no image

EXISTSと集合

前回に引き続きEXISTSの問題です。 下記のようなテーブル(projects)があり、 project_id | step_nbr | status ———&#8 …

no image

GlassFishでDB接続

JavaEEではアプリケーションサーバーとしてGlassFishを使いますが、先日、GlassFishを通さないとJavaEEでDBが動かせないということを知りました。そのためJavaEEではデータベ …

no image

PostgreSQLについて

本日はポスグレ(PostgreSQL)について。 自分はほとんどMySQLだったので、主にMySQLとの比較について書いていきます。 Contents1 アーキテクチャの違い1.1 MySQL1.2 …

no image

cake sql系+リレーション+ヘルパー

先月末に引き続いてcakeネタをもりっといきます。 といっても自分用の小ネタリンク集です。 Contents1 sql系の小ネタ1.1 findとread1.2 find(‘count&# …

アーカイブ