Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.009 c
1-44224
X-Man
2003-03-31 21:55
2003.04.14
Поля печати в RichEdit


3-44080
Виталий Панасенко
2003-03-26 12:26
2003.04.14
LocalSQL


1-44145
Ш-К
2003-04-03 14:28
2003.04.14
Как поменять системное время?


6-44316
Adventure
2003-02-23 16:06
2003.04.14
Совсем смешной вопрос!


1-44086
Tornado
2003-04-01 09:39
2003.04.14
как переименовать директорию?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский