Há um debate no trabalho de minha esposa sobre o uso varchar(255)
de todos os varchar
campos em tabelas temporárias em procedimentos armazenados. Basicamente, um campo deseja usar 255, porque sempre funcionará mesmo que a definição seja alterada, e o outro campo deseja manter o tamanho das tabelas de origem para possíveis melhorias de desempenho.
O campo de performance está certo? Existem outras implicações? Eles estão usando o SQL Server.
sql-server
performance
datatypes
temporary-tables
Brian Nickel
fonte
fonte
MAX()
na mistura.Respostas:
Dependendo de como você está usando suas tabelas temporárias, você pode encontrar um problema de truncamento de dados.
Este exemplo é um pouco artificial, mas ilustra meu argumento. Exemplo:
A tabela temporária aceitaria com satisfação o novo valor varchar com um comprimento de 59. No entanto, sua tabela de usuários não pôde. Dependendo de como você lida com isso no seu procedimento, isso pode resultar em truncamento ou erro.
A menos que você documente e considere esses problemas, seu procedimento poderá ser executado de maneira inesperada.
Pessoalmente, não acho que haja uma resposta correta a essa pergunta 100% do tempo. Realmente depende de como você está usando essas tabelas temporárias.
Espero que isto ajude
fonte
Eu me inclinaria para o uso do comprimento real do campo.
Li recentemente que as tabelas temporárias do MySQL (suponho que o SQL Server seja semelhante) alocam memória suficiente para armazenar o comprimento máximo possível para cada
varchar
coluna ... Uma abordagem sistemática para alocar de 200% a 500% da memória necessária paravarchar
todos os campos procedimentos armazenados parece um empate desnecessário nos recursos do sistema. Se você estiver usando uma quantidade significativa de memória criando essas tabelas temporárias, poderá reivindicar desnecessariamente a memória que estava sendo usada para armazenar em cache, criando mais trabalho para o servidor em algum momento no futuro, mesmo após a conclusão dos procedimentos de armazenamento.Edit: Veja a resposta de Bill Karwin: /programming/1962310/importance-of-varchar-length-in-mysql-table
fonte