1
resposta

resolução usando cluster

CREATE TABLE tb_fornecedores (CNPJ VARCHAR(15), NOME VARCHAR(100), CIDADE VARCHAR(50), ESTADO VARCHAR(2), CREDITO FLOAT, DATA_CADASTRO DATE);

INSERT INTO tb_fornecedores VALUES ('1111111111','FORNECEDOR 1','RIO DE JANEIRO','RJ',10000,'2022-01-01'); INSERT INTO tb_fornecedores VALUES ('2222222222','FORNECEDOR 2','RIO DE JANEIRO','RJ',10000,'2022-01-01'); INSERT INTO tb_fornecedores VALUES ('3333333333','FORNECEDOR 3','RIO DE JANEIRO','RJ',10000,'2022-01-01'); INSERT INTO tb_fornecedores VALUES ('4444444444','FORNECEDOR 4','RIO DE JANEIRO','RJ',10000,'2022-01-01'); INSERT INTO tb_fornecedores VALUES ('5555555555','FORNECEDOR 5','SÃO PAULO','SP',10000,'2022-01-01'); INSERT INTO tb_fornecedores VALUES ('6666666666','FORNECEDOR 6','SÃO PAULO','SP',10000,'2022-01-01'); INSERT INTO tb_fornecedores VALUES ('7777777777','FORNECEDOR 7','SÃO PAULO','SP',10000,'2022-01-01'); INSERT INTO tb_fornecedores VALUES ('8888888888','FORNECEDOR 8','SÃO PAULO','SP',10000,'2022-01-01'); INSERT INTO tb_fornecedores VALUES ('9999999999','FORNECEDOR 9','SÃO PAULO','SP',10000,'2022-01-01');

CREATE UNIQUE CLUSTERED INDEX tbFOR ON tb_fornecedores (NOME);

select NOME, CREDITO, DATA_CADASTRO from tb_fornecedores where CIDADE = 'SÃO PAULO'

1 resposta

Olá Marco!

Para melhorar o desempenho da sua consulta, é importante criar um índice que ajude a acelerar a busca pelos dados. No seu caso, a consulta está filtrando pela coluna CIDADE, então seria mais eficiente criar um índice nessa coluna. Isso porque o índice permitirá que o SQL Server encontre rapidamente as linhas que correspondem ao critério de filtro, em vez de fazer um SCAN completo na tabela.

Você pode criar um índice não clusterizado na coluna CIDADE da seguinte forma:

CREATE NONCLUSTERED INDEX idx_CIDADE ON tb_fornecedores (CIDADE);

Esse índice irá acelerar as consultas que filtram por CIDADE, como a que você mencionou. Além disso, como você está selecionando as colunas NOME, CREDITO e DATA_CADASTRO, pode ser interessante incluir essas colunas no índice para que ele seja ainda mais eficiente, permitindo que a consulta seja resolvida apenas com o índice, sem precisar acessar a tabela base:

CREATE NONCLUSTERED INDEX idx_CIDADE ON tb_fornecedores (CIDADE) INCLUDE (NOME, CREDITO, DATA_CADASTRO);

Espero ter ajudado e bons estudos!