|
толкание записей в FireBird
|
|||
---|---|---|---|
#18+
Не подскажет ли всезнающий ALL как в фиребирд можно ускорить процесс наталкивания большого количества записей в таблицу. есть ява демон который получает асинхронные данные - он двухпотоковый один буферизует по FIFO второй толкает записи ? как за один раз затолкнуть много записей более одного оператора FireBird не принимает или я чего-то не догоняю :( опишите плиз все возможные способы ускорения... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2003, 10:25 |
|
толкание записей в FireBird
|
|||
---|---|---|---|
#18+
Я что-то не понял, что за проблема у тебя. Для ускорения выполнения операторов INSERT могу посоветовать отключение/включение индексов и всяких ограничений. При отключенных индексах данные вставляются быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2003, 13:36 |
|
толкание записей в FireBird
|
|||
---|---|---|---|
#18+
есть ява демон который висит на Циске и асинхронно пихает данные в таблицу о движении трафика в кабельной сети... он же вызывает встроенную процедуру которая раз в 1 час разбирает трафик по юзерам. демон двухпотоковый один поток получает данные и буферизует (FIFO) другой пихает... ??? методы ускорения данного процесса а то буфер у него разрастается до безобразия и скоро может заглохнуть :( судя по всему медленно пихаются данные индексы нужны... для процедуры разбора трафика она и так не очень быстро работает :( CREATE TABLE TRAFIC ( FLOWID INTEGER NOT NULL, FLOWTIME TIMESTAMP NOT NULL, IPSOURCE VARCHAR(15) NOT NULL, IPDEST VARCHAR(15) NOT NULL, MEGABYTE DOUBLE PRECISION NOT NULL ); ALTER TABLE TRAFIC ADD PRIMARY KEY (FLOWID); CREATE INDEX TRAFIC_IDX1 ON TRAFIC (FLOWTIME); CREATE INDEX TRAFIC_IDX2 ON TRAFIC (IPSOURCE); CREATE INDEX TRAFIC_IDX3 ON TRAFIC (IPDEST); CREATE TRIGGER INSERTTRAFICID FOR TRAFIC ACTIVE BEFORE INSERT POSITION 0 AS begin NEW.FlowID = GEN_ID(TraficIDgen,1); if (NEW.FlowTime is null) then NEW.FlowTime = CURRENT_TIMESTAMP; end интересуют все варианты ускорения этого процесса от чисто тюнинговых до таких например как в PostGre можно вставить в один запрос кучу инсертов, а InterBase отказывается выполнить такой запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2003, 11:51 |
|
толкание записей в FireBird
|
|||
---|---|---|---|
#18+
Я ж тебе говорю - индекс отключишь, а потом включишь. И пакетами всё пихай (в смысле не комить после каждой команды). И ещё я не пойму, у тебя процедура для пихания раз в час вызывается или что? Если она, так создай другого демона, который всё время висеть будет и очередь проверять. Можешь сходить на конференцию news://forums.demo.ru/epsylon.public.interbase - там уровень намного выше и советы толковые дадут. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2003, 15:31 |
|
толкание записей в FireBird
|
|||
---|---|---|---|
#18+
Демон то висит непрерывно... при отключении индекса FireBird же его по включению начнет строить ? или я чего-то не понимаю ? а за час может до 100-200 тыс. набраться данные пихаются все время под пользователем демона... разве что посмотрел исходники и понял что лоханулся - каждая коммится - спасибо ;) процедура про которую ты уточняешь у нее другая задача - она периодически вызывается и считает трафик - записи которые удовлетворяют по условиям (пользователь-модем и т.д.) они из этой таблицы после расчетов удаляются... то есть таблица очищается там остается мусор который тоже перебрасывается в другую таблицу для последуещего анализа сисопом... То есть раз в час она становится чистой.... после вызова процедуры ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2003, 17:29 |
|
|
start [/forum/topic.php?fid=40&msg=32109516&tid=1580831]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
158ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 292ms |
total: | 535ms |
0 / 0 |