ボトルネックの特定
共有リソースへの同時アクセスは、ボトルネックの原因になります。一般に、ボトルネックはあらゆるソフトウェア システムに存在し、避けられないものです。ただし、共有リソースに対する過剰な要求により応答時間が遅くなる場合は、これを特定してチューニングする必要があります。
ボトルネックが発生する原因には、次のようなものがあります。
リソースが不十分なため、コンポーネントの追加やアップグレードが必要な場合。
同じ種類のリソースで負荷が均等に分散されていない (たとえば、1 台のディスクが占有されている) 場合。
リソースが誤動作する場合。
リソースが不適切に構成されている場合。
ボトルネックの分析
さまざまなイベントに対して過剰な要求が行われている期間は、ボトルネックをチューニングできる指標になります。
次に例を示します。
他のいくつかのコンポーネントにより、このコンポーネントの負荷が低下しているため、負荷を完了するまでの時間がかかっている可能性があります。
ネットワークの混雑により、クライアントからの要求に時間がかかっている可能性があります。
サーバーのパフォーマンスを追跡し、ボトルネックを特定するときに監視する、5 つの主な要素を次に示します。
ボトルネックになる可能性のある要素 |
サーバーへの影響 |
---|---|
メモリ使用量 |
Microsoft SQL Server に割り当てられたメモリまたは使用できるメモリが不足していると、パフォーマンスが低下します。データをデータ キャッシュから直接読み取るのではなく、ディスクから読み取る必要があります。Microsoft Windows オペレーティング システムでは、ページが必要になるたびに、ディスクとの間でデータを交換するので、過剰なページングが実行されます。 |
CPU の使用率 |
CPU の使用率が一様に高い場合は、Transact-SQL クエリをチューニングするか、CPU のアップグレードが必要であることを示します。 |
ディスクの入力/出力 (I/O) |
たとえば、インデックスを使用して、Transact-SQL クエリをチューニングして不要な I/O を減らすことができます。 |
ユーザー接続数 |
サーバーに同時にアクセスしているユーザー数が多すぎるとパフォーマンスが低下します。 |
ブロッキング ロック |
アプリケーションが適切にデザインされてないために、同時実行がロックされて妨害され、応答時間が長くなり、トランザクションのスループット率が低下します。 |
SQL クエリの詳細については、「クエリ パフォーマンス」および「物理データベース デザインのチューニング」を参照してください。