Цитата:
Сообщение от
EVGL
Не согласен. На мой обывательский взгляд, чем меньше таблица - тем больше из нее поместится в кэш.
Для MS SQL не совсем так. Сервер стремится кэшировать наиболее часто используемые данные и далеко не обязательно это должна быть целиком вся таблица. При построении структуры БД желательно помочь ему в этом, для этого мне кажется лучше было бы:
1. Объединить даты в одно поле
2. Объединить статусы прихода и расхода и выстроить их в порядке возрастания
3. Ввести уникальный ключ для InventTrans (пeсть и в связке с InventTransId)
4. Данные по накладным (отгрузочные, отборочные, финансовые) выделить в отдельную таблицу и при обработке последующей накладной добавлять строно запись по предыдущей.
Цитата:
Сообщение от
EVGL
, а Кроме того, в большинстве случаев в запросах к InventTrans поля InventRef и прочие не используются. В этом плане решение перебросить их в другую таблицу кажется логичным.
А как же банальная формочка просмотра проводок, если в нее попадает несколько сотен записей, то скорость работы с объединенными табличками скорее всего будет близка к скорости работы с одной, но если туда будут попадать тысячи записей, то накладные расходы сервера на объединение будут ощутимыми.