Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Índice SQL - Diferença entre char e int


As colunas Integer/Identity são frequentemente usadas para chaves primárias em tabelas de banco de dados por vários motivos. As colunas de chave primária devem ser exclusivas, não devem ser atualizáveis ​​e realmente devem ser sem sentido. Isso torna uma coluna de identidade uma boa escolha porque o servidor obterá o próximo valor para você, eles devem ser exclusivos e os números inteiros são relativamente pequenos e utilizáveis ​​(comparados a um GUID).

Alguns arquitetos de banco de dados argumentarão que outros tipos de dados devem ser usados ​​para valores de chave primária e os critérios "sem sentido" e "não atualizáveis" podem ser argumentados de forma convincente em ambos os lados. Independentemente disso, os campos de inteiro/identidade são bastante convenientes e muitos designers de banco de dados acham que criam valores de chave adequados para integridade referencial.
  1. A melhor escolha para a chave primária são os tipos de dados inteiros, pois os valores inteiros são processados ​​mais rapidamente do que os valores dos tipos de dados de caractere. Um tipo de dados de caractere (como chave primária) precisa ser convertido em valores equivalentes ASCII antes do processamento.
  2. Buscar o registro com base na chave primária será mais rápido no caso de números inteiros como chaves primárias, pois isso significa que mais registros de índice estarão presentes em uma única página. Assim, o tempo total de busca diminui. Além disso, as junções serão mais rápidas. Mas isso será aplicável caso sua consulta use busca de índice clusterizado e não varredura e se apenas uma tabela for usada. No caso de varredura, não ter coluna adicional significará mais linhas em uma página de dados.

Espero que isso ajude você!