0

非決定論的関数は SQL パーティショニング関数でどのように使用され、どのように役立ちますか?

4

1 に答える 1

3

MsSql では、パーティショニング関数で非決定論的関数を使用できます。

CREATE PARTITION FUNCTION MyArchive(datetime)
AS RANGE LEFT FOR VALUES (GETDATE() – 10)
GO

これは、10 日より古いレコードが自動的にアーカイブ (最初の) パーティションに移動されるということですか? もちろん違います。

データベースは、パーティショニング スキーマが設定された日付を格納し、それを最も (論理的な) 方法で使用します。上記のスキーマを 2000-01-11 に設定すると、区切り日は 2000-01-01 になります。最初の区切り日 (boundary_value - 2000-01-01) より前の日付のデータを照会する場合は、アーカイブ パーティションのみを使用します。現在の日から 10 日を引いた日付 (GETDATE() – 10) より後の日付のデータを照会する場合は、現在のパーティションのみを使用します。他のすべてのクエリでは、両方のパーティションが使用されます。つまり、現在の日付から 10 日を引いた日付よりも前の日付で、区切りの日付 (2000-01-01) よりも後の日付のデータをクエリします。

これは、日を追うごとに、両方のパーティションが使用される日付の範囲が拡大していることを意味します。そして、パーティションを確定的に区切りの日付に設定したほうがよいでしょう。

これが役立つシナリオはないと思います。

于 2008-10-10T23:21:01.883 に答える