SQL DE PRODUÇÃO // SFMC

SQL Playbook.

Os padrões que mais uso no Marketing Cloud: deduplicação determinística, ROW_NUMBER(), grain de query, filtros SARGable, staging, target actions e segmentação de audiência.

9 guias aprofundadosPor que o padrão funciona, não só o que copiar.
24 snippets SQLBuilding blocks reutilizáveis com gotchas e evidência.
Production-firstRegras construídas operando workloads reais de SFMC.
Deep dives

Saiba por que a query funciona.

A meta é uma referência que eu consiga abrir no meio do trabalho real, não uma parede de copy-paste.

001
intermediárioPRODUÇÃO

ROW_NUMBER() — O canivete suíço do SQL no SFMC

Use ROW_NUMBER() quando a pergunta de negócio for “qual única linha deve sobreviver dentro de cada grupo lógico?”. A parte difícil não é a função — é definir corretamente a partição e a regra de ordenação.

row_numberdeduplicationwindow functionsql
002
avançadoPRODUÇÃO

Deduplicação por Prioridade de Negócio

Uma regra de Golden Record muitas vezes precisa considerar confiança da fonte, prioridade de status ou precedência de permissão antes da recência. Coloque essas regras no ORDER BY da window function para que a linha sobrevivente represente o contrato de negócio.

deduplicationprioritycasegolden record
003
intermediárioPRODUÇÃO

Filtros SARGable em Query Activities

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.

performancewheredateaddsargabletimeout
004
avançadoPRODUÇÃO

Defina o Grain Antes da Sintaxe do JOIN

A maioria dos problemas do tipo “minha contagem explodiu” é problema de grain. Defina o que uma linha representa em cada fonte antes de escrever o JOIN.

joinsgraintrackingdata views
005
intermediárioPRODUÇÃO

Quebre Queries Grandes em Stages em Vez de Tentar Ser Herói

Quando uma Query Activity acumula joins, scans e transformações demais, divida o trabalho em etapas determinísticas. Você ganha observabilidade, scans menores e isolamento de falhas muito melhor.

performanceintermediate tablesautomation studiotimeout
006
intermediárioPRODUÇÃO

Target Action Faz Parte do Design da Query

O texto SQL é só metade da Query Activity. A target action muda a forma como a plataforma escreve os dados e pode virar gargalo conforme o alvo cresce.

query activityoverwriteupdateappendperformance
007
intermediárioPRODUÇÃO

Divisão de Audiência: Precisão vs Throughput

Use NTILE() quando você precisa de grupos aleatórios equilibrados. Use módulo de _CustomObjectKey quando precisa de uma divisão muito barata e aproximadamente uniforme em Data Extensions padrão grandes e o equilíbrio exato não é obrigatório.

ntilecustomobjectkeyrandomsegmentationholdout
008
fundamentosPRODUÇÃO

ORDER BY Não é Contrato de Armazenamento

Uma Data Extension é uma tabela relacional, não uma lista ordenada. ORDER BY é útil junto com TOP ou window functions para escolher quais linhas vencem, mas consumidores downstream nunca devem depender da ordem física das linhas.

order bytopdata extensionsql
009
fundamentosPRODUÇÃO

Minhas Regras Operacionais de SQL no SFMC

Esses são os defaults que quero lembrar antes de promover uma query de exploração para uma automação produtiva.

sqlchecklistautomation studiogovernance
Regras rápidas

Antes de uma query virar infraestrutura.

01 // GRAIN

Uma linha representa o quê?

Defina o grain de cada origem e do target final antes de fazer qualquer JOIN.

02 // IDENTIDADE

Dedup é regra de negócio.

PARTITION BY não é decoração sintática. É a definição de identidade que você está impondo.

03 // PERFORMANCE

Filtre cedo. Faça staging com intenção.

Uma sequência legível de queries pequenas geralmente vence uma query heroica que ninguém quer depurar.