Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Реорганизация связи многие-ко-многим / 5 сообщений из 5, страница 1 из 1
27.06.2013, 18:00
    #38313161
mish1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реорганизация связи многие-ко-многим
В БД 3 таблицы: 2 сущности и связь многие-ко-многим.
В таблице связей - 50 млн. строк и их количество не спеша растет (условное ограничение сверху в 500 млн.)
При том количестве, что есть сейчас, начинают тормозить запросы выборки (в запросах приходится 2 раза join'ить пусть и ограниченную, но объемную таблицу связей). Требуется оптимизировать базу.

Структура данных такова, что привязки от одной таблицы сущностей к другой типизированы, и каждого типа может быть одна связь. Число типов привязок порядка 1000, но в среднем 50. Связь многие-ко-многим хорошо хранит достаточно разряженные данные и более проста, но работала при меньшем количестве данных.

Размышляю над тремя подходами оптимизации (которые можно комбинировать):
1. Разбить таблицу связей на несколько таблиц, выделив в каждую свой блок связей.
2. Добавить в одну таблицу сущностей много-много колонок (для каждого типа связи), и ставить ссылку напрямую.
3. Формировать по мере заведения данных дополнительные таблицы для отчетов (набор полей заранее известен). В случае изменения набора данных (которое будет предположительно не частым) их придется пересоздавать.

Объем работы не существенен. Важно, чтобы решение надолго обеспечило хорошую производительность.

Кто сталкивался с подобной задачей, какой подход более серьезный?

ps. БД Oracle 10g, Standard Edition
...
Рейтинг: 0 / 0
27.06.2013, 18:12
    #38313180
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реорганизация связи многие-ко-многим
Индексы на таблице создавать не пробовали?
...
Рейтинг: 0 / 0
27.06.2013, 18:19
    #38313189
mish1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реорганизация связи многие-ко-многим
Все индексы есть. Среднее время выполнения запросов на локальной машине 1-5 минут. Требуется быстрее. Какой будет сервер неизвестно, возможно слабый.
...
Рейтинг: 0 / 0
27.06.2013, 19:00
    #38313238
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реорганизация связи многие-ко-многим
mish1 Все индексы естьНу так проверьте как они используются. Постройте идеальный план, посмотрите реальный план, посчитайте количество логических чтений. Хрустальный шар подсказывает, что вы не использовали весь потенциал лобового решения. Если один способ соединения используется много чаще чем другой, то попробуйте превратить таблицу в IOT.
...
Рейтинг: 0 / 0
28.06.2013, 00:59
    #38313454
ssas12345
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реорганизация связи многие-ко-многим
проанализировать индексы, секционирование, материализов. вью, параллельность и т.д.
да дофига возможностей для маневра
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Реорганизация связи многие-ко-многим / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]