Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMilena Deus Alterado mais de 9 anos atrás
1
Microsoft SQL Server 2008 SPARSE
2
Para que serve? –Otimiza o espaço de armazenamento de colunas com valores NULL
3
Prós Diminui o tamanho do banco de dados
4
Contra Recurso disponível apenas no SQL Server 2008 A coluna não pode ter grande quantidade de valores NOT NULL
5
Como o SPARSE consegue ter menor tamanho? Quando um valor NULL é armazenado em uma coluna SPARSE, nenhum armazenamento é consumido. Contudo, os valores não NULLexigem 4 bytes de espaço de armazenamento, além do espaço normal consumido pelo tipo de dados.
6
Ambiente de teste Será criado 2 tabelas com a mesma estrutura, uma irá utilizar o SPARSE e a outra não CREATE TABLE [dbo].[Cliente_com_SPARSE] ( [IdCliente] int IDENTITY PRIMARY KEY, [Nome] varchar(50) NOT NULL, [SobreNome] varchar(50) NOT NULL, [Sexo] bit SPARSE NULL, [Telefone] varchar(15) SPARSE NULL, [Valor] money SPARSE NULL, [Comentário] varchar(1000) SPARSE NULL ) CREATE TABLE [dbo].[Cliente_sem_SPARSE] ( [IdCliente] int IDENTITY PRIMARY KEY, [Nome] varchar(50) NOT NULL, [SobreNome] varchar(50) NOT NULL, [Sexo] bit NULL, [Telefone] varchar(15) NULL, [Valor] money NULL, [Comentário] varchar(1000) NULL )
7
Ambiente de teste Insere a mesma quantidade de dados nas 2 tabelas INSERT INTO Cliente_com_SPARSE(Nome,SobreNome) VALUES('Nome','Sobrenome') GO 105000 INSERT INTO Cliente_sem_SPARSE(Nome,SobreNome) VALUES('Nome','Sobrenome') GO 105000
8
Ambiente de teste Insere 105.000 registros iguais nas 2 tabelas INSERT INTO Cliente_com_SPARSE(Nome,SobreNome) VALUES('Nome','Sobrenome') GO 105000 INSERT INTO Cliente_sem_SPARSE(Nome,SobreNome) VALUES('Nome','Sobrenome') GO 105000
9
Ambiente de teste O resultado para análise pode ser obtido com a stored procedure sp_spaceused Tabela com SPARSE exec sp_spaceused Cliente_com_SPARSE; Tabela sem SPARSE exec sp_spaceused Cliente_sem_SPARSE; Resultado obtido: Usando a coluna Data como parâmetro é possível afirmar que: SPARSE ocupou menos espaço de armazenamento.
10
Ambiente de teste E se inserir mais 105.000 registros, agora passando dados não nulos para as duas tabelas. O resultado obtido foi o seguinte: Comando executado: INSERT INTO Cliente_com_SPARSE(Nome,SobreNome,Sexo,Telefone, Valor,Comentário) values('Nome','Sobrenome',1,'(xx) xxxx-xxxx ',15000,'Comentário: nenhum') GO 105000 INSERT INTO Cliente_sem_SPARSE(Nome,SobreNome,Sexo,Telefone, Valor,Comentário) values('Nome','Sobrenome',1,'(xx) xxxx-xxxx ',15000,'Comentário: nenhum') GO 105000 Resultado obtido O SPARSE não é mais recomendado pois ocupou mais espaço de armazenamento.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.