SQL // intermediárioPRODUÇÃO

Filtros SARGable em Query Activities

Filtre tabelas grandes sem forçar scans desnecessários.

Context Pack →Abrir Workspace →
Trust & provenancePRODUCTION
Nível de evidênciaPRODUCTIONFontes oficiais2Outras fontes0Última verificação2026-10-05

O nível de evidência descreve minha experiência com o conteúdo. Fonte oficial descreve contrato/documentação da plataforma. Observação de produção não deve ser tratada automaticamente como limite oficial.

Em Data Extensions e Data Views grandes, o lado em que a função é aplicada pode decidir se o banco consegue usar índice de forma eficiente. Sempre que possível, mantenha as colunas pesquisáveis “nuas” no lado esquerdo dos predicados.

EvidênciaPRODUÇÃO
Dificuldadeintermediário
Verificado2026-10-05
Regras operacionais
01

Prefira EventDate >= DATEADD(...) a DATEDIFF(..., EventDate, ...).

02

Filtre cedo, antes de joins caros.

03

Restrinja a janela de tempo antes da agregação quando o caso de uso permitir.

04

Timeout recorrente pede redesign, não retry infinito.

Prefira isto

O banco consegue comparar EventDate diretamente contra um único limite calculado.

WHERE EventDate >= DATEADD(day, -30, GETDATE())

Evite isto em fontes grandes

Envolver a coluna de origem em uma função pode impedir uso eficiente de índice e forçar muito mais trabalho.

WHERE DATEDIFF(day, EventDate, GETDATE()) <= 30

A própria Salesforce cita predicados não-SARGable como causa comum de timeout em Query Activities.

Filtre antes de fazer JOIN

Se você só precisa de 30 dias de opens, limite _Open antes de deixá-la participar de um grafo grande de relacionamentos. Tabelas intermediárias costumam ser mais limpas do que pedir para uma única query fazer tudo.

Snippets relacionados
Fontes / verificação