интенсивные обновления

Bilbo13
Дата: 12.11.2008 16:08:55
Здравствуйте все!
Есть таблица порядка 2млн. записей. В ней ежеминутно изменяется одно поле примерно в 1000 строках. Как лучше реализовать этот механизм чтоб максимально снизить нагрузку на базу?

Заранее большое спасибо за идеи...
Bilbo13
Дата: 12.11.2008 16:18:58
Может кто ссылочку кинет где порыть?Bilbo13,
Elic
Дата: 12.11.2008 16:20:20
Bilbo13
Дата: 12.11.2008 16:28:52
Спасибо за ссылочку... Просто update tab set col2 = xxx where col1 = :1; Грузят db на 20%...
Elic
Дата: 12.11.2008 16:35:27
Bilbo13
Просто update tab set col2 = xxx where col1 = :1; Грузят db на 20%...
Про, например, индексы слышал?
expla
Дата: 12.11.2008 16:38:59
Может вертикальную декомпозицию таблицы сделать над полем col1. Чтобы менялись не 1000 строк в большой таблице, а одна сторока в 1000 раз меньшей таблице.
Bilbo13
Дата: 12.11.2008 16:42:15
Индексы не сильно помогают... Попробовал и bitmap в т.ч. В эту таблицу кидается строка, потом какое-то время обновляется и собственно все... Все транзакции тривиальные, никаких rollback не предполагается. Может можно это обстоятельство как-то использовать?
Bilbo13
Дата: 12.11.2008 17:04:08
expla,
Про вертикальную декомпозицию где можно посмотреть?
expla
Дата: 12.11.2008 17:29:26
Bilbo13
expla,
Про вертикальную декомпозицию где можно посмотреть?


В букварях по проектированию БД. Нормализация / декомпозиция.
Типа, есть отношение (A, B, C). Выполняем его декомпозицию над B, получаем отношения (A, B) и (B, C). Удаляем из отношения (B, C) повторяющиеся строки (надеюсь, у тебя таких будет много), получаем небольшую таблицу, которую можно быстро обновлять. С первичными ключами и применимостью решения к твоей ситуации, думаю сам разберёшься.
Bilbo13
Дата: 12.11.2008 17:46:03
expla,
:) Нет, там все строки разные... В этом смысле декомпозицию сделать нельзя. Картина там приблизительно следующая: кидается строка с уникальным col1, потом где-то раз в минуту обновляется у этой строки поле col2, затем она помечается как отработанная и больше к ней не возвращаются. И таких обновлений накапливается из разных сессий порядка 1000 в минуту.