Problema
Em Contas a Pagar (Atualizações>Contas a Pagar>Contas a Pagar ou Atualizações>Contas a Pagar>Funcoes Ctas Pagar), ao montar um filtro de usuário com o operador "Contém a expressão", causa lentidão extrema ao aplicar o mesmo no browse da rotina.
Solução
Quando o assunto é filtrar registros, estamos falando, de forma relativa, em queries executadas no banco de dados, utilizando uma definição de cláusulas baseadas no que o usuário deseja selecionar neste filtro de registros. Ao utilizarmos os operadores "Contém a expressão" e "Não contém", automaticamente estaremos montando a query de seleção dos registros com as cláusulas LIKE e NOT LIKE. Essas cláusulas, tem como finalidade encontrar uma expressão em texto em um determinado campo, seja no começo, meio ou fim de seu conteúdo. Devido à isto, o índice de busca do banco de dados é comprometido, fazendo com que a leitura de dados para seleção seja feita bloco a bloco (full table scan) ao invés de direcionar a busca por um índice existente na tabela (index search). Por este motivo, não é aconselhável utilizar esses operadores em filtros para tabelas que contém uma proporção extremamente grande de registros, pois a execução da query no banco de dados não será performática, sendo assim, não há viabilidade de otimizar a performance da rotina.
Aconselhamos a utilização de operadores mais precisos como "Igual a" e "Está contido em", além de referenciar campos que podem ser usados como chave de busca, como por exemplo o número do título (campo No. Título), código do fornecedor (campo Fornecedor), etc.
Artigos relacionados
Não há.