sql >> データベース >  >> RDS >> Sqlserver

SQLServer2008のパーティションテーブルと並列処理

    パーティショニングは決してありません パフォーマンスを向上させるためのオプション。期待できる最善の方法は、パーティション化されていないテーブルと同等のパフォーマンスを実現することです。通常、パーティションの数とともに増加する回帰が発生します。パフォーマンスのためには、パーティションではなくインデックスが必要です。パーティションは、ETL、アーカイブなどのデータ管理操作用です。パーティションを削除するとパフォーマンスが向上する可能性があるとの意見もありますが、パーティションを削除すると、パーティションの列と同じ列に先頭のインデックスキーを配置すると、はるかに優れた結果が得られます。

    そのクエリには、Stateのインデックスが必要です 。それ以外の場合はテーブルスキャンであり、テーブル全体をスキャンします。パーティション化されたテーブルに対するテーブルスキャンは常にです。 同じサイズのパーティション化されていないテーブルでのスキャンよりも低速です。インデックス自体は同じパーティションスキームに配置できますが、先頭のキーはStateである必要があります 。

    逆の一般的な誤解にもかかわらず、並列処理はパーティション化とは何の関係もありません。パーティション化された範囲スキャンとパーティション化されていない範囲スキャンの両方で並列演算子を使用できます。これがクエリオプティマイザーの決定になります。

    いいえ

    インデックスが役立ちます。インデックスを整列させる必要がある場合は、パーティション化する必要があります。パーティション化されていないインデックスはパーティション化されたインデックスよりも高速ですが、スイッチイン/スイッチアウト操作のインデックス調整要件を回避することはできません。

    パーティショニングを検討している場合は、保持ポリシー期間などを過ぎた古いデータを削除するために、高速のスイッチインスイッチアウト操作を実行する必要があるためです。パフォーマンスを得るには、パーティショニングではなく、インデックスを確認する必要があります。



    1. MYSQL文中の2つの単語を一致させる方法

    2. クラスタ化された列ストアインデックスからの削除のシリアル化

    3. 1つのステートメントでJavaで実行される複数のクエリ

    4. ORA-00923:FROMキーワードが予期された場所に見つかりません-SQLDeveloper