Browsed by
Author: José Diz

Geração de sequências numéricas

Geração de sequências numéricas

1. Introdução Há alguns anos me deparei com tópico em fórum da Microsoft sobre SQL Server em que o autor do tópico solicitava solução para a necessidade de gerar sequência numérica sem saltos. Ele utilizava a propriedade IDENTITY para gerar números de notas fiscais, mas estavam a ocorrer saltos na numeração. Na época me lembrei … Continue Lendo “Geração de sequências numéricas”

Separar conteúdo de texto multivalorado (string split)

Separar conteúdo de texto multivalorado (string split)

A figura ao lado te lembra alguma coisa em programação T-SQL?  🤔 Você nunca precisou de programar trecho de código T-SQL para separar o conteúdo de coluna ou parâmetro em várias partes? 1. Introdução Um caso clássico em SQL é o de separar em várias partes o conteúdo de texto multivalorado (diversos valores em uma linha/coluna, … Continue Lendo “Separar conteúdo de texto multivalorado (string split)”

Os perigos da conversão implícita (2)

Os perigos da conversão implícita (2)

A conversão implícita de tipos de dados, principalmente quando em predicados nas cláusulas FROM e WHERE, pode acarretar em execução lenta de consultas. Na primeira parte deste artigo foi tratado dos impactos na cláusula WHERE; agora, nesta continuação, acrescentamos então o item 2.3, que trata dos impactos da conversão implícita nas junções entre tabelas/exibições na … Continue Lendo “Os perigos da conversão implícita (2)”

O Plano Perfeito

O Plano Perfeito

O filme “O Plano Perfeito” traz Clive Owen como o confiante Dalton Russell, que abre a narrativa olhando diretamente para a câmera e afirmando que cometeu o roubo perfeito. Opa! pera lá!  🖐 O que Clive Owen, Denzel Washington e Jodie Foster têm a ver com SQL Server? 1. Introdução Nos fóruns de SQL Server … Continue Lendo “O Plano Perfeito”

Os perigos da conversão implícita (1)

Os perigos da conversão implícita (1)

A conversão implícita de tipos de dados, principalmente quando em predicados nas cláusulas FROM e WHERE, pode acarretar em execução lenta de consultas. No artigo “Construindo códigos T-SQL eficientes: Sargability” o assunto foi tratado de forma introdutória e agora, neste artigo, é esmiuçado em detalhes. Esta é a primeira parte do artigo e foi disponibilizada … Continue Lendo “Os perigos da conversão implícita (1)”

Funções de janela (window functions)

Funções de janela (window functions)

As funções de janela (window functions) auxiliam de forma intuitiva na resolução de uma variedade de tarefas. Neste contexto, a janela se refere a um conjunto de linhas cujo conteúdo é definido na cláusula OVER. Esta publicação contém a primeira e a segunda partes deste artigo, tratando das funções de janela de classificação e de … Continue Lendo “Funções de janela (window functions)”

Construindo códigos T-SQL eficientes: Sargability

Construindo códigos T-SQL eficientes: Sargability

Já te falaram que cláusula WHERE com vários conectores OR torna a consulta lenta? Ou ainda que com o operador LIKE também? Até onde tais afirmações possuem base técnica ou são somente achismo? Se anda não ouviu falar de código sargable, é hora de conhecer o significado deste adjetivo. E, mesmo que conheça, prepare-se para … Continue Lendo “Construindo códigos T-SQL eficientes: Sargability”

Programação modular com expressões de tabela (CTE)

Programação modular com expressões de tabela (CTE)

Quem aqui não se deparou com aquelas consultas SQL enormes, cheias de subconsultas e sem comentários, nos desafiando com “Decifra-me ou te devoro”? Consultas SQL que nem mesmo os formatadores de código SQL conseguem alinhar. É bem provável que quem as programou não conhecia a sigla mágica: CTE. “A CTE torna possível simplificar o código, … Continue Lendo “Programação modular com expressões de tabela (CTE)”

Como definir o tamanho de colunas de tamanho variável?

Como definir o tamanho de colunas de tamanho variável?

“Posso declarar todas as colunas de tamanho variável como varchar(255)?” Definir o tamanho de uma coluna do tipo string não é uma tarefa difícil. Entretanto, ocasionalmente a pergunta acima se repete. E então, faz alguma diferença declarar uma coluna como varchar(255) mesmo que o maior string a ser nela armazenado tenha 30 caracteres? 1. Introdução … Continue Lendo “Como definir o tamanho de colunas de tamanho variável?”

☆ DISTINCT e GROUP BY não fazem a mesma coisa?

☆ DISTINCT e GROUP BY não fazem a mesma coisa?

1. Introdução Em fórum de SQL Server no StackOverflow foi postada dúvida sobre a diferença entre DISTINCT e GROUP BY. O autor do tópico cita que “Ao meu entender Distinct retorna os valores diferentes, mas os valores agrupados (Group by) também ficam distintos (diferentes)”. E solicita respostas para as seguintes questões: Qual a diferença entre … Continue Lendo “☆ DISTINCT e GROUP BY não fazem a mesma coisa?”

Qual é mais rápido: “SELECT … into” ou “INSERT … SELECT”?

Qual é mais rápido: “SELECT … into” ou “INSERT … SELECT”?

Qual das duas construções abaixo você acha que é de execução mais rápida? — construção #1 INSERT into ​tabela_destino    SELECT *      from ​origem; ou — construção #2 SELECT *    into ​tabela_destino    from ​origem; Essa questão foi postada há poucos dias em um artigo de Pinal Dave e ele afirmou que … Continue Lendo “Qual é mais rápido: “SELECT … into” ou “INSERT … SELECT”?”

☆ Armadilhas na programação de trigger

☆ Armadilhas na programação de trigger

A forma como o SQL Server manipula os eventos que acionam gatilhos (trigger) pode se transformar em verdadeira armadilha para quem programa o procedimento de gatilho e desconhece os detalhes específicos do SQL Server, pois enquanto vários gerenciadores de banco de dados acionam o gatilho uma vez para cada linha (for each row), no SQL … Continue Lendo “☆ Armadilhas na programação de trigger”

☆ Importação de dados em massa

☆ Importação de dados em massa

A utilização de ferramentas de BI pelas organizações tem esbarrado na necessidade de coletar dados de diversas fontes e em formatos variados. Mesmo nas organizações em que está implantado o uso de software ERP ainda há casos de relatórios sendo manipulados em planilhas Excel, em banco de dados Access ou ainda em ambientes em que … Continue Lendo “☆ Importação de dados em massa”