Главная страница
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.48 MB
Время: 0.015 c
6-44315
NikolaB
2003-02-23 01:29
2003.04.14
Web Server and IsapiDLL (izvinite, chto vopros dlinii!)


14-44351
Карлсон
2003-03-30 14:05
2003.04.14
2k


6-44290
Ruf
2003-02-20 12:41
2003.04.14
доступ к инету


3-44068
Инна
2003-03-24 17:11
2003.04.14
модификация записей и отражение изменений на экране


3-44078
DOA_
2003-03-26 16:18
2003.04.14
О работе с компонентами DOA