Текущий архив: 2003.01.16;
Скачать: CL | DM;
ВнизЗакачка данных Найти похожие ветки
← →
Senator (2002-12-19 09:52) [0]Есть такой вопрос: необходимо с периодичностью в 3-5мин закачивать данные из таблиц Paradox на FireBird по сетке.
Таблицы большие.
Какие есть возможности для этого, помимо построчного скачивания ?
Кто подскажет? Заранее благодарен
← →
Alexandr (2002-12-19 09:56) [1]видимо, не целиком скачивать, а только упдейт...
Но это уже репликация будет. Односторонняя.
← →
Senator (2002-12-19 10:00) [2]Alexandr© (19.12.02 09:56)видимо, не целиком скачивать, а только упдейт...
Но это уже репликация будет. Односторонняя.
Хорошо, пусть так, может я не правильно сформулировал вопрос...
Что в этом случае делать?
← →
Alexandr (2002-12-19 10:06) [3]репликацию делать.
← →
Senator (2002-12-19 10:10) [4]Хорошо, открываю таблицы Paradox(фильтрую данные на последнее скачивание), в таймере в цикле построчно загоняю в FireBird..
но все работает ОЧЕНЬ медленно, вплоть до зависания программы.
Вот я и спрашиваю, какие есть способы ускорения процесса ?
← →
Alexandr (2002-12-19 10:12) [5]руки выпрямить и код правильно написать.
← →
Senator (2002-12-19 10:17) [6]Спасибо, за совет.... Жалко нельзя ругаться....
:-((((
← →
Prooksius (2002-12-19 10:20) [7]2 Senator © (19.12.02 10:17)
А ты привыкай, он такой...
← →
Senator (2002-12-19 10:22) [8]Ладно, пропущу между ушей....
Я серьезно говорю, код без проблем работает, но эти таблицы из-за сетки даже на этапе проектирования открываються по 20-30 секунд, если не больше, вот я и спрашиваю, как можно по другому сделать ??
← →
Prooksius (2002-12-19 10:22) [9]2 Senator © (19.12.02 10:10)
Почитай www.ibase.ru / разработчику / репликация.
← →
Prooksius (2002-12-19 10:26) [10]2 Senator © (19.12.02 10:22)
Между ушей - это аккурат в лоб! :))))))
← →
Senator (2002-12-19 10:30) [11]я ж и говорю....... между ушей, тобиш запомнил....
← →
Delirium^.Tremens (2002-12-19 10:31) [12]Процесс ускорится если убрать все DBControls и вставку делать, собирая на лету запросы типа INSERT INTO ... или UPDATE ... , вставлять их в IBQuery и делать ExecSQL.
← →
Johnmen (2002-12-19 10:34) [13]>Senator © (19.12.02 10:22)
>...но эти таблицы из-за сетки даже на этапе проектирования
>открываються по 20-30 секунд...
Все таки у тебя что-то не так...
>Ладно, пропущу между ушей....
Мимо ушей не пропускай, это же просто намек на некорректно написанное приложение.
← →
Sergey Masloff (2002-12-19 10:43) [14]Delirium^.Tremens ©
Ни фига он не ускорится. Это ж Prepare-UnPrepare каждый раз...
Запрос с параметрами спасет отца русской демократии, а если и Insert и Update то через ХП чтобы клиент не решал что там надо - инсерт или что там еще
Вообще если такие проблемы с сетью то на клиенте надо формировать файл с изменения, сжимать его, пересылать а на сервере разжимать и прогонять с целью внесения изменений.
← →
Delirium^.Tremens (2002-12-19 10:49) [15]2Sergey Masloff>
> Ни фига он не ускорится. Это ж Prepare-UnPrepare каждый
> раз...
Не знаю, с чего ты это взял. Лично я из собственного опыта. Когда конструкция Insert; bla..bla..bla Post; была заменена на такой подход, ускорение было в разы.
← →
Senator (2002-12-19 10:50) [16]Никаких визуальных компонент нету...
to Johnmen- таблицы действительно так долго открываються...
← →
Johnmen (2002-12-19 10:50) [17]>Sergey Masloff (19.12.02 10:43)
>...Это ж Prepare-UnPrepare каждый раз...
Ну и что ? Время, затрачиваемое на это в разы/на порядки меньше времени выполнения запроса. Хотя, безусловно, с параметрами грамотнее...
← →
Sergey Masloff (2002-12-19 11:20) [18]>Johnmen ©
Заключил из мониторинга сервера InterBase: Вот простейшая вставка и ее результаты:
Query Time
------------------------------------------------
Prepare : 50,00 ms
Execute : 90,00 ms
Avg fetch time: 0,00 ms
Memory
------------------------------------------------
Current: 9 313 196
Max : 9 449 520
Buffers: 2 048
Enchanced Info:
+--------------------------+-------+-----------+---------+---------+---------+
| Table Name | Index | Non-Index | Updates | Deletes | Inserts |
| | reads | reads | | | |
+--------------------------+-------+-----------+---------+---------+---------+
| DICTI| 0 | 0 | 0 | 0 | 1 |
+--------------------------+-------+-----------+---------+---------+---------+
← →
Sergey13 (2002-12-19 11:46) [19]2Senator © (19.12.02 09:52)
>Есть такой вопрос: необходимо с периодичностью в 3-5мин закачивать данные из таблиц Paradox на FireBird по сетке
Може не совсем в тему. Но может быть стоит подумать и отказаться от парадокса вообще, тем паче "Таблицы большие". Скопировать структуру на птичку, закачать один раз данные и работать прямо с ней. Один раз большой геморой - потом отсутствие гемороя вообще.
← →
OlegE (2002-12-19 11:57) [20]Открытие и "проход" по Paradox происходит довольно приемлемо по скорости и времени, а при вставке в большую IB таблицу, если еще и использовать IBTable и осуществлять по ней поиск нужной записи, чтобы узнать что нужно - insert/update, (а у нас были случаи когда нужно еще и удалить), действительно долго.
Выход был найден в следующем:
Используется ХП(аналогичный пример приводился недавно на форуме):
Кстати, вот пример процедуры для IB которая делает Insert или Update в звыисимости от наличия записи
---------------------------------------------------------
CREATE PROCEDURE INSERT_OR_UPDATE_MY_TABLE (
P_ID INTEGER,
P_FIELD1 NUMERIC(15,4),
P_FIELD2 VARCHAR(10),
......
P_REMARK VARCHAR(255))
AS
DECLARE VARIABLE V_K INTEGER;
begin
V_K = NULL;
FOR SELECT ISN FROM MY_TABLE
WHERE ID=:P_ID
INTO :V_K
AS CURSOR TMPCURSOR
DO
UPDATE MY_TABLE M
SET
ID = :P_ID,
FIELD1 = :P_FIELD1,
FIELD2 = :P_FIELD2,
...........
WHERE CURRENT OF TMPCURSOR;
IF (V_K IS NULL) THEN
INSERT INTO MY_TABLE(ID,
FIELD1,
FIELD2,
...
)
VALUES(:P_ID,
:P_FIELD1,
:P_FIELD2,
....
);
end
------------------------------------------------------
Через несколько циклов добавления, у нас каждый 15-й, производится один цикл на удаление, он к сожалению действительно длительный.
Актуальность данных пользователей вполне устраивает.
← →
Senator (2002-12-19 12:41) [21]От парадокса отказаться не могу!
А скорость маленькая, по тому что парадоксовские таблицы находяться в ДРУГОМ городе, и я к ним коннектюсь через БДЕ по локальной сети...
← →
Prooksius (2002-12-19 12:44) [22]
> таблицы находяться в ДРУГОМ городе
8>[....] Круто. Ну так что же ты жалуешься? :))
← →
Anatoly Podgoretsky (2002-12-19 12:51) [23]Ну другой город это не критерий, может у него сеть 100 мб или выше, а вот если сеть медленная, то нечего жаловаться
Страницы: 1 вся ветка
Текущий архив: 2003.01.16;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.01 c