Отговорът е да, има значение и може да има голямо значение, но обикновено не много.
Всички I/O се извършват на ниво страница (обикновено 2K или 4K в зависимост от вашата ОС). Данните в колоните за редове се съхраняват една до друга, освен когато страницата се запълни, в който случай данните се записват на другата (обикновено следващата) страница.
Колкото по-голямо е пространството за данни на диска, необходимо за колони между (въз основа на дефиницията на таблицата) колоните, които изберете, толкова по-голям е шансът данните за избраните колони (понякога) да бъдат на различни страници. Да бъдеш на друга страница може да доведе до допълнителна I/O операция (ако няма избрани други редове на другата страница). В най-лошия случай всяка избрана от вас колона може да е на различна страница.
Ето един пример:
create table bad_layout (
num1 int,
large1 varchar(4000),
num2 int,
large2 varchar(4000),
num3 int,
large3 varchar(4000)
);
create table better_layout (
num1 int,
num2 int,
num3 int,
large1 varchar(4000),
large2 varchar(4000),
large3 varchar(4000)
);
Сравняване:изберете num1, num2, num3 от bad_layout; изберете num1, num2, num3 от по-добро_оформление;
Тъй като за bad_layout всяка колона num по същество ще бъде на различна страница, всеки ред ще изисква 3 I/O операции. Обратно, за better_layout броят колони обикновено ще бъдат на една и съща страница.
Изпълнението на заявката bad_layout вероятно ще отнеме около 3 пъти повече време.
Доброто оформление на таблицата може да има голяма разлика в производителността на заявките. Трябва да се опитате да поддържате колоните, които обикновено се избират заедно, възможно най-близо една до друга в оформлението на таблицата.