26.03.2008, 19:21
|
#7
|
Участник
Регистрация: 28.11.2005
Адрес: Москва
|
Цитата:
Сообщение от mazzy
Угу. И все с индексами. Если я правильно понимаю, то одна из главных задач, которая решалась при созданиии InventDim - это избавиться от монстроидальных составных индексов на таблицах проводок/строк журналов/строк заказов/итогов.
Вместо монстроидальных индексов получили монстроидальные планы запросов, когда join'ятся несколько таблиц, в каждой из которых - миллионы записей, из-за чего в конечном итоге возникает то тут, то там денормализация данных: рядом с inventDimId в транзакционных таблицах селится inventLocationId или другие поля из InventDim. Кроме того, если на каждой таблице проводок/строк журналов/строк заказов будут свои индексы, ими будет проще управлять, даже если они будут на sys-слое. Нужно ускорить выборку по какой-то таблице в каком-то разрезе - привинтил индекс, не нужно - отключил его, и пусть болтается в AOT'е. А так выходит, что одна таблица InventDim, пухнущая не по дням, а по часам, обрастает кучей индексов на все случаи жизни...
|
|
За это сообщение автора поблагодарили: Logger (4). |