Объединение в не-PK-поле, определяет ли длина типа данных varchar скорость запроса? SQL Server 2008

Мне дали рагтагский ассортимент данных для анализа и попадания в затруднительное положение. У меня есть таблица из 2 миллионов строк с уникальным идентификатором типа varchar(50) . Этот идентификатор уникален для идентификатора personID . Пока я не выясню, как мне нужно нормализовать этот мусор, у меня есть еще один вопрос, который может мне помочь прямо сейчас: если я, например, сменил тип данных на varchar(25) , это поможет запросам быстрее работать, когда они будут объединены на не-ПК-поле? Все символы в строке являются целыми числами, но попытка их преобразования в int вызовет переполнение. Или я мог бы каким-то образом индексировать столбец, чтобы заставить некоторые из запросов работать быстрее?

EDIT: personID будет внешним ключом к другой таблице с демографической информацией о человеке.

Технически длина varchar указывает максимальную длину.

Фактическая длина переменной (таким образом, имя), поэтому более низкое максимальное значение не изменит оценку, потому что она будет сделана на фактической строке.

Чтобы получить больше информации :

Проверьте эту статью MSDN и этот поток переполнения стека

Varchar(50) в varchar(25) , несомненно, уменьшит размер записи в этой таблице, тем самым уменьшив количество страниц базы данных, содержащих эту таблицу, улучшив производительность запросов (может быть в предельной степени), но такой ALTER Задание TABLE может занять много времени.

В качестве альтернативы, если вы определяете индекс в столбцах соединения, и если ваш список поиска невелик, вы можете включить эти столбцы также в определение индекса ( индекс Covering ), что также значительно снизит время выполнения запроса.

  • Как добавление некластеризованного индекса в таблицу приводит к операции поиска индекса?
  • Индексы с включенными столбцами или составными индексами
  • SQL Server: оптимизация производительности кластеризованной индексации и ожидаемой индексации
  • Лучшая практика индексации в таблице, содержащей большой объем данных
  • Используя как GUID, так и автоинкрементное целое число
  • как выглядит индекс B-дерева более чем на 1 столбец?
  • несогласованный поиск ключевых слов SQL Server
  • Фрагментация индекса базы данных: последовательный GUID, сохраненный, поскольку String работает нормально, но не сохраняется как GUID
  • коэффициент заполнения SQL Server 2008
  • Лучший способ индексирования таблицы SQL, чтобы найти наилучшую совпадающую строку
  • SQL Server: для 3 столбцов разница между «одним индексом на столбец» / «одним индексом для всех»
  • Interesting Posts

    Выберите все атрибуты XML в SQL

    Как определить имя объекта SQL Server из идентификатора объекта и идентификатора базы данных?

    SQL Вычитайте ровно год

    C # – восстановление базы данных SQL Server с помощью Inline SQL

    Ошибка UPDATE: «Текст типа данных аргумента недействителен для аргумента 1 REPLACE»

    SSRS округляет до целых чисел, но включает 2 десятичных знака

    SQL Server 2008 – запускается ли триггер с теми же правами, что и имя пользователя / пользователя?

    В чем разница между выбором из двух таблиц и использованием внутреннего соединения в MSSQL?

    Как преобразовать xml в таблицу или таблицу html в sqlserver

    План выполнения SQL Server Фактический ряд строк слишком большой для простого выбора

    Объединение нескольких строк в один столбец с использованием возвратных строк каретки

    Как вы выбираете каждый элемент GROUP BY как отдельный столбец?

    Как вы проверяете, установлено ли IDENTITY_INSERT в ON или OFF на SQL Server?

    Запрос таблицы SQL с разными значениями в одном столбце с одинаковым идентификатором

    Func <t, bool> vs Эффективность ручного выражения в C # лямбда

    Давайте будем гением компьютера.