1秒あたりのトランザクション数が非常に多い


8

本番サーバーは、1秒あたり平均4,000トランザクションで実行されます。過去数日間で、平均は毎秒175,000トランザクションに急上昇しました。これはタイプミスではなく、1秒あたり175Kです。
トランザクションのDMVを見ると、ユーザーセッションに直接リンクすることはできませんが、次のように表示されます。

SELECT NAME,
       COUNT(*)
FROM   sys.dm_tran_active_transactions
GROUP  BY NAME
ORDER  BY 2 DESC 

-

+------------------------------+-------+
|             Name             | Count |
+------------------------------+-------+
| WorkFileGroup_fake_worktable |   627 |
| LobStorageProviderSession    |   217 |
| workfile                     |   171 |
+------------------------------+-------+

誰かがこれらのタイプの取引に光を当てることができますか?または、私はここで幽霊を追いかけていますか?


たぶん、sp_whoisactiveを繰り返し実行して、サーバーをプロファイルできます。最も頻繁に発生するクエリは何ですか?
usr

おそらく明確ではありませんが、元のテキストでは、ユーザープロセスとトランザクションの間に相関関係はないと述べました。通常、私たちは約4000人の接続ユーザーを抱えており、任意の時点で、40〜60人のユーザーが実行可能なspidです。この膨らんだトランザクション期間中、40〜60の実行可能なspidがまだありました-違いはありません。
ポールバービン2015

更新:tpsは通常の値に戻っており、実際に発生する理由はありません。意味のある唯一のことは、テーブル全体が回線を介してtempdbにプルされているように見えるリンクサーバークエリを実行したことです。そのプロセスは通常よりもずっと長くかかっていました。tpsがテーブルの1行= 1トランザクションのようにカウントされていた可能性はありますか?テーブルには5万行があり、ユーザーによってアドホックに実行されるため、1秒あたり3回呼び出され、そのCOULDが加算されますが、そうは思われません。
ポールバービン2015

2
それが私のサーバーである場合は、サーバー側の簡単なトレースを実行します。tpsカウントが誤っている可能性があるかどうかを確認するために、たった5分のトレースである可能性があります。実行中のクエリを監視するために、sp_whoisactiveをスパム送信することは間違いありません。
Peter

回答:


1

再び高い活動に注意してください。表示されたら、サーバー側のトレースを開始するか、必要に応じてプロファイラーを使用して、何が起こっているかを確認します。

または、Wiresharkなどのパケットスニファを使用して、未加工のワイヤアクティビティをキャプチャします。

dm_exec_cached_plansをチェックして、何が起こっているのかがわかるかどうかを確認します。

dm_io_virtual_file_statsを監視して、特にどのファイルがヒットしているかを確認します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.