Indices SQL Server
Crie os índices para as consultas abaixo. No exercício informe a consulta, o Custo Estimado da CPU antes e depois da criação do índice, se for necessário a criação do índice informe o seu script. Todas as tentativas de criação de índices devem ser postadas. Se não for possível melhorar o desempenho com a criação de índices, você deve especificar que mesmo com os x índices criados o desempenho não melhorou.
1. Crie uma consulta para listar as multas, essa consulta deve retornar o Nome, CPF e Unidade Federativa da pessoa, o Valor, Valor Pago e a Data de Emissão da Multa.
a. Liste apenas as multas que não foram pagas para o “Fulano Silva” select * from Multa as a inner join Pessoa as p on a.IdPessoa = p.IdPessoa inner join Endereco as e on p.IdPessoa = e.IdPessoa
where p.Nome = 'Fulano Silva' and a.ValorPago is null
create nonclustered index BuscaDeMultas on Multa(IdPessoa)
create nonclustered index BuscaDeMultasValorPago on Multa(ValorPago)
select * from Pessoa
Tempo antes = 00:27s
Custo CPU antes = 44,65
Tempo depois = 00;07
Custo CPU depois = 0,0001
b. Liste as multas que não foram pagas no intervalo de “01/01/2014” até “01/06/2014.
select * from Multa as a inner join Pessoa as p on a.IdPessoa = p.IdPessoa inner join Endereco as e on p.IdPessoa = e.IdPessoa
where a.DataPagamento Between '01/01/2014' and '01/06/2014' and a.DataPagamento is not null
Tempo antes = 00:18 s
Custo CPU antes = 32,29
Tempo depois = 00;00
Custo CPU depois = 0,02
c. Liste as multas pagas, das pessoas que são do Estado de Minas Gerais. select * from Multa as a inner join Pessoa as p on a.IdPessoa = p.IdPessoa inner join Endereco as e on p.IdPessoa = e.IdPessoa inner join UF as u on e.UF = u.UF where u.Nome = 'MINAS GERAIS' and a.DataPagamento is not null
Tempo antes = 01:54s
Custo CPU antes = 32,29
Não teve índice de melhor desempenho
d. Liste todas as multas emitidas para o CPF “18718486882” no ano de