SQL 2011 – Sequences

Outra grande novidade do SQL Server 2011 são os objetos “sequence” (Sequencia), ja existem outros SGDBs onde este objeto ja é implementado a algumas versões, porem só nesta nova versão o mesmo foi introduzido ao SQL Server.

É comum ver em algumas modelagens de banco de dados os seguintes relacionamentos:

Até o SQL Server 2008, iste tipo de modelagem só era possivel de 3 maneiras:

  • Alterando-se as chaves primarias das tabelas Cliente e Funcionario para uma chave primaria composta.

Problema: Voce tera um campo a mais de PK em sua tabela, maior ocupação de espaço em disco, leitura e entendimento um pouco complicado.

  • Utilizando do datatype UNIQUEIDENTIFIER e a função NEWID().

Problema: O UNIQUEIDENTIFIER ira gerar um valor parecido com este: 534A9F7D-6CB7-44A2-9EA5-F6E08795D53E.

  • Utilizando por exemplo PK IDENTITY(1,2) (Numeros impares) para uma tabela e PK IDENTITY (2,2) (Numeros pares) para a outra tabela.

Problema: Dados confusos, principalmente se por algum motivo voce tiver que remover algum dado, ou alterar.

Pode haver lacunas, por exemplo, se voce inserir 3 linhas em uma tabela, e apenas 1 na outra, voce tera 2 lacunas em PK na tabela que recebeu menos dados.

 

Com o novo objeto sequence, este tipo de modelagem se torna mais facil tanto em sua implementação quanto em seu gerenciamento. Este objeto é criado pela seguinte sintaxe:

CREATE SEQUENCE Schema.SequenceName
AS INT
MINVALUE 0,
NO MAXVALUE,
START WITH 1,
INCREMENT BY 1

Considerações:

  • O nivel de permissionamento em relação aos objetos sequence continua igual em relação aos outros objetos, podendo ser diretamente ou por schema;
  • Por mais que voce possa definir um valor maximo e minimo, os limites de cada datatype na definição serão respeitados, por exemplo, na sequence criada acima, o range de valores possiveis é:-2^31 (-2,147,483,648) a 2^31-1 (2,147,483,647), que representa o menor e maior valor possivel para um dado INT respectivamente.

Voltando ao nosso modelo relacional, com o uso de sequence, o insert nas tabelas de Cliente e Funcionario seriam:

INSERT INTO Cliente VALUES (NEXT VALUE FOR Schema.SequenceName, 'Fabrizzio')
INSERT INTO Funcionario VALUES (NEXT VALUE FOR Schema.SequenceName, 'Caputo')

Vantagens da utilização de sequences:

  • Maior facilidade de implementação;
  • Não havera lacunas (Caso não haja erros ou deleções);
  • Possibilidade de gerenciamento do objeto sequence atraves do comando ALTER SEQUENCE;
  • Maior controle dos seus dados;
  • Facil manutenção;
  • Possibilidade de reserva de ranges;
  • Mais rapido que o IDENTITY.

Desvantagens:

  • Não trabalha por transação, ou seja:

CREATE dbo.SequenciaTeste
AS INT
START WITH 1,
INCREMENT BY 1
 
BEGIN TRAN
SELECT NEXT VALUE FOR dbo.SequenciaTeste
ROLLBACK TRAN
SELECT NEXT VALUE FOR dbo.SequenciaTeste

Resultado: 1 e 2, Ou seja, não foi feito o Rollback do valor da sequence. Portanto no caso de erro ou rollback da transação, voce perdeu este valor da sequencia, sera necessario insert manual do mesmo na tabela.

Posts relacionados:

  1. SQL 2011 Denali – HADRON

Postado em Sem classificação por Especialista DBA em quarta-feira 22 junho 2011 às 17:53

Gestão de Valor gera 71% menos desvios em orçamento de TI

A ASUG, Grupo de Usuários SAP, conduziu um estudo para determinar quais são as estratégias para garantir maior sucesso durante a implantação de soluções em TI.

  (mais…)

Posts relacionados:

  1. Empresas aumentam orçamento para ‘TI verde’
  2. Claro dedica 40% do orçamento de TI à consolidação do data center
  3. Gestores de tecnologia têm dificuldades de mostrar valor ao negócio, diz consultora
  4. O valor da transparência
  5. Data centers: gestão tende a ficar mais complexa

Postado em Mercado por InfoBlog em quarta-feira 22 junho 2011 às 15:16

KASPERSKY ANTIVÍRUS CORPORATIVO

 

Cada nível da rede de computadores de sua empresa é protegido das explorações mais perigosas da Internet com as soluções empresariais da Kaspersky Lab: estações de trabalho, servidores de arquivos, servidores de email e gateways. Além da tradicional verificação antimalware, os produtos Kaspersky incluem o monitoramento ativo de todo o tráfego de rede recebido e transmitido pelos computadores protegidos. Isso inclui emails e o tráfego da Web, os vetores mais comuns de ataques de malware. (mais…)

Posts relacionados:

  1. Kaspersky Lab anuncia o lançamento do Kaspersky Anti-Virus para Mac
  2. A nova tecnologia de antivírus da Kaspersky
  3. Kaspersky para File Servers
  4. Kaspersky Endpoint Security 8 – Novidades!!!
  5. O que é o Kaspersky Security for Workstations?

Postado em Antivírus por InfoBlog em segunda-feira 20 junho 2011 às 13:34

SQL 2011 Denali – HADRON

Com a chegada de cada nova versão do SQL Server, novas tecnologias são introduzidas ou ha melhorias nas ja existentes. Quando o SQL Server 2005 foi lançado, uma nova solução de alta disponibilidade denominada Mirror foi um dos grandes diferenciais em relação sua versão anterior (SQL Server 2000). (mais…)

Posts relacionados:

  1. Você está em dia com as atualizações dos seu servidores Microsoft SQL Server?
  2. Disponível e-book: Introducing Microsoft SQL Server 2008
  3. SQL 2011 – Sequences
  4. Backup SQL Server
  5. Como se tornar um DBA excepcional – How to Become an Exceptional DBA (Second Edition)

Postado em Alta disponibilidade,Banco de Dados,Microsoft,SQL Server por Especialista DBA em sexta-feira 17 junho 2011 às 11:32