Eu tenho visão de índice criar uma visão em Table1 e Table2 e ID é o cluster em Table1
create view VwTestView
with schemabinding
as
Select t1.ID,t1.col1,t1.col2,t2.col1,t2.col2 from from Table1 t1
join Table2 t2 on (t1.ID=t2.ID)
go
create unique clustered index VwIX_ID on VwTestView (ID)
Minha pergunta é, é o índice VwIX_ID em uma visão VwTestView irá retardar o insert / update / delete na tabela1 ou table2
Respostas:
1 para resposta № 1É um trabalho extra para o mecanismo de banco de dados manter a exibição indexada. Há um impacto, mas você teria que medir em seu sistema para ver o aumento do trabalho (por exemplo, através de colunas de CPU e Gravação do SQL profiler)
A menos que você tenha grandes volumes de gravação, isso não importa, porque você provavelmente ganhará muito mais com leituras E se eles usam a exibição indexada. O otimizador pode ignorar a visão indexada, é claro, a menos que você use o NOEXPAND, que é necessário na edição padrão e, obviamente, requer testes em contrário.
0 para resposta № 2
Sim, haverá um impacto marginal em ambas as tabelas, para todas as instruções de inserção / atualização / exclusão. Assim como há um impacto ao adicionar um índice a qualquer tabela. Você não recebe nenhuma operação de indexação de graça ".