01. DADOS GERAIS

Linha de Produto:Franquias e Redes
Segmento:Varejo
Módulo:Server
Função:Relatórios de Promoções
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :DVARLIVECP-7810


02. SITUAÇÃO/REQUISITO

Criação de um índice na tabela vigencia para otimizar o ORDER BY utilizado no Relatório de Promoções Encerradas.

Cenário Atual

Atualmente, o relatório de promoções encerradas realiza ordenação pelos campos filial.id, vigencia.inicio e vigencia.fim. Foi identificado via análise de plano de execução que o SQL Server realiza operação de Sort explícito, elevando o custo da consulta.

Requisito

Criar um índice que permita ao otimizador utilizar Index Seek e evitar o uso de Sort, melhorando a performance da consulta.

03. SOLUÇÃO

Cláusula de ordenação da query:

ORDER BY filial.id ASC, vigencia.inicio ASC, vigencia.fim ASC


Tabela afetada: vigencia


Problema identificado:



Solução Proposta

Criar os seguintes índices não clusterizados:

CREATE NONCLUSTERED INDEX IX_Vigencia_Inicio_Fim
ON vigencia (inicio ASC, fim ASC);
CREATE NONCLUSTERED INDEX IDX_situacao_promocao_status_data
    ON situacao_promocao (statusPromocao, dataEncerramento)
    INCLUDE (filial_id, promocao_id);



Critérios de Aceite


Impacto e Considerações


Componentes