Varchar vs Nvarchar
Varchar é um nome abreviado para Variable Character Field. Os caracteres representam dados de comprimento indeterminado. Varchar no sentido real é um tipo de coluna de dados encontrado em sistemas de gerenciamento de banco de dados. O tamanho do campo das colunas Varchar pode variar, dependendo do banco de dados que está sendo considerado.
No Oracle 9i, o campo tem um limite máximo de 4000 caracteres. O MySQL possui um limite de dados de 65.535 para uma linha, e o Microsoft SQL Server 2005 vem com um limite de campo de 8000. Esse número pode subir mais no Microsoft SQL Server quando o Varchar (max) é usado, aumentando para 2 gigabytes. Nvarchar, por outro lado, é uma coluna que pode armazenar qualquer tamanho de dados Unicode. A página de código que Nvarchar deve aderir é uma codificação de 8 bits. O tamanho máximo para Varchar é 8000 enquanto o tamanho máximo para NVarchar é 4000. Isso significa que uma única coluna de Varchar pode ter no máximo 8000 caracteres e uma única coluna de Nvarchar pode ter no máximo 4000 caracteres. Exceder os valores da coluna torna-se um grande problema e pode até causar sérios problemas, pois as linhas não podem abranger várias páginas, com exceção do SQL Server 2005, e a limitação deve ser respeitada ou erros ou truncamento resultarão…
Uma das principais diferenças entre Varchar e Nvarchar é o uso de menos espaço no Varchar. Isso ocorre porque o Nvarchar emprega Unicode, que, devido ao incômodo de codificar os detalhes, ocupa mais espaço. Para cada caractere armazenado, o Unicode requer dois bytes de dados, e é isso que pode fazer com que o valor dos dados pareça mais alto quando comparado aos dados não Unicode usados pelo Varchar. Varchar, por outro lado, requer apenas um byte de dados para cada caractere armazenado. No entanto, o mais importante é que, embora o uso do Unicode ocupe mais espaço, ele resolve problemas decorrentes de incompatibilidades de página de código, que são difíceis de resolver manualmente.
Assim, o recurso de espaço pode ser ignorado, de preferência pelo menor tempo que leva o Unicode para corrigir as incompatibilidades resultantes. Além disso, o custo de discos e memória também se tornou bastante acessível, garantindo que o recurso de espaço possa frequentemente ser ignorado, enquanto o tempo mais longo necessário para resolver problemas decorrentes do Varchar não pode ser descartado tão facilmente.
Todas as plataformas de desenvolvimento usam sistemas operacionais modernos internamente, permitindo a execução do Unicode. Isso significa que Nvarchar é empregado com mais frequência que Varchar. As conversões de codificação são evitadas, reduzindo o tempo necessário para ler e gravar no banco de dados. Isso também reduz significativamente os erros, com a recuperação de erros de conversão que se tornam um problema simples de lidar com.
O benefício do uso do Unicode também se aplica a pessoas que usam interfaces de aplicativos ASCII, pois o banco de dados responde bem, principalmente o sistema operacional e os algoritmos de coalizão de banco de dados. Os dados Unicode evitam problemas relacionados à conversão e os dados sempre podem ser validados, se restritos a um ASCII de 7 bits, independentemente do sistema legado que deve ser mantido.
Sumário
Varchar e Nvarchar vêm com diferentes tipos de caracteres. O Varchar utiliza dados não Unicode, enquanto o Nvarchar utiliza dados Unicode.
Varchar e Nvarchar têm diferentes tipos de dados que devem ser respeitados. Varchar salva apenas dados em uma sequência de 1 byte e Nvarchar salva dados em 2 bytes para cada caractere
O comprimento máximo também varia. O comprimento de Varchar é limitado a 8000 bytes e 4000 bytes é o limite para Nvarchar.
Isso ocorre porque o tamanho do armazenamento no Varchar é mais direto, em oposição aos dados Unicode usados pelo Nvarchar.