Здравствуйте, StephenVLG, Вы писали:
АН>>Вариант с избавлением от многих join'ов:
...
АН>>Запрос (критерии добавляются в табличку FieldQuery):
...
АН>>. Надо проверять...
SVL>спасибо за идею, очень красиво. минус в том, что не видно способа выполнять сравнение значений (<>) при поиске — а это часто важно
SVL>сейчас на БД в 8000 пользователей поиск менее чем по 10 полям выполняется до секунды (при работе 2-5 пользователей одновременно). Больших тормозов не замечено
я не знаю, что за база...
пример из oracle. там есть snapshot (MATERIALIZED VIEW).
смысл в том, что периодически, или по какому-то событию, создается еще одна консолидирующая таблица.
она представляет из себя совершенно ненормализованую структуру. зато работает в разы быстрее (при наличии соответствующих индексов).
ты можешь время от времени пересоздавать такую таблицу. поиск идет по ней. а вот исходные данные — в твоей структуре.
плюсы и минусы решения можешь прикинуть сам.
во