Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.52 MB
Время: 0.026 c
1-49156
Smok_er
2003-01-05 18:13
2003.01.16
Вопрос про MDI


1-49068
scorpi
2003-01-08 13:34
2003.01.16
Имена компонентов


14-49274
asafr
2002-12-27 13:05
2003.01.16
Сказка стала былью! Брехня, конечно, но приятно..


14-49303
Mr.Ice
2002-12-26 20:35
2003.01.16
Скины в делфи


4-49367
Serbor
2002-12-01 17:55
2003.01.16
Дата и время