terça-feira, 4 de janeiro de 2011

Auto-incremento com o novo SEQUNCE no SQL Server 2011 Denali – Parte 2

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:

Alessandro Bettio disse...

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?

Alessandro Bettio disse...
Este comentário foi removido pelo autor.
Alessandro Bettio disse...

Se possível, entre em contato através do e-mail: aabettio@gmail.com

Desde já agradeço.

Alessandro

Landry disse...

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