У меня есть такая таблица:
create table SomeTable (
tableKey int identity(1,1) not null
, foreignKey int not null
, longDesc nvarchar(max) not null
, shortName varchar(100) null
)
Мне нужно использовать shortName в предложении where:
select
tableKey
from
SomeTable
where
foreignKey = @foreignKey
and shortName = @shortName
и это должно быть быстро - в этой таблице миллионы строк. Могу ли я переместить его выше столбца longDesc и увидеть увеличение скорости? Я предполагаю, что база данных может просто перейти к правильному байтовому смещению, если столбцы имеют постоянный размер. Прыжок через столбец varchar должен повлечь за собой некоторое снижение производительности, да?
В качестве альтернативы, что если я сделал longDesc nchar (3784)? (Что должно заставить каждую строку заполнять страницу размером 8 КБ) Это увеличит скорость?
Я вижу один из ответов здесь намекает на то, что порядок имеет значение с точки зрения используемого пространства, но я не уверен, как это влияет на производительность.