Имя: Пароль:
1C
1С v8
Интеграция 1С и Firebird Через ODBC и внешние источники данных.
0 WhiskeyTango
 
27.01.20
18:56
Добрый вечер, коллеги. Встала задача интеграции 1с и КИС написанной на delphi. Все это крутится под управлением firebird. Собственно, удалось добавить внешний источник данных, подключится к firebird, читать и записывать данные.НО, столкнулся с проблемой, на относительно небольших таблицах (43000 строк) простые выборки из внешнего источника работают дико медленно. При этом, когда выбираешь 1 запись по первичному ключу все работает прекрасно, но стоит написать запрос вообще без условий и отборов, и он виснет на несколько минут. Перепробовал все что можно, смотрел планы запроса которые генерирует 1с-ка, там все прекрасно. Провал в производительности замечен именно на этапе, когда данные из бд летят в 1с. ПРи этом прямые sql запросы к firebird выполняются мнгновенно. Сталкивался ли кто-то с подобным?
1 ДенисЧ
 
27.01.20
19:06
Возьми другой инструмент. НАпример, адо. Если будет то же самое, то придётся экран протирать и по корпусу сервера стучать.
2 Garykom
 
гуру
27.01.20
19:27
(0) Ты реально удивляешься тому что 43к записей через odbc долго !все! получаются и передаются в 1С ?
3 WhiskeyTango
 
27.01.20
19:36
Честно говоря, плотно не знаком с внутренними алгоритмами работы данной технологии(Да и не знаю тех, кто знаком). Но да, такая выборка мне не казалась большой. А по возможным технологиям, Ado не рассматриваем(Это крайний вариант).
4 WhiskeyTango
 
27.01.20
19:47
Еще по поводу быстродействия: Устанавливал отбор, выбирал 5000 записей примерно, не заметил увеличения быстродействия по сравнению с выборкой из таблицы вообще без отборов.
5 Лефмихалыч
 
27.01.20
19:48
(3) для OLE это много данных. Я б даже сказал, что чрезвычайно до*уя
6 Лефмихалыч
 
27.01.20
19:49
(4) 5000 - это тоже много
7 WhiskeyTango
 
27.01.20
19:55
Меня смутил тот факт, что затык именно в передаче данных. Перед тем как я додумался открыть tracer для БД, думал что запрос, написанный на стороне 1с, сильно коверкается. Но дело оказалось не в этом. Всем огромное спасибо за помощь. Проблему с объемом обойти я смогу. 99% времени передаваться будут десятки объектов, а не такая куча данных как при первоначальной загрузке. INSERT-ы , UPDAT-ы уже тоже протестил, хотя по поводу них тоже были опасения.
8 rsv
 
27.01.20
20:20
(0) попробуйте сначала ...... Excel - данные - получение внешних данных MS Query
9 rsv
 
27.01.20
20:21
вроде бы не затратно и побыстрому запрос набросать ....оценить скорость и тд
10 WhiskeyTango
 
27.01.20
20:40
Честно говоря, уже запланировал тесты на рабочих объемах данных, а не на объемах разовой загрузки справочников. А вот если и в таком случае не устроит быстродействие, то придется сильно думать).Но очень хочется сделать именно на внешних источниках, слишком уж интуитивно понятная штука. Единственное, что смущало - это отсутствие firebird в списке офф. поддерживаемых бд. В любом случае, думаю, разок стоит пройтись по граблям.
11 rsv
 
27.01.20
20:47
а чего думать ....ado на край . хочется экспериментов через внешние источники платформы от релиза к релизу - это выбор
12 Лефмихалыч
 
27.01.20
20:54
(10) вообще, добродетельные люди в чужую БД со своими запросами не ходят. Для этих вещей есть REST и SOAP
13 rsv
 
27.01.20
20:56
точно .... заставляй кто саппортит фареберд разворачивать веб сервис и заставляй сервисы ваять...  и xml  загружать.. еще быстрее будет
14 WhiskeyTango
 
27.01.20
21:00
А я и не собираюсь лезть в чужую БД, у нас есть специально подготовленная транспортная "Шина". Веб сервисы запланированы на будущее, если что). Но пока так, и никак иначе, таковы условия.
15 WhiskeyTango
 
27.01.20
21:03
К слову, у коллег был успешный опыт интеграции 1с-1с с помощью веб-сервисов, более того, они у нас предусмотрены "Из коробки". Но в том случае все делалось нами, без привлечения заказчиков.А в данном случае так не выйдет.
16 Конструктор1С
 
28.01.20
02:58
(1) ВИД лучше адо

(7) может дело в драйвере, выбранном при подключении ВИД к БД?
17 DrZombi
 
гуру
28.01.20
06:18
(0) База firebird какого размера?

Рассмотри вариант преждевременной загрузки из firebird в 1С, хотя бы в похожую структуру данных, как в firebird :)
18 DrZombi
 
гуру
28.01.20
06:19
(15) firebird, старое барахло :)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший