Показать сообщение отдельно
Старый 12.04.2011, 12:54   #20  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Цитата:
Сообщение от EVGL Посмотреть сообщение
Не согласен. На мой обывательский взгляд, чем меньше таблица - тем больше из нее поместится в кэш.
Для MS SQL не совсем так. Сервер стремится кэшировать наиболее часто используемые данные и далеко не обязательно это должна быть целиком вся таблица. При построении структуры БД желательно помочь ему в этом, для этого мне кажется лучше было бы:
1. Объединить даты в одно поле
2. Объединить статусы прихода и расхода и выстроить их в порядке возрастания
3. Ввести уникальный ключ для InventTrans (пeсть и в связке с InventTransId)
4. Данные по накладным (отгрузочные, отборочные, финансовые) выделить в отдельную таблицу и при обработке последующей накладной добавлять строно запись по предыдущей.
Цитата:
Сообщение от EVGL Посмотреть сообщение
, а Кроме того, в большинстве случаев в запросах к InventTrans поля InventRef и прочие не используются. В этом плане решение перебросить их в другую таблицу кажется логичным.
А как же банальная формочка просмотра проводок, если в нее попадает несколько сотен записей, то скорость работы с объединенными табличками скорее всего будет близка к скорости работы с одной, но если туда будут попадать тысячи записей, то накладные расходы сервера на объединение будут ощутимыми.