月末処理時に一時的に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)で、グルーピングをし分析を始めました。