Как правило, чем меньше места, тем лучше, поскольку чем больше строк может уместиться на одной странице ввода-вывода 8k на диске (или в памяти), тем меньше операций ввода-вывода потребуется для поиска и / или извлечения данных ... Это Это особенно важно для столбцов, используемых в индексах. Однако, если ваша машина, например, является 32-битной машиной и работает под управлением 32-битной ОС, то наименьший фрагмент памяти, к которому можно обращаться независимо, составляет 32 бита, поэтому, если это единственный столбец в схеме таблицы, который меньше чем 32 бита, то это не имеет значения, потому что каждая полная строка данных должна начинаться и заканчиваться на 32-битной границе, поэтому каждая строка должна быть кратна 32-битной ширине.
То есть, если ваш стол был
MyTable (ColA tinyint, ColB Int, ColC DateTime)
Тогда каждая строка будет занимать 16 байтов (128 бит), а 24 бита будут потрачены впустую.
С другой стороны, если у вас есть 4 столбца, которые могут быть tinyInts, то во всех случаях используйте их в качестве SQL-сервера, который поместит четыре из них в одно 32-разрядное хранилище на диске (независимо от того, в каком порядке вы их объявляете).
Те же принципы применимы к 64-битному SQL Server, работающему на 64-битной ОС / CPUbB