* Providenciar mecanismos de segurança que restringem acesso a determinadas informações de uma tabela.
* Oferecer recursos aos desenvolvedores que permitem alterar como usuários podem visualizar lógicamente os dados aramazenados em uma ou mais tabelas
Com o MS-SQL 2000, a funcionalidade de criação de VIEWS foi expandida para oferecer benefícios na performance da execução de queries. Podemos então, criar índices únicos clusterizados e índices não clusterizados que melhoram o acesso as informações armazenadas no banco de dados.
De acordo com a documentação da Microsoft, existe um ganho de performance significativo, observado em bancos de dados de produção, Verifique o gráfico abaixo:
.gif)
Hoje vamos exemplificar a criação de uma view indexada.
Primeiro vamos criar uma tabela com dados fictícios:
create table fornecedores(
codigo int identity(1,1),
nome varchar(100),
dtnascimento datetime,
flativo char(1))
Agora, vamos criar uma view que deverá referenciar a tabela recém-criada. Lembrando que para utilizarmos a funcionalidade de indexação de views, esta view deverá ser criada com a opção de SCHEMABINDING.
create view dbo.v_fornecedores
with schemabinding
as (
select
codigo,
nome,
dtnascimento,
flativo
from
dbo.fornecedores
where
year(dtnascimento)>2000
)
Uma view indexada, deve ter obrigatóriamente um índice clusterizado do tipo UNIQUE, caso contrário, ao criar um índice não cluesterizado você obterá a seguinte mensagem:
Msg 1940, Level 16, State 1, Line 2
Cannot create index on view 'dbo.sua_view'. It does not have a unique clustered index
Então vamos criar o nosso índice clusterizado e único:
create unique clustered index indVFornecedores on dbo.v_fornecedores(codigo)
Agora sim, podemos criar nossos índices não clusterizados:
create index indVForncedoresDtNasc on dbo.v_clientes(dtnascimento)
Até a próxima!
Nenhum comentário:
Postar um comentário
Leave your comment here!