Este artigo foi escrito utilizando o CTP de Novembro/2010 do SQL Server 2011 Denali.
No último post mostrei o SEQUENCE, um novo recurso para auto-incremento no SQL Server code named “Denali” (Auto-incremento com o novo SEQUENCE no SQL Server 2011 Denali – Parte 1). Neste post veremos uma comparação de desempenho entre IDENTITY e SEQUENCE.
Utilizei o script abaixo para comparar o desempenho:
USE master
go
CREATE DATABASE dbTeste
go
ALTER DATABASE dbTeste set recovery simple
go
use dbTeste
go
-- DROP TABLE dbo.tbIdentityCREATE TABLE dbo.tbIdentity (
PK int not null identity(1,1) primary key,
Nome varchar(50) not null)
go
-- DROP SEQUENCE ContadorCREATE SEQUENCE Contador AS int
MINVALUE 1 NO MAXVALUE START WITH 1;
go
-- DROP TABLE dbo.tbSequenceCREATE TABLE dbo.tbSequence (
PK int not null DEFAULT NEXT VALUE FOR Contador primary key,
Nome varchar(50) not null)
go
-- Inclui 1 milhão de linhas na tabela com IDENTITYDBCC DROPCLEANBUFFERS
go
declare @Nome varchar(50), @i int = 1
while @i <= 1000000 BEGIN set @Nome = 'Nome ' + LTRIM(str(@i)) INSERT dbo.tbIdentity (Nome) values (@Nome) set @i = @i + 1 END go -- Inclui 1 milhão de linhas na tabela com SEQUENCEDBCC DROPCLEANBUFFERS
go
declare @Nome varchar(50), @i int = 1
while @i <= 1000000 BEGIN set @Nome = 'Nome ' + LTRIM(str(@i)) INSERT dbo.tbSequence (Nome) values (@Nome) set @i = @i + 1 END go
Para garantir uma comparação sem interferência do cachê, utilizei o comando DBCC DROPCLEANBUFFERS entre as execuções, pois esta instrução limpa o cache do servidor. Veja o resultado no gráfico abaixo:
Em todos os testes que fiz encontrei uma pequena diferença de desempenho na inclusão de um grande volume de linhas, na inclusão de poucas linhas não observei diferença no desempenho.
Até o próximo post,
LandrySaudações tricolores: Fluzão Tri-Campeão Brasileiro!
4 comentários:
Landry,
Gostaria de saber se você possui algum material que identifique os principais cuidados que é preciso ter na migração do SQL 7.0 para o 2005 (essa é uma meta que temos na empresa onde trabalho). E como temos muitos sistemas, seria bom termos um "check list" para minimizarmos os efeitos da migração. Por exemplo, o que deixaria de funcionar ou funcionaria de forma diferente entre uma versão e outra. Seria algo do tipo...
É possível? Você teria esse material?
Se possível, entre em contato através do e-mail: aabettio@gmail.com
Desde já agradeço.
Alessandro
Olá Alessandro,
Tentei enviar um email para aabettio@gmail.com e retornou duas vezes... segue resposta:
O primeiro passo para migrar do SQL 7 para o 2005 é utilizar o programa Upgrade Advisor, gratuito do site da Microsoft. Este programa retorna um relatório de todos os problemas na migração do sqL 7 para o 2005.
Cuidado baixe o Upgrade Advisor do SQL 2005!
Abs,
Landry
Postar um comentário