![見出し画像](https://assets.st-note.com/production/uploads/images/76785099/rectangle_large_type_2_90c91eeeecff57f6aea2f9c0951da985.jpeg?width=1200)
データベース監視ツールとは?
データベース管理システム(DBMS)のパフォーマンスをよりよく管理するための重要な指標と自動化されたアラートを提供します。
Q: データベース管理システム(DBMS)とは何ですか?
![](https://assets.st-note.com/img/1650372483430-shfPNYSjRc.png?width=1200)
DBMSを完全に理解するためには、データベース管理システムの定義を理解することが重要です。データ駆動型の企業にとって、DBMSはミッションクリティカルなアプリケーションのための好ましいソリューションです。
DBMS ソフトウェアにはいくつかの種類があり、それぞれデータを構造化して使用する方法が異なります。
●リレーショナル・データベースは、データがテーブルで構成され、テーブル間に関係があるものを指します。問い合わせは構造化問い合わせ言語(Structured Query Language、SQL)で行われる。RDBMSの例としては、Oracle、MySQL、Microsoft SQL Server、PostgreSQLなどがあります。
●NoSQLデータベースは、スキーマを持たないデータベースである。この形式のデータベースは、RDBMSよりもデータの多様性を可能にする。例としては、Cassandra、MongoDB、Oracle NoSQLなどがあります。
●カラムナー(Columnar)データベースは、膨大な量の類似データを扱うデータウェアハウスに有効な形式である。このデータは高度に圧縮することができます。
●クラウドベースのデータベースは、Azure SQL Database、Amazon RDS、AuroraなどのPaaS/DBaaSソリューションのいずれかを指します。クラウドホスティングやIaaSの例としては、Azure VMやAmazon EC2内のSQL Serverなどがあります。
一般的なDBMSの種類は以下の通りです。
●MySQL
●Oracle
●Microsoft SQL Server
●SAP ASE
●IBM DB2 LUW(Linux?Unix?Windows)
●Aurora
●MariaDB
●PostgreSQL
また、データベースのアーキテクチャには3つのタイプがあります。
●1層アーキテクチャは、クライアントとサーバーがデータベースと同じマシンに存在するものです。これは、データベースをシステムに直接インストールする場合に発生し、通常はSQLクエリの練習のために使用します。
●2層アーキテクチャは、データがサーバーに保存され、クライアント(PCなど)がプレゼンテーション層を実行する場合です。DBMSはエンドユーザーには直接公開されないが、APIで呼び出すことができます。
●3層アーキテクチャは、データベースとクライアントの間にアプリケーション層が存在し、サーバーが機能ロジックやルールに基づいてユーザーのリクエストとDBMSのレスポンスを制御するものです。Webアプリケーションでは最も一般的なアーキテクチャです。
DBMS の種類とデータベース環境のアーキテクチャは、効果的なスケールアップ、冗長性の排除、マルチユーザーアクセス、複雑なトランザクションの処理方法などに影響するため、重要です。MySQL、Oracle、または他のプログラムであっても、すべての組織がそのDBMSにパフォーマンス管理が必要であると認識しているわけではありません。実際、データベースのパフォーマンスが低下し、応答時間が遅くなると、組織にとって高いコストにつながる可能性があります。手動でトラブルシューティングを行うと、問題解決のために何時間も何日も管理者の時間が必要となり、顧客や従業員はビジネス機能の障害に影響を受ける可能性があります。
データベースパフォーマンス管理ソフトウェアは、パフォーマンスを監視し、多次元ビューを使用してデータベースの根本原因を分析し、パフォーマンス問題の「誰が、何を、いつ、どこで、なぜ」に答えることによって、管理者がより簡単にDBMSパフォーマンスの問題をトラブルシューティングして解決できるように設計されています。また、これらのデータベースモニタリングツールは、データベースとSQLクエリをチューニングしてデータベースパフォーマンスを向上させるためのベストプラクティス手法の使用を支援します
Q: なぜデータベースの監視が重要なのか?
![](https://assets.st-note.com/img/1650372579314-ZdbTehm6tI.png?width=1200)
DBMSは、従業員記録の管理、在庫の追跡、またはその他のビジネス・タスクの処理に使用でき、高速データ・アクセス(通常はSQLクエリーによる)、強力なデータ関係、効率的なデータ更新、および容易なデータ検索を可能にします。DBMSが効率的に稼動していれば、ユーザやアプリケーションはこれらのデータを容易に利用することができます。データベースモニタリングツールとパフォーマンス管理ソフトウェアは、DBMSのパフォーマンスを向上させることで、ビジネスの生産性を確保することができます。自動化されたAPI駆動型ツールの使用による付加価値は、大規模データシステムの常時データベースパフォーマンス管理および最適化のコストに頭を悩ませている企業にとって、大きな意味を持つことがあります。
DBMSパフォーマンス管理ソフトウェアを使用すると、データベースを単一の集中管理ハブに統合することもでき、管理者はマルチデータベース制御のためのさまざまな便利な機能を利用することができます。以下は、一般的なデータベースの問題と、データベースパフォーマンスソフトウェアがそれらを軽減するのに役立つ方法です。
スケーラビリティ:データ量が増加すると、現在のデータベース設計で対応できる保証はありません。高いトランザクション・スループットをサポートし、構成が高いレイテンシーを引き起こしている場所を特定するための適切なツールが必要です。
クエリーの速度低下: データベースのリソースが原因なのか、クエリの書き方が悪いのか、インデックスの問題なのか?これらの質問に素早く答えるために、必要な情報をすべて収集するのは難しい場合があります。データベース監視ソフトウェアは、カスタマイズ可能なパフォーマンス指標を含む適切な情報を、ワンクリックで表示することができます。
インデックスがない、または重複している:インデックス作成は、DBA が直面する最も困難な問題の 1 つです。オブジェクトのインデックスを作成する代わりに、そのオブジェクトがどのようにクエリされるかについてインデックスを作成する傾向があります。このデータベースの問題は、基礎となるオブジェクトにインデックスを付けすぎてしまい、パフォーマンスの低下を招くことがよくあります。データベースパフォーマンス管理ソリューションを使用すると、インデックスの欠落や重複をより迅速に特定できるため、データベースのパフォーマンスを向上させることができます。
ワークロードの最適化:データベース監視ツールによる洞察は、実稼働時の使用パターンに基づく非効率的なワークロードの把握に役立ちます。ホットオブジェクト、インパクトのあるクエリ、および関連するプランが表示されるので、最適なパフォーマンスチューニングを決定して非効率性を解消できます。
データベースパフォーマンス管理ソフトウェアが強力なのは、DBMS の可視性とワークフローを変革するタスク自動化機能とアラート機能を備えていることが大きな要因です。データベース性能管理ソフトウェアは、SQLクエリからリソース消費およびコンテンションまで、データベースの全構造を自動的に監視します。
自動化:大規模なミッションクリティカル・アプリケーションと複数のデータベースを持つ企業は、管理と問題軽減の一部を自動化することで、IT管理者の作業負荷を軽減し、データの子守ではなく、イノベーションに多くの時間を割くことができます。データベースパフォーマンス管理ソフトウェアでは、データベースプロセスをインテリジェントに監視するために、従来の閾値ベースの監視とは異なり、機械学習を使用して異常を検出します。データベースパフォーマンス管理ソフトウェアの監視ツールは、SQLクエリやプランも調査することができます。
アラート:自動検出と通知機能は、DBMSインスタンスの可視性を高める必要があるDBA、DevOps、およびAppDevにとって魅力的な機能です。アラートは自動的に問題にフラグを立て、問題についてのドリルダウン情報を提供するため、ボトルネックを探しに行く必要はありません。管理者としての時間をより有効に使うことができます。
Q:データベースのパフォーマンスを管理する方法は?
![](https://assets.st-note.com/img/1650372606364-0Jn0zeBnt1.png?width=1200)
データベースのパフォーマンス管理には、インデックスやクエリ、サーバーやストレージなど、さまざまな要素が関わってきます。正しい測定基準を監視し、ベストプラクティスに従って、DBMSインフラストラクチャ全体の主要機能を最適化していることを確認する必要がありますが、これは困難なことです。多くの組織では、データベースのパフォーマンスを効果的に管理するために必要な、次のような数多くのタスクを満たすために、ソフトウェアを利用しています。
データベースインデックスの最適化およびチューニング。インデックスとは、レコードの迅速な検索を可能にするデータ構造化技術です。インデックスはキーを検索し、一致するレコードを返すという、一見単純なプロセスです。しかし、インデックスのチューニングが不十分な場合、性能上の問題が発生することがあります。クエリーの処理時間を短縮するために、次のような工夫をしてインデックス作成方法を改善しましょう。
●データへのアクセス方法(ワークロード)に基づいたインデックスを作成する。これにより、SQL クエリーを最適化することができます。
●毎日発生するクエリは優先順位が高いので、これらのクエリを効率化するためにインデックスを構築する必要があります。
●クエリから返されるデータが非常に多い場合は?フィルタリングされたカラムを作成することを検討する。
●インデックスの欠落や重複を定期的にチェックする。未使用のインデックスが多すぎると、バックアップに支障をきたす可能性があります。
●ヒット率が低下した場合のために、キャッシュのサイズに注意してください。
●相関性のあるサブクエリやループのコーディングは、パフォーマンスを低下させる可能性があるため、避けてください。
誰がデータベースを使用しているかを把握する。どのようなアプリケーションやサービスがデータベースにアクセスしているかを把握していますか?アクセス権を追跡していない場合、1つのクライアントが全体のパフォーマンスを低下させる可能性があります。同様に、接続の取得がレスポンスタイムの足を引っ張っている可能性もあります。特に、最大限の接続数を許可するように設定されている場合、データベースが過剰に処理しようとすると、パフォーマンスに関するフラグが立つことがあります。プールを一定のサイズに設定し、この設定容量がCPUやメモリーを超えないようにしながら、最良の結果を得るようにします。
データベースのパフォーマンス・チューニングのための主要な指標の追跡。パフォーマンスに関する有用な洞察を提供するデータベースメトリクスを監視することは重要です。データベース性能管理ソフトウェアは、1 秒に 1 回、または数分に 1 回の頻度で、定期的に測定基準を収集する必要があります。パフォーマンスメトリクスのカテゴリには、トップレベルの作業メトリクス(スループット、結果エラー、コンポーネントのパフォーマンス、成功率など)と、ハードウェア、ソフトウェア、ネットワークコンポーネントを監視するリソースメトリクス(利用率、飽和、内部エラー、データベース可用性など)の両方が含まれます。
これらの主要な測定値は、データベースがどのように機能しているかという重要な可視性を提供することができます。
●ディスク I/O は、読み取り/書き込みのトランザクションを把握するのに役立ちます。ディスク I/O は、読み取り/書き込みのトランザクションを理解するのに役立ちます。この測定値に問題がある場合は、ボトルネックの兆候を示すことがあります。
●メモリは、十分なメモリがない場合に問題が発生するため、重要です。ページフォールトなど他の指標を追跡することで、より包括的にメモリを把握することができます。
●ユーザ接続は、多すぎるとすぐに全体のパフォーマンスの足を引っ張るので、追跡することが重要です。
●CPU ワークロードは、ユーザー接続数が多すぎるかどうか、システムに過剰な負荷がかかっているかどうか、新しいハードウェアに投資する必要があるかどうかを明らかにするのに役立ちます。
●トランザクション・ログの設定により、システム障害時の復旧にトランザクション・ログ・ファイルを活用することができます。バックアップ・コピーを維持し、ログ・サイズを追跡し、その他ログが破損していないことを確認する必要があります。
クエリーの最適化。DBMSからのデータ要求であるクエリーは、情報を正確かつ迅速に返すために最適化される必要があります。クエリーはさまざまな方法で必要なデータを収集しますが、どの方法でも同じように高速に処理できるわけではありません。クエリを効果的に最適化するためには、まずクエリ指標を監視することが必要です。データベースパフォーマンス管理ソフトウェアプログラムを使用すると、どの SQL クエリーが遅いのか、またその理由は何なのかを即座に把握することができます。そして、最も遅い応答時間やエンドユーザーへの影響の大きさに基づいて、修正したい主要なSQLクエリを特定することができます。
DBMSトランザクション管理。DBMSのトランザクション管理において、サーバーが果たす役割も考慮する必要があります。一般的に、アプリケーションのパフォーマンス指標とユーザーエクスペリエンス指標は、DBMSサーバーが効率的に機能しているかどうかをフロントエンドで把握することができます。これらの指標を追跡することで、現在のパフォーマンスが顧客や従業員にとって適切であるかどうかを把握することができます。
●アプリパフォーマン・スメトリクスは、ウェブアプリの速度を明らかにし、1秒あたりのリクエスト数、データイン/データアウト、ピーク応答時間、平均応答時間などを含みます。
●ユーザ・エクスペリエンス・メトリクスは、エンドユーザの満足度に関するもので、アップタイムやHTTPサーバ・エラー・レートなどが含まれます。
●ハードウェアの洞察を提供する。データベースのパフォーマンスを向上させるもう一つの方法は、ハードウェアのアップグレードにお金をかけることです。ただし、無闇にアップグレードを行うのではなく、CPU、メモリ割り当て、ディスクレイテンシーなどのハードウェアメトリクスを追跡し、ハードウェアが現在どのように使用されているかをよりよく理解する必要があります。
Q:データベース監視ツールとは何ですか?
![](https://assets.st-note.com/img/1650372669763-0BN69lvCXa.png?width=1200)
データベース監視ツールは、データベース管理システムを監視するために設計されたソリューションです。データベース監視ソフトウェアは、パフォーマンス最適化のための多方面からのアプローチを使用し、データベース管理者の時間とリソースを解放するために設計されています。また、データベース監視は、データベース構造の多くの領域を改善するためのソリューションを提供することができます。
ホットスポットとボトルネックのトラブルシューティング:データのホットスポットがデータベースのパフォーマンスを低下させている場合、データベース監視ツールは、トラブルシューティングを支援し、有用な推奨事項を提供することができます。
限られたサーバーリソースへの対応: 最適でないサーバーリソースに対処するために、データベースパフォーマンス管理ソフトウェアは、クエリがストレージ容量によって制限されている場合を特定し、より低いオーバーヘッドでSQL通信を改善する場合があります。
最適でないSQLのチューニング:包括的なDBパフォーマンス管理ソフトウェアは、効果のないクエリを特定し、より良いパフォーマンスを得るためにそれらをチューニングすることによって、SQLの制限を修正することもできます。
データベース監視ソリューションをどのように選択したらよいか悩んでいる場合、投資を行う前に以下の質問を自問自答する必要があります。
●そのツールは、クエリチューニングのアドバイスを提供しているか?このツールは、クエリのチューニングに関するアドバイスを提供するか、データベースのレプリケーションを検出し、ブロックされたSQLクエリを特定できるか?
●SQL Server、MySQL、MariaDB、Oracle、Amazon RDS、EC2など、マルチベンダーに対応したプラットフォームか?
●機械学習によるデータベースの異常検出が可能か?
●直感的なダッシュボードは、クエリ、データベースパフォーマンス、ハードウェアヘルスなどに関するトップレベルおよびドリルダウンの幅広いメトリックを表示しますか?
●サーバのパフォーマンスチューニングを支援し、エンドユーザー体験を向上させるツールですか?
●他の監視・管理ソリューションと統合し、データベースパフォーマンス管理がIT監視戦略全体の一部となるか?
Q:データベース監視ソフトウェアの要件は?
![](https://assets.st-note.com/img/1650372725750-CVUbhOMnt8.png?width=1200)
データベース監視ツールへの投資を検討している場合、適切な機能と特徴を備えたソリューションを選択することが重要です。以下は、エンタープライズグレードのデータベースパフォーマンス管理ソリューションがサポートすべき主要機能の一部です。
直感的なパフォーマンス分析:簡単なドリルイン、コンテキスト設定、および一貫したナビゲーションを選択します。データベースパフォーマンス管理ソフトウェアは、SQL、待機時間、アプリケーション、ユーザーなどの主要な次元にわたって、パフォーマンス状況を一目で把握できるようにします。
ブロッキング分析:何がブロックされているのか、何がブロックしているのかを確認できます。ブロックの階層と、データベースのブロックによるパフォーマンスへの全体的な影響を理解するのに役立ちます。
データベース、インデックス、クエリーのチューニングアドバイザー:データベース、インデックス、クエリを最適化するためには、適切なデータが必要です。負荷が高く非効率的なSQLを特定し、インデックス作成の機会を見つけます。SQL Server と Oracle の実際のワークロードの「X-marks-the-spot」分析を実行します。
リアルタイムおよびヒストリカルモニタリング: 根本原因の分析を即座に実行したり、過去のデータを使ってタイムトラベルしたりすることができます。パフォーマンスが低下している理由や、パフォーマンスの方向性、システムの傾向を把握するのに役立ちます。
マルチベンダーのリレーショナル・データベースをサポート:1 つのツールを使用して、複数の一般的なデータベース・タイプを監視します。SQL Server(Azure SQL Databasesを含む)、Oracle、MySQL、MariaDB、Aurora、IBM DB2、SAP ASE(オンプレミス、仮想化、クラウド)のすべてを一度に監視するためのサポートを探してみてください。
他製品との統合: データベースパフォーマンス管理ソリューションと他のシステム監視ツールを統合し、依存関係マッピングとカスタマイズ可能なダッシュボードにより、アプリケーション、サーバー、ストレージ、インフラの健全性と運用状況の上流と下流を可視化します。
異常の検出:時間の経過とともに改善される機械学習を使用して、予想と異なる動作が発生した場合に確認します。機械学習により、インスタンスの待機動作のプロファイルを理解することができます。ワークフローを調整することで、環境内で問題が発生したときに、その問題に焦点を当てることができます。
管理API:監視対象のデータベース環境を自動化またはプログラムによって管理し、導入とスケーラビリティを容易にします。管理APIを使用すると、大規模または動的なデータベース環境の管理から時間を解放し、チューニングや最適化など、より付加価値の高い活動に集中することができます。
Q: Database Performance Analyzer (DPA)とは何ですか?
![](https://assets.st-note.com/img/1650372754844-eXiLn0Jw0r.png?width=1200)
なぜ私のクエリは遅いのだろう? 私のインデックスは正しいのか? 私のワークロードは最適化されていないのだろうか? DBMSのパフォーマンスには様々な要因が影響しますが、どの指標が重要なのか、どこからチューニングを始めればいいのかを把握することは必ずしも容易ではありません。リソースを最適化するために、管理者は、最適化されたデータベースへの次のステップをサポートしながら、マルチベンダーのプラットフォームで重要なメトリクスを可視化し、時間を節約する自動化とアラート機能へのアクセスが必要です。
Database Performance Analyzerは、データベース管理システムを改善するために異なるアプローチを取ることで、より良い結果を提供するように構築されています。DPAはこれらの必須機能をサポートしているため、より簡単にパフォーマンスをチューニングし、DBMSの効率を最適化することができます。
Q:DPAのデータベース監視ツールは何が違うのか?
![](https://assets.st-note.com/img/1650372779815-RdIPabhmak.png?width=1200)
●様々なDBMSを横断的に監視します。Database Performance Analyzerは、1つのインストールからこれらのデータベースをすべて監視します。SQL Server、Oracle、MySQL、MariaDB、Aurora、DB2、SAP ASE、オンプレミスおよびクラウドにまたがっています。
●複雑なデータベース問題の根本原因を迅速に特定します。機械学習による異常検知と応答時間分析により、データベースの専門家であるかどうかにかかわらず、修正が必要な箇所を正確に表示します。
●監視対象インスタンスの負荷は1%未満です。エージェントレス・アーキテクチャは、開発、テスト、運用で安全に使用できるように設計されており、数千のデータベースインスタンスを監視できるように拡張できます。
●チームコラボレーションによる迅速な問題解決: アプリケーション開発者、DBA、およびDevOpsチームが協力して、組織のDBMSを完全に可視化することで、責任の所在を明らかにすることができます。
●パフォーマンス管理を積極的に行うこと: 問題が発生する前に異常を特定します。機械学習によりインテリジェントなベースラインを作成し、2以上の標準偏差を検出して問題を特定します。アラートとカスタムレポートも入手できます。
●ハイブリッド環境(オンプレミス、仮想化、クラウド)にあるすべてのデータベースを監視します。監視のために複数のデータベースパフォーマンス管理ツールに強制されることはありません。ぜひDPAを検討ください。DPAのデータベース監視ツールは、どのように展開されているかに関係なく、データベースを完全にカバーするように設計されています。物理、仮想、クラウド(IaaS、PaaS、DBaaS)を問わず、ユーザはDPAのデータベース・パフォーマンス管理ソリューションを単一のGUIで管理することが可能です。
デモ・評価などのお問合せ
この記事が気に入ったらサポートをしてみませんか?