Форум: "Базы";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];
ВнизКак уменьшить время при заполнении таблиц? Найти похожие ветки
← →
Andrey007 (2003-03-24 16:57) [0]В хранимой процедуре (Oracle 8.1) происходит заполнение таблиц БД. Когда заполняемые таблицы пусты, заполнение происходит довольно быстро - 1589 записей за 7 мин (в контрольную таблицу). Но дальше время, необходимое для заполнения примерно такого же количества записей растёт очень сильно:
Записей в таблице до заполнения | Новых записей | Время заполнения
------------------------------------------------------------------
0 | 1589 | 7 мин.
1589 | 1559 | 13 мин.
3148 | 1628 | 18 мин.
4776 | 1534 | 28 мин.
6310 | 1736 | 39 мин.
------------------------------------------------------------------
Естественно, заполняется не одна таблица, а куча связанных, просто взята главная таблица.
Что можно сделать?
← →
Desdechado (2003-03-24 20:40) [1]видимо, идет протоколирование транзакции. если записи между собой не связаны, попробуй коммитить через например 1000 записей
← →
petr_v_a (2003-03-24 22:04) [2]Копай в сторону pctused и pctfree
> Desdechado © коммитить через 1000 записей, конечно, правильно, только не в тему вопроса - insert`ится-то примерно одинаково каждый раз, а время почти в разы отличается. И что это за "протоколирование транзакции", которое "идет"? :)
← →
Sergey13 (2003-03-25 08:50) [3]2Andrey007 (24.03.03 16:57)
>происходит довольно быстро - 1589 записей за 7 мин
Я бы повесился от такой "быстроты" - 227 записей в минуту!!! 8-)
Если заливается сразу большими кусками то можно попробовать перед заливкой поотключать констрейнты, а после включить их. Так же ускорит вставку убийство индексов, с последующим их воссозданием.
Но что то мне подсказывает, что не в этом дело у тебя. 1500 записей для Оракла вставить - раз плюнуть (если там не БЛОБы конечно по несколько мег). Тут надо более конкретно смотреть что тормозит. Может, например, у тебя логи маленькие и/или их мало и не успевают переключаться/архивироваться.
ЗЫ: не плохо бы глянуть структуру таблицы и текст процедуры. А так же характеристики железа, где это крутится.
← →
passm (2003-03-25 09:17) [4]В Oracle есть понятие "статистика на таблицу"?
Типа RUNSTATS ON TABLE <TABLENAME> AND INDEXES ALL.
Возможно, некоторые таблицы сильно фрагментированы...
Для точного определения причины мало данных.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c