SQL Server Profilerの解析

月末処理時に一時的にCPU使用率が100%に張り付く現象を分析しています。
原因調査の下調べとして、極端に重い処理が存在しないことを確認し終わっており、処理数の多さでI/OとCPUに負荷がかかっていると認識をしている状態です。

具体的に、その5分間で、どのような業務処理が何件実行されているのかを分析し、改善提案を提出することを求められました。今回は、トレースを実行した後の分析について、メモしておきます。

30分間で6GB、600万行ほどのトレースファイルが生成されました。
SQL Server ProfilerからSQL Serverにデータをインポートするのに4時間ほどかかりました。

どのような業務処理が走っているのかを分析するために、EventClassで絞り込み。
TextDataでグルーピングしたかったのですが、NTEXT型だったのでグルーピングできませんでした。

結局、SQL Server Profilerからインポートしたテーブルから、さらに別のテーブルにデータを入れなおしました。
INSERT INTOを使用して、TextData列のデータ型をNTEXTからNVARXHAR(MAX)に変更。
その後、SUBSTRING([TextData],21,100)で、グルーピングをし分析を始めました。

SSMSのクエリエディタタブをすっきりさせる方法

SQL Server Management Studioのクエリエディタタブは下の画像のように、長くてところどころ切れてしまっていて残念な思いを感じることは無いだろうか。

image

SQL Server Management Studioのオプション設定で、タブ表記を変更することができる。
タブ表記されるものとして、サーバー名・データベース名・ファイル名・ログイン名である。これらを一度に知ることができれば確かに便利である。

しかし実際には、長すぎてタブに収まっていないので意味がない。

image

早速、サーバ名とログイン名を表示しないようにFalseに変更し、クエリを開きなおしてみた。
結果が下の画像だ。
すっきりした表示では無いだろうか?

image

MS11-028が原因でSQLと Exchange と PowerShellに問題が発生する

.NET Frameworkを使用しているアプリケーションで、アプリケーションを起動できなかったりする障害原因は、.NETのセキュリティアップデート(MS11-028)です。いくつかのケースで、アプリケーションがクラッシュすることがあります。この障害の発生により、アップデートの提供を取りやめています。

(MS11-028の一部である)KB2449742かKB2446709よりも先に、KB979744を適用した時に、この問題が発生します。
補足:KB979744は、Exchange 2010 SP1の前提条件です。

次のような現象が発生します。

  • レポーティングサービスの起動に失敗する
  • SQL Server Profilerツールがサーバ上で起動できない
  • SQL Server Management Studioがサーバ上で起動できない
  • Database Mail and CLR functions may be broken.
  • サーバ上でイベントビュワーが起動できない
  • PowerShellが起動しない。

この問題は、以下のOS環境で発生します。

  • Vista SP2
  • Windows 2008 SP2
  • Win 7 RTM
  • Windows 2008 R2

Win7 SP1 と Windows 2008 R2 SP1 は影響を受けません。

詳細については、Exchange Server, SQL Server, or PowerShell crashes after you install security update 2449742 or 2446709を参照してください。