SQL Server on Linux

image352.png
image352.png

Acabei de receber acesso aos binários do SQL Server (Preview) para Linux – projeto conhecido como Helsinki. Atualmente estão disponíveis binários para Red Hat, Ubuntu e containers Docker. A primeira impressão é que tudo funciona normalmente: Criei um banco de dados Criei uma tabela Adicionei constraints Inseri dados Fiz SELECT Consultei as DMV’s Decidi continuar…

1

Otimizando DELETE TOP 1000

No último post, comentei do desafio do DELETE de 1000 linhas, que consistia em resolver um problema bastante comum: Problema: Apagar os 1000 registros mais antigos da tabela. A fim de tornar a situação mais real, criei uma tabela e inseri 1 milhão de registros. Frequentemente, vejo que os programadores executam o seguinte SELECT para…

0

Desafio: DELETE 1000 Linhas

Esse é o primeiro desafio da Série “Another point of VIEW”, na qual abordamos o uso de Views. A situação é comum e ocorre em várias aplicações. Temos uma tabela que armazena um grande volume de dados. Em seguida, populamos a tabela com 10000 linhas: Esse tipo de tabela normalmente cresce rapidamente com muitos dados…

7

View vs Function

No artigo anterior, fiz uma breve introdução sobre Views e comentei que não há diferença de desempenho em usar Tabela, View ou CTE. Agora vamos criar uma View e uma Function para fazer a comparação. Note que a sintaxe do CREATE FUNCTION é um pouco mais extensa, pois define o tipo de dado a ser…

0

Tabelas, Views, CTE e Synonyms

View é um dos recursos mais poderosos do banco de dados relacional. Podemos usar as Views como sinônimos de tabela, facilitando o acesso aos dados. Por exemplo, vamos usar uma tabela de usuário definida com dois campos: Poderíamos simplificar a definição da tabela usando uma view: Assim, podemos acessar a tabela de usuários diretamente pela…

0

Exame 70-473: Designing and Implementing Cloud Data Platform Solutions

Semana passada fiz a prova 70-473. 70-473 Designing and Implementing Cloud Data Platform Solutions https://www.microsoft.com/pt-br/learning/exam-70-473.aspx   SQL Server Embora o título fale sobre “cloud data platform”, as perguntas foram restritas ao mundo SQL Server em diferentes cenários: IAAS: Instalações do SQL Server em máquinas virtuais – A primeira dificuldade é conhecer a nomenclatura das máquinas…

5

Transforme seu Table Scan em Index Scan

Covered index é uma técnica importante no mundo de banco de dados. Entretanto, existe um caso que não é possível usar covered index: SELECT * FROM tabela Esse comando é conhecido como SELECT ALL, pois retorna todas as colunas da tabela. Não é comum criar um Covered Index com todas as colunas da tabela, pois…

0

Usando o Index Scan (Covered Index)

Acabei de escrever sobre os conceitos do Table Scan (Aprendi SQL com Comandos Antigos), na qual ressalto a importância do Table Scan: retornar um grande número de registros de forma eficiente. Em seguida, comento sobre o Fim do Table Scan – ou melhor, não há motivos para realizar IAM Scan em um banco de dados….

3

Fim do Table Scan

Acabei de terminar uma série de artigos falando sobre Table Scan e agora vou dizer que não existe futuro para o Table Scan (IAM Scan). A importância de medir I/O e o cuidado com o Cache em memória Parte 1: SET STATISTICS IO Parte 2: DBCC DROPCLEANBUFFERS Estrutura Heap e sua fragmentação Parte 3: DBCC…

0

Download do SQL Server 2016

Semana passada foi anunciado oficialmente a disponibilidade do SQL Server 2016. Essa versão tem um sentimento histórico: Microsoft SQL Server foi posicionado pelo Gartner como líder do mercado de banco de dados relacional a frente de importantes figuras como Oracle, IBM (DB2) e SAP (Sybase). Blog: SQL Server 2016 is generally available todayhttps://blogs.technet.microsoft.com/dataplatforminsider/2016/06/01/sql-server-2016-is-generally-available-today/   O…

0

Aprendi SQL com comandos obsoletos

Foram 10 artigos escritos sobre a “Saga da otimização com comandos antigos”, na qual usei o objetivo era mostrar alguns conceitos importantes do SQL Server. Parte 1: SET STATISTICS IO Parte 2: DBCC DROPCLEANBUFFERS Parte 3: DBCC SHOWCONTIG Parte 4: DBCC PAGE Parte 5: sp_spaceused Parte 6: DBCC IND Parte 7: DBCC INDEXDEFRAG Parte 8:…

