Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];

Вниз

Закачка данных   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.016 c
14-49289
SMS
2002-12-24 15:16
2003.01.16
Пригласил вечером к себе девушку на работу


1-49119
MAD_zone
2003-01-04 14:49
2003.01.16
Реестр


1-48974
Thender
2003-01-06 01:11
2003.01.16
Какой тип данных ?


7-49323
MGB
2002-11-04 19:58
2003.01.16
Список пользователей в NT W2K


14-49207
TTCustomDelphiMaster
2002-12-27 15:17
2003.01.16
Милосердие





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский