
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.06.2013, 18:00
|
|||
|---|---|---|---|
|
|||
Реорганизация связи многие-ко-многим |
|||
|
#18+
В БД 3 таблицы: 2 сущности и связь многие-ко-многим. В таблице связей - 50 млн. строк и их количество не спеша растет (условное ограничение сверху в 500 млн.) При том количестве, что есть сейчас, начинают тормозить запросы выборки (в запросах приходится 2 раза join'ить пусть и ограниченную, но объемную таблицу связей). Требуется оптимизировать базу. Структура данных такова, что привязки от одной таблицы сущностей к другой типизированы, и каждого типа может быть одна связь. Число типов привязок порядка 1000, но в среднем 50. Связь многие-ко-многим хорошо хранит достаточно разряженные данные и более проста, но работала при меньшем количестве данных. Размышляю над тремя подходами оптимизации (которые можно комбинировать): 1. Разбить таблицу связей на несколько таблиц, выделив в каждую свой блок связей. 2. Добавить в одну таблицу сущностей много-много колонок (для каждого типа связи), и ставить ссылку напрямую. 3. Формировать по мере заведения данных дополнительные таблицы для отчетов (набор полей заранее известен). В случае изменения набора данных (которое будет предположительно не частым) их придется пересоздавать. Объем работы не существенен. Важно, чтобы решение надолго обеспечило хорошую производительность. Кто сталкивался с подобной задачей, какой подход более серьезный? ps. БД Oracle 10g, Standard Edition ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2013, 18:12
|
|||
|---|---|---|---|
|
|||
Реорганизация связи многие-ко-многим |
|||
|
#18+
Индексы на таблице создавать не пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2013, 18:19
|
|||
|---|---|---|---|
|
|||
Реорганизация связи многие-ко-многим |
|||
|
#18+
Все индексы есть. Среднее время выполнения запросов на локальной машине 1-5 минут. Требуется быстрее. Какой будет сервер неизвестно, возможно слабый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2013, 19:00
|
|||
|---|---|---|---|
Реорганизация связи многие-ко-многим |
|||
|
#18+
mish1 Все индексы естьНу так проверьте как они используются. Постройте идеальный план, посмотрите реальный план, посчитайте количество логических чтений. Хрустальный шар подсказывает, что вы не использовали весь потенциал лобового решения. Если один способ соединения используется много чаще чем другой, то попробуйте превратить таблицу в IOT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=32&tablet=1&tid=1541192]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 477ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...