テーブルローテーション

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:2分
  • テーブルをローテーションすることでパフォーマンスを最適化し、データのライフサイクルを管理し、システムの効率を維持しながら古いデータを体系的にアーカイブできるようにします。

    テーブルローテーションはインスタンスのパフォーマンスを維持し、増加するデータセットのクエリーに関連するリスクを回避します。この機能では、[sys_created_on] フィールドを使用して、日付に基づいてデータセットを複数のテーブルに分離します。

    機能
    アドミニストレーターは、プロセスの時間パラメーター (期間) とその期間内のテーブルの数 (ローテーション) を指定します。ローテーションによってローテーションの最後のテーブルが書き込まれた後は、ローテーションの最初のテーブルが上書きされます。カスタムテーブルにテーブルローテーションを適用する前に、ServiceNow テクニカルサポートにお問い合わせください。
    例:
    • クエリー「Records created between 2015/12/10 08:49 and 2015/12/09 07/34 where topic=SystemCommand 」は単一テーブルの SQL クエリーに変換されます。これは、sys_created_on 節が単一のシャードをターゲットとするからです。
    • クエリー「Records updated between 2015/12/10 08:49 and 2015/12/09 07/34 where topic=SystemCommand」または日付範囲のないクエリーは、すべてのシャードをターゲットにする必要があるため、すべてのシャードでユニオンクエリーとして変換されます。
    長所
    • 現在のデータに影響を与えずに古いデータを削除できます (たとえば、テーブルの削除または切り捨て)。
    • テーブルは妥当なサイズにしか拡張されません。
    • クエリーの日付がわかっている場合は、データの作業セットが削減されます。
    短所
    • テーブルローテーションの日付を使用しないクエリー ([sys_created_on] フィールドを使用するなど) では、複数のテーブルにまたがる時間範囲をクエリーするという非効率的なユニオンクエリーが強制され、サブテーブルの数が多い場合は非常に遅くなる可能性があります。

      パフォーマンスを向上させるには、クエリーに作成日の範囲を含めることをお勧めします。

    • ユーザーはローテーションが適用されているテーブルにドット連結することはできません。

    順番に書き込まれるテーブルまたは挿入専用のテーブルにテーブルローテーションを使用できます。sys_import テーブルまたはタスク [task] テーブルを拡張するテーブルには、テーブルローテーションを使用できません。