web-dev-qa-db-ja.com

パーティションビュー-インデックスの保存

私は40億行を含む単一のテーブルを持っており、それらを1年の四半期ごとに別々のテーブルに分割する予定です。次に、すべてのテーブルにまたがるパーティションビューを作成します。

現在、データ用に1つのファイルグループ(ほとんどのデータが存在する場所)と非クラスター化インデックス用に1つのファイルグループがあります(このファイルグループにインデックスをゆっくりと移行しています)

データファイルグループと非クラスター化インデックスファイルグループは、異なるディスクにあります。

個々のテーブルには、主キーと非クラスター化インデックスが追加されます。これらはどこに置くべきですか? (ファイルグループに関して)テーブルごと、インデックスのタイプごとなどにファイルグループを作成する必要がありますか?

注:Enterpriseエディションがないため、データパーティショニングを使用できません。

4
codingbadger

各テーブルに異なる年次四半期が含まれる従来のパーティションビューを使用する場合は、ここでいくつかのレベルの分離があります。

  1. 各テーブル
  2. 各テーブルの各インデックス

つまり、パーティションビューがアクセスするテーブルが10個あり、各テーブルにクラスター化インデックスと非クラスター化インデックスがあるとします。この場合、それに応じて配置する必要がある20の異なるデータ構造を調べています。

これらのそれぞれをどこに配置するかについては、ワークロードに大きく依存します。たとえば、直近の2つの四半期テーブルのみが最も多くのレポートクエリとデータ変更を取得する場合、それらが別々であることを確認する必要があります。ただし、同じ点で、これらの各テーブルのインデックスが別々のディスクにあることでメリットが得られます。

ファイルグループはデータベースデータファイルの論理グループであるため、ここではディスクと言います。各テーブルと各インデックスを独自のファイルグループ(要点を示すために誇張)で分割しても、含まれているすべてのデータファイルが同じ物理ディスクのセットにある場合でも、基本的なI/Oパフォーマンスの向上は見られません。 その時点では実際には管理上の問題です。設計からパフォーマンスを引き出すときに、物理層と論理層を常に分割できるとは限りません。

したがって、物理ディスクの分離、どのタイプのcommonワークロードを受け取るかを視覚的にレイアウトし、そのようにデータ配置を設計する必要があります。

4
Thomas Stringer

ここで対処すべきさまざまなポイントがあります。

  • 大きなテーブルの分割
  • 非クラスター化インデックスのファイルグループ配置

2番目のインデックスから始めて、非クラスター化インデックスを分離することは、汎用的なアプローチとしては良い考えではないかもしれません。
ストレージを整列させる(テーブル内の行と、同じファイルグループに格納されている行に依存するインデックス)ことにより、パーティションをバックアップまたは復元する場合に、データと対応するインデックスが一緒に保持されます。 。

これ以外に、古いデータと最新のデータを含むテーブルが必要な場合は、SWITCHを使用する必要があります。これには、特に次の要件があります。

  • ソーステーブルとターゲットテーブルのデータとインデックスを揃える必要があります
  • あるファイルグループから別のファイルグループにデータを移動することはできません
0
JoseTeixeira