У нас возникли проблемы с блокировкой таблиц в производстве. Я заметил, что создал хранимую процедуру, которая получает список заказов по номеру заказа. Номер заказа - это VARCHAR(150). На этом столбце нет индекса любого типа.
На данный момент в этом столбце много значений NULL. Однако со временем (эта таблица была запущена недавно) таблица значительно вырастет. В это время больше не будет добавляться NULL-значений.
Мой вопрос состоит из двух частей. Во-первых, будет ли здесь полезен индекс. Процесс интенсивно используется. И если да, то должен ли он быть кластеризованным или нет? Данные такие, как CP123456, DR126512.
Второй вопрос, который, вероятно, влияет на первый - будет ли полезно изменить столбец на CHAR(10), так как "кажется", что номер заказа всегда одного размера. Есть ли преимущество в скорости при размещении индекса на CHAR фиксированной длины, в отличие от VARCHAR(150)?
(Разница в размере объясняется неизвестными требованиями при создании столбца).
SQL Server 2008.