As 9 Regras Ninjas de Performance

Esse post resume muita coisa do que já passei. Resolvi compilar uma série de regras para abordar os problemas mais comuns de performance. Essas são as “regras ninjas” para ajudar a guiar o trabalho do dia a dia e atingir bons resultados em pouco tempo.   REGRA 1: DISK – Monitore o consumo de recursos…

2

A História do Hekaton – Parte 3

Originalmente publicado no Lab27: http://www.lab27.com.br/a-histria-do-hekaton-parte-1/     Bem vindo ao último post da série Hekaton! No primeiro post da série, disse que o Hekaton é completamente diferente do DBCC PINTABLE. No segundo post, expliquei um pouco sobre as mudanças que ocorreram no Hekaton em relação ao projeto inicial. Agora quero terminar falando sobre a integração…

3

A História do Hekaton – Parte 2

Originalmente publicado no Lab27: http://www.lab27.com.br/a-histria-do-hekaton-parte-2/   No post anterior, comentei sobre as motivações que levaram à criação do Hekaton. O passo seguinte era transformar o projeto embrionário em uma implementação comercial, ou seja, incorporá-lo à família do SQL Server. Compilação de Stored Procedures: .NET ou C/C++ Se a tradução de Stored procedure é procedimento armazenado,…

0

A História do Hekaton – Parte 1

Originalmente publicado no Lab27: http://www.lab27.com.br/a-histria-do-hekaton-parte-1/   Hekaton é uma funcionalidade que faz parte do “In-Memory Database” e está disponível a partir do SQL Server 2014. Neste post quero mostrar um lado diferente do Hekaton. Vejo muita gente falando sobre a melhoria significativa de desempenho ao manter as tabelas em memória. Entretanto, o Hekaton não é…

4

TechSummit 2016–SQL Azure DB

Esse evento foi muito especial! Subi no palco para dividir a apresentação com o Nilton Pinheiro (@nilton_pinheiro). Não tenho dúvida de que o Nilton seja um dos melhores profissionais de SQL no Brasil – senão o melhor!!! Juntos no TechSummit, apresentemos a sessão sobre SQL Azure Database para falar sobre esse serviço disponível no Azure…

0

SQL Saturday #570 – São Paulo

SQL Saturday tem crescido ao longo dos anos e, dessa vez, o SQL Saturday #570 não foi diferente – a galera da comunidade estava em peso! Porém, ao contrário das outras edições que participei como convidado, dessa vez entrei como palestrante. Arrisquei um assunto bem diferente do tradicional: segurança de dados. Comecei com um título…

0

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…

7

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