ルックアップテーブル(##lookup
)があります。データを複製しているのでデザインが悪いことはわかっていますが、クエリが大幅に高速化されます。このテーブルにデータを入力するクエリがあります
insert into ##lookup select distinct col1,col2,... from table1...join...etc...
この動作をシミュレートしたいと思います。
delete from ##lookup
insert into ##lookup select distinct col1,col2,... from table1...join...etc...
これにより、テーブルが明らかに正しく更新されます。しかし、これは多くの挿入と削除です。それは私のインデックスを台無しにし、選択するためにテーブルをロックします。
このテーブルは、次のような方法で更新することもできます。
delete from ##lookup where not in (select distinct col1,col2,... from table1...join...etc...)
insert into ##lookup (select distinct col1,col2,... from table1...join...etc...) except if it is already in the table
2番目の方法は時間がかかる場合がありますが、「ロックなし」と言うことができ、テーブルから選択できるようになります。
2番目の方法でクエリを作成する方法についてのアイデアはありますか?