Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
94
Assunto : SQL Server
Titulo: Cuidados com tipos de dados e uso do Cast

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon


No SQL Server devemos tomar muito cuidado com os tipos de dados de cada campo da tabela. Se escolhermos um tipo de dados de tamanho excessivo os registros da tabela serão desnecessariamente maiores.

O problema não é o espaço em disco gasto mas sim a performance : Com registros maiores o SQL Server irá ler menos registros a cada leitura do disco, o que aumentará o número de leituras para ler a mesma quantidade de registros, tudo isso desnecessariamente, apenas devido a uma má definição da tabela.

Ok. Então um campo preço que contenha valores pequenos pode ser definido como smallmoney (cujo limite está na casa dos 200.000) ao invés de money (capaz de conter a divida externa americana). Assim como uma quantidade pode ser definida como tinyint ou smallint ao invés de integer.

Mas quando executarmos a instrução : Select sum(preco*quant) from vendas

Receberemos um erro caso a multiplicacao de preco por quantidade ultrapasse os limites do smallmoney.

Isso porque, sendo preço smallmoney, o SQL Server supõem ser o resultado smallmoney. Para resolver isso precisamos realizar um truque conhecido como type cast : Avisar ao sql server para tratar nessa instrução o preço como money. Veja :

select sum(cast(preco as money)* quant) from vendas

Desta forma o calculo funcionara sem dar overflow e consegue-se manter o campo fisicamente com o menor tipo de dados possivel, melhorando a performance.


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br