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…

4

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

DBCC DROPCLEANBUFFERS

No artigo anterior, comentei sobre a vantagem de usar o SET STATISTICS IO como ferramenta de análise de performance. Terminei o artigo o mistério: por que o número de read-ahead e logical reads não bate? O resultado esperado deveria ser:   Limpando o Buffer Bool O comando DBCC DROPCLEANBUFFERS remove as páginas do banco de…

2

SET STATISTICS IO

Há 20 anos quando comecei a estudar banco de dados, imaginava que o SQL era uma caixa-preta. Bastava inserir os dados e não precisaria me preocupar mais. Eu era um desenvolvedor sem conhecimento de banco de dados. Para relembrar esse cenário, vou criar um banco de dados chamado LOJADB usando um pendrive (meu storage de…

0

Checklist: Performance do Servidor (SQL)

Podemos criar um breve checklist sobre como validar a infraestrutura de um servidor SQL usando o Performance Monitor. Artigo complementar: Checklist: Performance do Servidor (Windows) Desafio: Analisando Servidor com Perfmon O primeiro passo na análise do SQL Server no Performance Monitor é criar um baseline inicial para caracterizar a carga. Depois, complementamos com informações sobre…

0