ホームページ  >  記事  >  データベース  >  Oracle クエリが遅い場合はどうすればよいですか?

Oracle クエリが遅い場合はどうすればよいですか?

coldplay.xixi
coldplay.xixiオリジナル
2020-07-22 16:05:035920ブラウズ

Oracle クエリが遅い場合の解決策: 1. データ、ログ、インデックスを別の I および O デバイスに配置して読み取り速度を向上させる; 2. ハードウェアをアップグレードする; 3. ネットワーク速度を向上させる; 4. 垂直、テーブルを分割するテーブルのサイズを小さくするには、水平方向に配置します。

Oracle クエリが遅い場合はどうすればよいですか?

Oracle クエリが遅い場合の解決策:

1. データ、ログ、インデックスを別の I/O に配置します。デバイスの読み取り速度を上げるために、以前は Tempdb を RAID0 に配置することができましたが、SQL2000 ではサポートされなくなりました。データ量 (サイズ) が大きくなるほど、I/O を改善することがより重要になります。

2. テーブルを垂直方向と水平方向に分割してテーブルのサイズを削減します (sp_spaceuse)

3. ハードウェアをアップグレードします

4. クエリ条件に基づいて、インデックスの作成、インデックスの最適化、アクセス方法の最適化、結果セット内のデータ量の制限を行います。フィルファクタは適切である必要があることに注意してください (デフォルト値の 0 を使用するのが最善です)。インデックスはできるだけ小さくする必要があります。インデックスを構築するには、バイト数の小さい列を使用することをお勧めします (インデックスの作成を参照)。性別フィールドなど、値の数が限られたフィールドには単一のインデックスを構築しないでください。

5. ネットワーク速度の向上;

6. サーバーのメモリの拡張 Windows 2000 および SQL Server 2000 は 4 ~ 8G のメモリをサポートできます。仮想メモリの構成: 仮想メモリのサイズは、コンピュータ上で同時に実行されているサービスに基づいて構成する必要があります。 Microsoft SQL Server® 2000 を実行する場合は、仮想メモリ サイズをコンピュータに搭載されている物理メモリの 1.5 倍に設定することを検討してください。フルテキスト検索機能を追加でインストールしており、Microsoft Search サービスを実行してフルテキスト インデックス作成とクエリを実行する予定がある場合は、仮想メモリ サイズをコンピュータに搭載されている物理メモリの少なくとも 3 倍に構成することを検討してください。 SQL Server の最大サーバー メモリ サーバー構成オプションを物理メモリの 1.5 倍 (仮想メモリ サイズ設定の半分) に構成します。

7. サーバー CPU の数を増やしますが、並列処理とシリアル処理にはメモリなどのリソースがより多く必要になることを理解する必要があります。並列処理を使用するかシリアル処理を使用するかは、MsSQL によって自動的に評価されます。単一のタスクは、プロセッサ上で実行できる複数のタスクに分割されます。たとえば、遅延クエリのソート、接続、スキャン、GROUP BY 句が同時に実行され、システムの負荷に応じて SQL SERVER が最適な並列レベルを決定します。大量の CPU を必要とする複雑なクエリが最適です。並列処理用。ただし、更新操作の Update、Insert、および Delete は並行して処理できません。

8. like を使用してクエリを実行する場合、単にインデックスを使用するだけでは機能しませんが、全文インデックス作成はスペースを消費します。 like 'a%' '%a' のようなインデックスを使用します インデックスを使用せずに '%a%' のようにクエリを実行する場合、クエリ時間はフィールド値の全長に比例するため、CHAR 型は使用できませんが、VARCHAR を使用します。非常に長い値を持つフィールドの全文インデックスを構築します。

9. DB サーバーとアプリケーション サーバーの分離、OLTP と OLAP の分離

10. 分散パーティション ビューを使用してデータベース サーバーの結合を実装できます。フェデレーションは、個別に管理されますが、連携してシステムの処理負荷を共有するサーバーのグループです。データを分割してデータベース サーバー コンプレックスを形成するこのメカニズムにより、一連のサーバーを拡張して、大規模な多層 Web サイトの処理ニーズをサポートできます。詳細については、「フェデレーテッド データベース サーバーの設計」を参照してください。 (SQL ヘルプ ファイル「パーティション ビュー」を参照してください)

a. パーティション ビューを実装する前に、まずテーブルを水平方向にパーティション分割する必要があります

b. メンバー テーブルを作成した後、それを定義します。各メンバー サーバー 各ビューが同じ名前を持つ分散パーティション ビュー。このようにして、分散パーティション ビュー名を参照するクエリを任意のメンバー サーバーで実行できます。システムは、各メンバー サーバー上に元のテーブルのコピーがあるかのように動作しますが、実際には、各サーバー上にメンバー テーブルと分散パーティション ビューが 1 つだけ存在します。データの場所はアプリケーションに対して透過的です。

11. インデックスの再構築 DBCC REINDEX、DBCC INDEXDEFRAG、データとログの圧縮 DBCC SHRINKDB、DBCC SHRINKFILE. 自動圧縮ログの設定. 大規模なデータベースの場合は、サーバーのパフォーマンスが低下するため、データベースの自動拡張を設定しないでください。

関連する学習の推奨事項: Oracle データベース学習チュートリアル

以上がOracle クエリが遅い場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。