Diferenças entre Varchar e Nvarchar

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.