パーティション分割されたビューを作成しようとしていますが、実行計画では、基になる両方のテーブルにまだアクセスしていることを示しています。
クエリが引き続き基になるテーブルの両方にアクセスし、それらを連結するのはなぜですか?
パーティション分割されたビューを作成しようとしていますが、実行計画では、基になる両方のテーブルにまだアクセスしていることを示しています。
クエリが引き続き基になるテーブルの両方にアクセスし、それらを連結するのはなぜですか?
最も可能性の高い問題は、CHECK
制約が条件と一致しないWHERE
ことです。
チェック制約は次の形式です。
(datepart(year,[StockDate])=(2016))
あなたのWHERE
状態は次の形式です。
StockDate = '20160101'
完全な日付を使用するようにチェック制約を変更します (さらに、関数を使用する必要はありません -- DATEPART
-- このような単純なフィルターには)。以下は2016年の表です。
[StockDate] >= '01/01/2016' AND [StockDate] <= '12/31/2016'
他のテーブルについても同じ手順を繰り返し、両方の述語の年をテーブルの年と一致するように変更します。
DATE
問題のフィールドはデータ型であるため、上記の構文は時間コンポーネントを示していないことに注意してください。データ型が の場合DATETIME
、範囲の終わりは次のように表現する必要があります。
'12/31/2016 23:59.59.997'
パーティション ビューの詳細については、パーティション ビューの使用に関する MSDN ページを参照してください。