インデックス付きビューを作成するためにシミュレート組合
-
25-09-2019 - |
質問
私はSQL Server 2005で、次のテーブルスキーマを持っていると私は、私は構造的な変更を永続的なものことができるまで私が書いている一部のクエリのためのインデックス付きビューにそれを非正規化したいと思います。
次のようにテーブルである
Writing
(
DocumentSerial int
Grader1_ID int
Grade_1 int
Grader2_ID int
Grade_2 int
Grader3_ID int
Grade_3 int
)
Users
(userID int,
firstname,
lastname
)
年生のいずれか1年生、年生2、または3年生であるIは各年生/グレード/ドキュメントの組み合わせに対して単一の行を有するテーブルを望ん
表示私は用途にUNIONを書いたので、それはインデックスません
select documentSerial,grader1_id as grader_id, grade_1 as grade ,1 as sequence
from Writing w inner join User U on w.grader1_id=u.userid
UNION
select documentSerial,grader2_id as grader_id, grade_2 as grade ,2 as sequence
from Writing w inner join User U on w.grader2_id=u.userid
UNION
select documentSerial,grade31_id as grader_id, grade_3 as grade ,3 as sequence
from Writing w inner join User U on w.grader3_id=u.userid
問題がある - SQLできませんインデックス組合とビュー...
解決
なぜそれはあなたが適切なテーブルを使用することができたときに、インデックス付きビューする必要もありません。
SELECT x.*
INTO normalized_table
FROM (select documentSerial,grader1_id as grader_id, grade_1 as grade ,1 as sequence
from Writing w
join User U on w.grader1_id = u.userid
UNION ALL
select documentSerial,grader2_id as grader_id, grade_2 as grade ,2 as sequence
from Writing w
join User U on w.grader2_id = u.userid
UNION ALL
select documentSerial,grade31_id as grader_id, grade_3 as grade ,3 as sequence
from Writing w
join User U on w.grader3_id = u.userid) x
私はあなたのデータを同期させる手間を持っていないので、あなたはおそらくビューを望んでいることを理解しています。他の唯一の選択肢ではないインデックスに図である...
所属していません StackOverflow