Я предполагаю, что под «первичным ключом» вы ссылаетесь на кластеризованный индекс в таблице, поскольку по умолчанию они одинаковы в SQL Server.
Размер кластеризованного индекса важен,потому что все другие индексы будут использовать кластерный индекс для ссылки на отдельные строки в таблице.Следовательно, большой кластеризованный индекс приведет к тому, что все остальные индексы будут большими.Большие индексы могут ухудшить производительность, поскольку на каждой странице меньше строк и больше страниц заменяются в рабочем наборе.
Поэтому, если вам предоставляется выбор, следует использовать столбец меньшего размера, а не большего размера илинабор столбцов для первичного ключа.
В чем разница между различными типами строковых данных?
nvarchar
может содержать строки различной ширины.nchar
содержит строки постоянной предварительно определенной ширины.(Существуют также типы данных varchar
и char
, которые включены для обратной совместимости, но их следует избегать, поскольку они требуют преобразования данных в устаревшие кодировки символов и обратно при каждой записи или чтении.)
Я настоятельно рекомендую прочитать документацию по SQL Server о типах данных для ответов на другие ваши вопросы.