私たちのエンタープライズアプリケーションは、データストレージにSQL Serverを使用し、主にOLTPシステムです。ただし、アプリケーションの重要なコンポーネントは、重要なOLAPワークロードを生成します。
tempdbへの書き込み待ち時間は約100msです。この傾向は、時間をかけて保持し、ALLOW_SNAPSHOT_ISOLATION
投入されるオフ。私たちはこれに関して問題のトラブルシューティングを行っていますが、これまでに見つかった唯一の興味深いことは、tempdbへのハッシュとソートの流出が非常に多いことです。これはOLAPワークロードによるものだと思います。
質問
流出の頻度はどの程度ですか?どれか?1秒あたりの流出回数は?予備データによると、毎秒約2回のハッシュ流出と1分あたり25回のソート流出があります。
この流出の頻度が、tempdbの書き込み待ち時間が長い主な原因である可能性はありますか?
その他の情報
コアの数ごとに推奨されているように、tempdbには複数のファイルを使用しています。tempdbファイルはRAID 1 + 0 SAN(高性能SSDを搭載)上にありますが、これはメインのDBデータおよびログファイルと同じデバイスです。tempdbファイルのサイズは、非常にまれに大きくなるほど大きくなっています。トレースフラグ1117または1118は使用していません。別の変数は、このセットアップが、すべて中程度から高い負荷を経験する多くの異なるデータベースで共有されていることです。
100ミリ秒の書き込みレイテンシは、MSDN、SQLスキル、その他のサイトで見つかったtempdb書き込みレイテンシの許容範囲よりもはるかに大きくなっています。ただし、他のデータベースの書き込みレイテンシは良好です(10ミリ秒未満)。他の統計に基づいて、tempdbを特に内部オブジェクトに対して頻繁に使用しているようです。したがって、アプリケーションが内部オブジェクトを非常に多く使用している理由を調べるために掘り下げています。
私たちのプラットフォームには、さまざまな形で現れる実際のパフォーマンスの問題があります。私たちはパフォーマンスカウンターを監視し、DMビューを確認し、アプリの動作を分析して、システムのリソース使用特性を掘り下げようとしています。流出はメモリ内ではなくディスク上で実行されるため、流出は劇的な悪影響をもたらすことがわかっているため、現時点では流出に焦点を当てています。また、流出の数は非常に多いようですが、人々が「高」と見なしていることについて何らかの情報を入手したいと考えていました。