Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.14;
Скачать: CL | DM;

Вниз

Как уменьшить время при заполнении таблиц?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
1-44248
Num Lock
2003-04-02 10:57
2003.04.14
Оптимизатор убирает нужную строчку?


1-44103
denis24
2003-04-02 19:07
2003.04.14
while not eof(1) do....


3-44029
Андрю-ХА!
2003-03-25 18:39
2003.04.14
DBGrid + Scroll


1-44172
Alex-21
2003-03-24 19:41
2003.04.14
TRiсhedit & OnKeyPress


3-43988
AlexanderSK
2003-03-24 17:37
2003.04.14
Динамическое создание полей