Monitorar e otimizar uma solução de análise
11. Erros de T-SQL e transações
Uma falha SQL pode ser um valor incompatível, uma sintaxe não suportada ou uma disputa entre transações. Repetir o comando sem conhecer o estado confirmado pode duplicar efeitos. O diagnóstico precisa relacionar a mensagem à atomicidade exigida pelo processo.
Uma falha SQL pode ser um valor incompatível, uma sintaxe não suportada ou uma disputa entre transações. Repetir o comando sem conhecer o estado confirmado pode duplicar efeitos. O diagnóstico precisa relacionar a mensagem à atomicidade exigida pelo processo.
Superfície SQL e qualidade dos dados
Confirme suporte do comando e do recurso no item Fabric utilizado. Familiaridade com SQL Server não garante superfície idêntica no Warehouse ou endpoint de análise. Uma sintaxe válida em outro produto pode exigir outra solução no destino atual.
Restrições declaradas como não impostas não rejeitam automaticamente toda duplicidade ou referência inválida. O ETL deve validar unicidade e integridade. Uma chave duplicada no lado que deveria ser único pode multiplicar linhas de join e totais sem provocar erro de execução.
Uma declaração de chave primária não imposta pode comunicar uma intenção sem garantir que a carga a respeite. Se o ETL insere duplicatas, um relacionamento que deveria ser um para muitos pode se tornar muitos para muitos e multiplicar medidas. Teste unicidade com consultas de qualidade e trate violações antes da publicação. A ausência de exceção na inserção não comprova integridade. Esse cuidado é especialmente importante ao transportar hábitos de outro mecanismo que impõe determinadas restrições automaticamente.
Conversão e denominadores
TRY_CAST pode transformar conversões inválidas em nulo conforme seu suporte, permitindo separar registros problemáticos. Esses nulos precisam ser acompanhados; simplesmente substituí-los por zero pode adulterar medidas. Preserve a evidência do valor original e defina se o registro será rejeitado ou corrigido.
NULLIF compara expressões e pode transformar especificamente um denominador zero em nulo, evitando divisão por zero em uma expressão apropriada. O resultado nulo ainda precisa ter significado definido para o consumidor. Essa estratégia não autoriza trocar arbitrariamente todos os denominadores nem confundir ausência com valor numérico zero.
TRY_CAST ajuda a identificar valores que não cabem no tipo pretendido, mas o resultado nulo deve ser acompanhado. Se o texto inválido representa uma venda, ignorá-lo em uma soma pode reduzir receita sem falha aparente. NULLIF, por sua vez, permite tratar especificamente o denominador zero. O consumidor precisa saber se margem nula significa não aplicável, dado ausente ou erro. A expressão técnica só está completa quando sua saída tem um significado de negócio definido e testado.
Continue lendo de graça
O capítulo inteiro está liberado no plano gratuito
Criar conta leva menos de um minuto e não pede cartão. Você destrava o texto completo, o mapa mental, o PDF para estudar off-line e ainda resolve questões inéditas todo dia.
Leu o resumo? Agora pratique.
São 40 questões inéditas de Erros de T-SQL e transações, todas comentadas alternativa por alternativa.
Você volta para este capítulo depois de criar a conta.
Fontes consultadas
- https://learn.microsoft.com/en-us/fabric/data-warehouse/transactions
- https://learn.microsoft.com/en-us/fabric/data-warehouse/troubleshoot-query-blocking
- https://learn.microsoft.com/en-us/sql/t-sql/language-elements/nullif-transact-sql?view=sql-server-ver17
- https://learn.microsoft.com/en-ca/fabric/data-warehouse/transactions
- https://learn.microsoft.com/en-us/sql/t-sql/functions/try-cast-transact-sql?view=sql-server-ver17
- https://learn.microsoft.com/en-us/fabric/data-warehouse/guidelines-warehouse-performance
- https://learn.microsoft.com/en-us/fabric/data-warehouse/table-constraints
- https://learn.microsoft.com/fabric/data-warehouse/tsql-surface-area