Filtros SARGable em Query Activities
Filtre tabelas grandes sem forçar scans desnecessários.
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.
Prefira EventDate >= DATEADD(...) a DATEDIFF(..., EventDate, ...).
Filtre cedo, antes de joins caros.
Restrinja a janela de tempo antes da agregação quando o caso de uso permitir.
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.