Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
распараллеливание вставки уникальных значений в таблицу
|
|||
|---|---|---|---|
|
#18+
Приветствую, господа. Есть таблица с, примерно, 100млн записей. Несколько полей, но погоду делает только одно: типа text, по которому создан уникальный индекс. PRIMARY KEY, между тем - по другому полю - integer со счетчиком. Есть функция на plpgsql, которая вызывается из моей программы. Она пытается вставить запись в эту таблицу, и, если все нормально возвращает 0, а если WHEN unique_violation THEN (срабатывает обработчик ошибки) - возвращает 1. Вопрос такой: нужно вставить, скажем, 1000 новых записей в эту таблицу. Это значит, что моя прога должна 1000 раз вызвать plpgsql-функцию. Скажит, кто знает, имеет ли смысл запускать несколько экземпляров программы, каждый из которых будет обрабатывать свою часть от 1000 записей? Ускорит ли это вставку данных? Т.е., если упростить вопрос - быстрее ли выполняется в pg одновременно несколько проверок на уникальность значения поля, чем выполнять их последовательно? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2007, 13:39 |
|
||
|
распараллеливание вставки уникальных значений в таблицу
|
|||
|---|---|---|---|
|
#18+
Параллельная вставка может сократить общее время, если есть запас мощности у серверного железа и в данных нет дублей. Но если в исходных данных много повторов - смысла не имеет. Unique-индекс блокирует до конца транзакции все параллельные сессии, которые попытаются вставить дубль. Сама проверка на уникальность параллельно быстрее не выполняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 04:40 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34770196&tid=2005075]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 353ms |

| 0 / 0 |
