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 で取得する方法

-Database
-

執筆者:


comment

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

関連記事

no image

Webの高速化に関して

Webの高速化に関してメモ。 高速化って言っても幅広いんですけどね。自分が行なっている対策に関して。 一応LAMP環境を前提にしてます。 Contents1 一番大事なのは測定2 DB対策3 フロント …

no image

SQLで数列を扱う

今回はSQLで数列を扱ってみましょう。 例えば下記のような0から9までの数字が書かれている数列があったとして、 これにより連番を作成してみましょう。 digit ——- 0 1 …

no image

MySQLのパフォーマンスチェックなどについて

常日頃MySQLをつかっているのですがパフォーマンスのチェックなどをあまりしていなかったため、これをチョクチョクしていこうかなあと思っております。 簡単に使えるツール(ただし5.1.4から)としては標 …

no image

Cakeでのリレーションについて

いまさらながらCakeのリレーションについての復習。 基本から。 Contents1 基本的なリレーション1.1 1対N1.2 N対11.3 動的な紐づけ 基本的なリレーション 下記のようなテーブル構 …

no image

cakeでのトランザクション、コミット、ロールバック

cakePHP(2.X系)でのトランザクション、コミット、ロールバックについて。 cakePHPでトランザクションを書ける場合、Model内に [crayon-641b57f7ee3826866525 …

アーカイブ