2

SET SHOWPLAN_TEXT

Esse é mais um artigo da série “Saga da otimização com comandos antigos” Parte 1: SET STATISTICS IO Parte 2: DBCC DROPCLEANBUFFERS Parte 3: DBCC SHOWCONTIG Parte 4: DBCC PAGE Parte 5: sp_spaceused Parte 6: DBCC IND Parte 7: DBCC INDEXDEFRAG Parte 8: DBCC DBREINDEX Parte 9: sp_detach_db No último artigo, falamos do impacto do…

0

sp_detach_db

Esse é mais um artigo da série “Saga da otimização com comandos antigos” Parte 1: SET STATISTICS IO Parte 2: DBCC DROPCLEANBUFFERS Parte 3: DBCC SHOWCONTIG Parte 4: DBCC PAGE Parte 5: sp_spaceused Parte 6: DBCC IND Parte 7: DBCC INDEXDEFRAG Parte 8: DBCC DBREINDEX No último artigo, comentei sobre as melhores práticas para escolha…

0

DBCC DBREINDEX

Esse é mais um artigo da série “Saga da otimização com comandos antigos” Parte 1: SET STATISTICS IO Parte 2: DBCC DROPCLEANBUFFERS Parte 3: DBCC SHOWCONTIG Parte 4: DBCC PAGE Parte 5: sp_spaceused Parte 6: DBCC IND Parte 7: DBCC INDEXDEFRAG No último artigo, comparamos o INDEX SCAN e HEAP SCAN e mostramos que o…

0

DBCC INDEXDEFRAG

Esse é mais um artigo da série “Saga da otimização com comandos antigos” Parte 1: SET STATISTICS IO Parte 2: DBCC DROPCLEANBUFFERS Parte 3: DBCC SHOWCONTIG Parte 4: DBCC PAGE Parte 5: sp_spaceused Parte 6: DBCC IND No último artigo, falei sobre a forma mais rápida de executar um scan. Nesse artigo vou falar sobre…

0

DBCC IND

Esse é mais um artigo da série “Saga da otimização com comandos antigos” Parte 1: SET STATISTICS IO Parte 2: DBCC DROPCLEANBUFFERS Parte 3: DBCC SHOWCONTIG Parte 4: DBCC PAGE Parte 5: sp_spaceused No último artigo, apresentei um problema muito comum nas estruturas HEAPS para armazenamento de dados. Agora vamos falar da equivalência: Table scan…

0

sp_spaceused

Continuando a série dos comandos históricos, vou apresentar o comando sp_spaceused. Embora esse seja um comando antigo, essa é uma das procedures que mais uso no dia a dia. Nos posts anteriores comentei sobre a importância do SET STATISTICS IO e do uso correto do DBCC DROPCLEANBUFFERS. Comentei sobre o DBCC SHOWCONTIG para visualizar a…

2

DBCC PAGE

Continuando a série dos comandos históricos, vamos falar sobre o famoso DBCC PAGE. Esse é o quarto artigo da série: já comentei sobre o SET STATISTICS IO, DBCC DROPCLEANBUFFERS e DBCC SHOWCONTIG. Vou recriar o ambiente do LOJADB: Em seguida, quero me certificar que está funcionando tudo corretamente. Antes de continuar, algumas pessoas desconfiaram da…

2

Qual recurso do SQL 2016 vai revolucionar sua vida? (Data Driven SP)

Ontem participei do evento Data Driven São Paulo apresentando a palestra: Qual recurso do SQL 2016 vai revolucionar sua vida? Qual recurso do SQL 2016 vai revolucionar sua vida de DBA? from Fabrício Catae A proposta era despertar a curiosidade do pessoal sobre as novas funcionalidades do SQL Server 2016. A reação foi ótima e…

4

DBCC SHOWCONTIG

Tudo começou no artigo sobre a vantagem de usar o SET STATISTICS IO e depois falei sobre o uso correto do DBCC DROPCLEANBUFFERS (existe uso correto?). Dessa vez vamos explorar o antigo companheiro DBCC SHOWCONTIG. Vamos começar analisando a query que demorava 1ms: Esse tempo de 1 milissegund era possível porque todas os dados estavam…

2