SQL データベースのパフォーマンス チューニングの間違いトップ 10
公開: 2020-06-12
複数の企業が SQL データベースを所有しています。 ただし、すべてのデータベースが最適な範囲で実行できるわけではありません。 パフォーマンス チューニングは、システム ファイルの設計をデータベースの環境に合わせて均質化するプロセスに関与することに注意してください。 最良の結果を得るには、上記の経験と知識を持つ専門家にタスクを割り当てる必要があります。 組織がデータベースのパフォーマンス チューニングを使用していない場合、データベースが遅くなる可能性があります。 これは、組織の内部機能と外部機能の両方に影響を与えます。 エンドユーザーは満足しますが、ビジネスは成長と顧客満足の面で多大な打撃を受けます。
また読む – トラッキング Cookie とは
SQL データベースは他のデータベースとどう違うのですか?
今日人気のあるほとんどのプログラミング言語を注意深く調べると、それらがデータ構造とアルゴリズムの十分な知識を持つ熟練した開発者向けに特別に設計されていることがわかります。 ただし、SQL 言語はまったく異なります。 プロダクト マネージャー、データ サイエンティスト、デザイナー、アナリストなどによって展開されます。 これらの専門家は全員、データベースにアクセスできます。 ただし、効率的な SQL クエリを作成するための直感を理解していない可能性があります。 これが、組織内に SQL データベースがある場合、IT チームが SQL クエリに精通していることを確認して、パフォーマンス チューニングの問題を迅速に特定して修正できるようにする必要がある理由です。
より優れた SQL クエリを作成するにはどうすればよいでしょうか?
すべての開発者は、より優れた SQL を作成するという目標を持っています。 ただし、ほとんどの場合、彼らは一般的な間違いを犯します。 以下に示すのは、コード レビューから得られた、SQL 最適化の機会を逃す原因となる一般的なパフォーマンスの誤りです。
1. 接続不良の管理 – SQL データベース
開発者は、データベースをアプリケーションに接続するため、またはシステムからデータを取得するためのクエリを実行するための構成コードを作成します。 このデータがフェッチされ、他に何も必要なくなった後、このコードはシステムへの接続を閉じる必要があります。 ただし、これが行われない可能性があり、その結果、非アクティブなセッションの量が増加します。 システム内のこれらの非アクティブなセッションは、現在アクティブなデータベース内の他の接続に配置された可能性のある貴重なリソースを利用します。
2. 共有プールとカーソルが不適切に使用されている
開発者は通常、ほとんど使用されたままの武器キットにカーソルを持っています。 オラクルは通常、カーソルなしで実行されるたびにコードを解析することになると、困難な時期に直面します。 これは主に、繰り返し実行される SQL クエリのパフォーマンスに悪影響を及ぼします。 経験豊富で熟練した DBA は、データベースの AWR レポート セクションをチェックすることで、この問題を認識することができます。
3. 悪い SQL
SQL データベースのパフォーマンスは、そのクエリの品質に依存します。 記述方法はシステムのパフォーマンスに影響を与えます。これは、実行後のデータをフェッチするための結合条件もカバーします。 大きなテーブルの場合は、フル テーブル スキャンを使用しないでください。 SQL を作成したら、システムで実行するコストを把握するために、SQL クエリの説明計画を組み込む必要があります。 バインド変数、インデックス、およびカーソルを使用して効率を高める必要があります。

4. 標準以下の初期化パラメータの使用
DBA は、初期化の推奨パラメーターを最適化する必要があります。 これらのパラメータを使用すると、データベースのパフォーマンスが向上します。 よくわからない場合は、Oracle Service Request で提案を確認してください。
5. 間違った I/O データベース
優れた DBA は、システムに適したハードウェアを選択して、複数のディスクに簡単に分散して速度を向上できるようにします。 専門家は、この件についてネットワーク チームの他のメンバーと話し合う必要があります。 データがシステム内を移動する速度について検討し、検討する必要があります。 システム内のパフォーマンスのミスやその他のボトルネックを回避するために、ネットワーク スイッチだけでなくルーターの速度も考慮する必要があります。
6. ログ設定の問題をやり直す
サーバーがクラッシュした場合に Oracle がトランザクションをやり直すために、ログには redo バッファからのデータが保存されるため、ログをやり直すことが不可欠です。 REDO ログのサイズが十分でない場合、システムで複数の切り替えが発生し、パフォーマンスの問題が発生します。 これにより、アーカイブ生成の負荷が大きくなります。
7. データブロックのバッファキャッシュとシリアル化
これは、空きリスト セットの元に戻すセグメントが不足しているために発生します。 このシナリオは、複数のアクティブなユーザーが少ない UNDO セグメントを持ち、パフォーマンスに多くの問題を引き起こす大規模なデータベースで一般的です。
8. テーブル全体のスキャン
SQL クエリでのフル テーブル スキャンに注意してください。 これは、Explain Plan を実行することで実行できます。 米国の信頼できるデータベース管理会社の経験豊富な DBA である Remote.DBA.com は、不適切な SQL 設計を反映するクエリは、インデックスを使用して修正できると述べています。 これは、必要なデータを絞り込むことによって実行できます。 場合によっては、フル テーブル スキャンが小さなテーブルに役立つことがあります。
9. 再帰的 SQL – SQL データベース
これは、正しく使用すれば、データベース開発者に恩恵をもたらす可能性があります。 ただし、注意が必要です。 彼らは諸刃の剣のようなものです。 それらを正しく行うことができれば、データベース出力の効率が向上し、データベースのパフォーマンスにプラスの影響を与えます。
10. ディスク内ソート – SQL データベース
これは、データベースにとって非常にコストのかかる作業です。 これは、SQL 設計が貧弱で、最適化が不十分であることを意味します。 この問題は、アクティビティ統計を扱う AWR レポートですぐに特定できます。
したがって、結論として、経験豊富で熟練した DBA は、アプリケーションとデータベースの設計から始めて、パフォーマンス チューニングのさまざまな分野を検討する必要があると言えます。 パフォーマンス チューニングを目的として作成されたアプリと同様に、データベースは、スケーラビリティと機能に関して優れています。
SQL のパフォーマンス チューニングに携わるすべての専門家は、最新のテクノロジを常に把握し、最新の状態に保つ必要があります。 さらに、ここにリストされている 10 の問題は、SQL データベースのパフォーマンスを妨げずに他の間違いを迅速に修正して、速度と機能を可能な限り最大限に高めることができるように注意することをお勧めします。
著者略歴:
Karen はビジネス技術アナリストです。 彼女は自分の知識を友達と共有するのが大好きです。