SQL Server の性能は、アプリケーションの安定性とユーザーの維持に不可欠です。データベースはあらゆるアプリケーションにおいてボトルネックとなる可能性があるため、本番環境ではリアルタイムの分析と性能監視が必要です。監視と継続的な最適化により、アプリケーションの性能は向上し、SQL Server データベースはより効率的に実行されます。
SQL Server の性能の仕組み
SQL Server の性能は、データベースがクエリからデータを受信、処理、返す速度を測定します。優れた性能の SQL Server は、大きなデータセットをミリ秒単位で返すことができます。データベース管理者は、性能を監視して、フロントエンド・アプリケーションがサーバーのハードウェア、構成、ストレージ容量の不足によるボトルネックに悩まされないようにすることが重要です。
SQL Server の性能はハードウェアによって異なります。ハードウェアは性能の一部ですが、設定やクエリ開発が不十分な場合、サーバーの速度にも影響します。ハードウェアの性能を監視することで、データベースを最高の性能で実行できます。また、クエリが最高の性能のために最適化されていることを確認する必要があります。
SQL Server の性能に影響を与える主な要因
データベース構成は、多くの場合、SQL Server の性能低下の主な問題です。より具体的には、インデックス作成はしばしば不適切に設定され、性能の低下を引き起こします。テーブル・インデックスは、データベース・エンジンがクエリに基づいてより速くデータを検索して返せるように、データを並べ替えます。小規模なデータベースでは、インデックス作成の不備による影響は感じられないかもしれません。しかし、1 つのデータセットにテラバイトのデータと数百万のレコードが含まれているデータベースでは、性能に問題が発生します。
ストレージ・デバイスを含むハードウェアも重要な要素です。ストレージは、入力および出力データを取得するのに十分な速度でなければならず、CPU は、データ要求を処理するのに十分な速度でなければなりません。キャッシュとプログラムの実行はメモリで行われるため、サーバーにはデータベースをサポートするのに十分なメモリが必要です。管理者は、これらの要素を監視して、ハードウェアが古くなったときにアップグレードすることもできます。
SQL Server の性能に適したインフラの選択
ピーク性能は、オンプレミスまたはクラウドのインフラから得られます。ハイブリッド環境は、企業のデータベースにも共通しています。例えば、アーカイブやウォーム・バックアップをクラウドに保存しつつ、ハイエンドのインフラを備えたオンプレミスのデータベースが本番環境のクエリ処理をサポートできます。もう 1 つの例は、パブリック・クエリがクラウドで処理され、内部クエリがオンプレミスで処理されるビジネス環境です。
ストレージ要件は、成長するビジネスにとって急激に高まっています。アプリケーションをサポートするために十分なストレージ容量と将来の成長を割り当てることが不可欠です。組織は、データベースのような性能とレイテンシに依存するアプリケーションをサポートする FlashArray を活用できます。Pure Cloud Block Store は、オンプレミスのインフラに代わるクラウド・サービスです。VMware から移行する企業には、Portworx との統合のオプションがあります。
一般的な性能の問題
サーバ・リソースが不足していることが、SQL Server の性能に関する最初の一般的な問題です。サーバーが遅い場合、管理者はまずリソースの使用状況を確認する必要があります。CPU 使用率、RAM 使用率の飽和度、ディスク I/O エラーの急激な変化がないかを確認します。クラウドとローカル・オペレーティング・システムには、リソースの使用状況を特定するための利用ツールがあります。
インデックス作成もよくある問題です。全てのテーブルにはプライマリキーを設定し、クエリの WHERE 句で一般的に使用されるテーブル列にはインデックスが必要です。よく使用されるテーブル列に適切なインデックスを付けることで、クエリの実行時間を数分から数ミリ秒に短縮できます。
SQL Server の性能を最適化するテクニック
本番環境の SQL Server データベースに送信される全てのクエリは、最適化と性能についてレビューする必要があります。SQL Server には、低速クエリを特定するための独自のツールがありますが、クエリはフロントエンド機能に必要な列のみを返し、JOIN 句を適切に使用し、JOIN 句や WHERE 句で一般的に使用されるテーブル列にインデックスを付ける必要があります。CURSOR クエリは、必要な時に限り、慎重に使用してください。動的クエリを回避し、文字列ではなく SQL で記述されたストアド・プロシージャを使用します。
管理者は、Microsoft の SQL Server ツールや好みのツールを使用して SQL Server の性能を監視する必要があります。ハードウェアを監視し、クエリを処理するのに十分なメモリと CPU の電力がサーバーにあることを確認する必要があります。また、ストレージ・スペースは、成長するビジネスをサポートする追加データに十分なものである必要があります。クラウド・プロバイダには、管理者がインフラを監視するための独自のツールがあります。
性能監視とインフラ・ツール
Microsoft は SQL Server に複数の監視ツールを標準で提供しています。SQL Server Management Studio では、管理者は性能ダッシュボードを表示できます。Database Engine Tuning Advisor は、管理者がストアド・プロシージャを最適化するのに役立ちます。システム・モニタは、ローカル・サーバーまたはリモート・サーバーで使用して、ハードウェアの使用状況やアクティビティを監視できます。
サードパーティのクラウド・プロバイダには、独自の監視ツールがあります。例えば、ピュア・ストレージには独自の監視ツールと SQL Server のサポートがあります。クラウド・ツールは、使用するサービスによって異なります。クラウド・ツールは、インフラ・リソースが不足すると管理者に警告を送信しますが、最適化のために Microsoft SQL Server 監視ツールを使用する場合もあります。最適な戦略は、ツールを試して、ビジネス要件に最適なものを見つけることです。
まとめ
アプリケーションの性能を最高に保つために、ボトルネックがないかデータベースを監視することで、管理者は積極的に最適化のステップを踏むことができます。データベース・テーブルやクエリを監視するだけでなく、ハードウェアも監視して、インフラの障害によるシステムのクラッシュを回避する必要があります。Microsoft は SQL Server 監視のためのツールを提供していますが、ピュア・ストレージは、管理者がテクノロジー・スタックに対応するのにも役立ちます。