Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5      [все]
 Слишком долгое подключение и выполнение первого запроса.  [new]
kaktus1983
Member

Откуда:
Сообщений: 131
Приветствую, форумчане!

Столкнулся с такой проблемой - медленное удаленное подключение к БД и, что самое главное, очень медленное выполнение первого запроса.
Именно в цифрах:
Подключение к БД 30-45сек (IBExpert это делает за 15-30сек)
Выполнение первого запроса, не важно какого, не важно к какой таблице, даже примитивного "select first 1 ..." выполняется 2-3 минуты, затем все работает с нормально быстро.
В IBExpert этой проблемы нет, запросы работаю одинаково быстро сразу после коннекта.
Не могу понять, с чем это связанно и как ускорить?

Firebird 2.5
FibPlus 7.7.7000 Release
Delphi 10.2

Подключение к БД - удалённо через Internet c использованием vpn.
Интернет соединение стабильно, 100 Мбит.
23 окт 21, 14:51    [22387174]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
kaktus1983,

А пинг сервака что дает? Может там в принципе доступ такой тугой?
23 окт 21, 14:59    [22387176]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
kaktus1983
Member

Откуда:
Сообщений: 131
Softologic,
Пинг проверю, но IBExpert ведь сразу адекватно по скорости работает с этой же БД.
И тормоза нереальные только при первом запросе, даже к таблице с 20 записями...
Впечатление что что-то куда-то кэшируется при первом запуске, но ХЗ что и куда.

Сообщение было отредактировано: 23 окт 21, 15:02
23 окт 21, 15:02    [22387177]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
kaktus1983,

Очевидно метаданные запрашивают ся и кешируются. Что там именно делается смотри в коде приложения и компонентах доступа
23 окт 21, 15:06    [22387178]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
kaktus1983
Member

Откуда:
Сообщений: 131
Есть еще такой интересный момент:

Программа работает с 2-мя базами на одном и том же сервере, параллельно.
При запуске происходит последовательное подключение к двум БД, используются 2 компонента TpFIBDatabase.
Подключение к каждой БД одинаково по времени длится 30-45 сек.

Выполнение 1го запроса к 1й БД - 2-3 мин
Выполнение 1го запроса к 2й БД - уже 20-30сек
последовательность БД можно менять местами - ничего не меняется - тормозит именно 1й запрос к 1й БД
23 окт 21, 15:23    [22387183]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

kaktus1983
Не могу понять, с чем это связанно и как ускорить?

Вариант 1: кто-то кривыми руками базу убил в хлам и при первом подключении у неё
начинается массовая чистка накопившегося мусора, сжирающая все ресурсы.
Вариант 2: на сервере живёт зловред, сжирающий все ресурсы на файловом уровне
дерьмового железа (антивирус или бэкап какой).

Первый вариант вероятнее. Ускорять рихтовкой рук того пацана, что колбу
держит
приложение программировал.

Posted via ActualForum NNTP Server 1.5

23 окт 21, 15:42    [22387189]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30245
kaktus1983
В IBExpert этой проблемы нет, запросы работаю одинаково быстро сразу после коннекта.

это значит, что
- в IBExpert запросы не фетчатся полностью, а приложение может делать fetchAll.
- в приложении делается что-то еще, кроме того что выполняются в IBExpert

Насчет "медленного подключения" к БД - ну сделайте пустое приложение с pFIBDatabase, и проверьте.
Коннект из любой программы всегда одинаков. А вот что дальше программа делает ПОСЛЕ коннекта - это то, что в ней написали.

Вариантов понимания происходящего как минимум два - включить монитор sql в fibplus, или включить трейс в ФБ.
А потом выяснится, что в фибплюсе включено по умолчанию кэширование всех метаданных, или что-то в этом роде...
23 окт 21, 15:48    [22387192]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

kdv
А потом выяснится, что в фибплюсе включено по умолчанию кэширование всех
метаданных, или что-то в этом роде...

.... и опять всплывёт старый флейм о пагубном влиянии неестественного интеллекта
на неокрепший естественный. Может, оно и к лучшему, что плюсы почили в бозе...

Posted via ActualForum NNTP Server 1.5

23 окт 21, 15:59    [22387195]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
kaktus1983
Member

Откуда:
Сообщений: 131
Dimitry Sibiryakov,
похоже там присутствует 2 варианта, я на это повлиять не могу.
Моя цель - добиться скорости работы порядка IBExpert.

kdv,
Приложение пустое, только TpFIBDatabase, и коннект в 2 раза дольше чем у IBExpert. Это допустимо.
А вот вот запрос через TpFIBQuery, самый примитивный, к таблице с 20 записями всего (хотя даже тут fetchAll убрал) - 3 минуты в первый раз, это проблема. Потом запросы к другим таблицам и даже другой БД - быстрее на порядок.
IBExpert тоже фетчит метаданные и отображает их в дереве, но за 5-10 сек всего.
23 окт 21, 16:02    [22387197]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

kaktus1983
Приложение пустое, только TpFIBDatabase, и коннект в 2 раза дольше чем у
IBExpert. Это допустимо.
А вот вот запрос через TpFIBQuery, самый примитивный, к таблице с 20 записями
всего (хотя даже тут fetchAll убрал) - 3 минуты в первый раз, это проблема.

И вот это как раз указывает на первый вариант. Смирись.

Posted via ActualForum NNTP Server 1.5

23 окт 21, 16:08    [22387198]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Dimitry Sibiryakov

.... и опять всплывёт старый флейм о пагубном влиянии неестественного интеллекта
на неокрепший естественный. Может, оно и к лучшему, что плюсы почили в бозе...

Хоть плюсы почили в бозе тихо и естественно, но вполне себе рабочие форки для (сравнительно) новых версий все же есть. Там никто не запрещает на уровне исходников выключить это самое кэширование по умолчанию :)
И вообще... в свое время плюсы были вполне достойнейшими компонентами. Зачем ругать тех, кто ушел на покой?!... Кощунство жеж :).

Сообщение было отредактировано: 23 окт 21, 16:13
23 окт 21, 16:13    [22387199]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Softologic
И вообще... в свое время плюсы были вполне достойнейшими компонентами.

Не были. На изначальную кривизну FIBC они наворотили этот самый интеллект чтобы
пользоваться ими смогли даже идиоты. И это всё.

Posted via ActualForum NNTP Server 1.5

23 окт 21, 16:22    [22387204]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
kaktus1983
Member

Откуда:
Сообщений: 131
Всем спасибо!
Проблема решена, скорость работы с удаленной БД одинакова с IBExpert.
Виновником оказался EventAlerter.
Видимо на сервере его порт был заблокирован брандмауэром.
23 окт 21, 16:24    [22387209]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Dimitry Sibiryakov
Softologic
И вообще... в свое время плюсы были вполне достойнейшими компонентами.

Не были. На изначальную кривизну FIBC они наворотили этот самый интеллект чтобы
пользоваться ими смогли даже идиоты. И это всё.

Окей. А тогда что на замену то ? Чтоб прям достойно было. И не для всех, а кто в теме.

ЗЫ: И кстати, почему автор IBEXPERT'a использует эти не вполне достойные компоненты по сей день? Странно...

Сообщение было отредактировано: 23 окт 21, 16:26
23 окт 21, 16:26    [22387211]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Softologic
И кстати, почему автор IBEXPERT'a использует эти не вполне достойные компоненты
по сей день?

Ну это у него надо спрашивать. Полагаю, изначально купился на простоту
использования, а потом они превратились в чемодан без ручки, как это обычно и
бывает.

Posted via ActualForum NNTP Server 1.5

23 окт 21, 17:28    [22387234]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30245
Softologic
И кстати, почему автор IBEXPERT'a использует эти не вполне достойные компоненты по сей день?

патамушта он остановился на 4й версии ФИБов, если я не ошибаюсь, и дальше пилит их самостоятельно.
23 окт 21, 17:49    [22387244]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Dimitry Sibiryakov
Softologic
И кстати, почему автор IBEXPERT'a использует эти не вполне достойные компоненты
по сей день?

Ну это у него надо спрашивать. Полагаю, изначально купился на простоту
использования, а потом они превратились в чемодан без ручки, как это обычно и
бывает.

Таки что Отцы используют (и рекомендуют) в трудах ежедневных в качестве коннектора с FB ? :)
23 окт 21, 20:00    [22387269]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Внезапно: fbclient.

Posted via ActualForum NNTP Server 1.5

23 окт 21, 20:11    [22387270]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Dimitry Sibiryakov
Внезапно: fbclient.

Эту песню (библиотеку) я и сам отгадал с первой ноты :)
Однако не про библиотеку ведь спрашивал, а про компоненты для связи с базой FB. Самописное нечто, я полагаю?
23 окт 21, 20:28    [22387273]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Softologic
Однако не про библиотеку ведь спрашивал, а про компоненты для связи с базой FB.

Это чтобы мышкой на форму кидать и клац-клац? Не, такой фигнёй пусть чайники маются.

Posted via ActualForum NNTP Server 1.5

23 окт 21, 21:20    [22387280]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Dimitry Sibiryakov
Softologic
Однако не про библиотеку ведь спрашивал, а про компоненты для связи с базой FB.

Это чтобы мышкой на форму кидать и клац-клац? Не, такой фигнёй пусть чайники маются.

Да как бы можно ничего не кидать, в рантайме все, но ведь упрощают же жизнь компоненты ж...

Или Дмитрий сторонник подхода: абсолютли все свое, ибо чем низкоуровневее, тем лучше? Оно понятно, но баланс ведь должен быть. А так исходя из вашей концепции получается всякие сторонние обертки\фреймворки\компоненты - зло что-ли?
23 окт 21, 21:57    [22387287]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Softologic
но ведь упрощают же жизнь компоненты ж...

Нет. Если подсчёты включить время на их изучение и вылавливание в них багов, то
конечный результат в лучшем случае в районе нуля.

Softologic
А так исходя из вашей концепции получается всякие сторонние
обертки\фреймворки\компоненты - зло что-ли?

Нет, но чаще от них больше вреда чем пользы, поскольку среднестатистические
компоненты это обёртка вокруг одной функции, да ещё и вводящая в заблуждение.
Типичный пример - TThread.

Posted via ActualForum NNTP Server 1.5

23 окт 21, 22:10    [22387288]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Dimitry Sibiryakov

Нет. Если подсчёты включить время на их изучение и вылавливание в них багов, то
конечный результат в лучшем случае в районе нуля.

Вы это как бы про все компоненты априори??? То есть вот взять всех и под одну гребенку?

Dimitry Sibiryakov

Нет, но чаще от них больше вреда чем пользы, поскольку среднестатистические
компоненты это обёртка вокруг одной функции, да ещё и вводящая в заблуждение.
Типичный пример - TThread.

Это ж какой длинный тернистый путь (без компонентов\оберток\фреймворков) должны пройти будут новички, чтобы скажем, лет за 5 написать хоть что то вменяемое. На мой взгляд, это время прошло еще в начале нулевых, если не сказать даже 90-х. Сейчас куда практичнее баланс - берешь компонент, прогоняешь на нем десяток-другой тестов и вперед - в разработку сразу, если приемлемый результат по: 1) финансовым затратам на покупку\время разработки; 2) по количеству некритичных багов, которые можно быстро править в исходниках; 3) по скорости получения данных\парсинга\рендеринга;
2й пункт самый непростой, да, но я вообще по началу покупал компоненты без исходников и в целом, меня устраивало. Сейчас, по прошествии 10 лет в Delphi, покупаю по возможности с исходниками конечно.
23 окт 21, 22:27    [22387296]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
В довершение добавлю такой момент: когда в 2010м мне занадобился инструментарий для проектирования и, собственно, кодинга бизнес-приложения, я выбрал Delphi как раз из за большого количества всяких готовых штук. На тот момент как раз по отзывам, мне как нубу (точнее полному чайнику) больше всего подошли\понравились FIbplus. Никаких особых нареканий за все 10 лет к ним у меня не было. Совсем.
23 окт 21, 22:39    [22387298]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
kaktus1983
Member

Откуда:
Сообщений: 131
Softologic,
Полностью поддерживаю ваше мнение, Fib+ отличные компоненты, и я даже не знаю альтернатив, несмотря на то, что они уже долго не поддерживаются.

Сообщение было отредактировано: 24 окт 21, 00:24
24 окт 21, 00:25    [22387311]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

kaktus1983
Подключение к каждой БД одинаково по времени длится 30-45 сек.

А сколько времени длится подключение из ISQL?

Posted via ActualForum NNTP Server 1.5

24 окт 21, 01:16    [22387313]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
dennis-r
Member

Откуда:
Сообщений: 236
kaktus1983
Softologic,
Полностью поддерживаю ваше мнение, Fib+ отличные компоненты, и я даже не знаю альтернатив, несмотря на то, что они уже долго не поддерживаются.
По началу, да, всё красиво, простенький проект накидать - замечательно: датасеты, мастера запросов, прочее. Но, когда таблицы начинают измеряться сотнями, то приходишь ко всяким MVC, MVVM, MVP, etc. (нужное подчеркнуть). И, внезапно, от компонентов доступа требуется лишь выполнение запроса и... всё! Остальное делается своим велосипедом фреймворком.

Сообщение было отредактировано: 24 окт 21, 01:22
24 окт 21, 01:21    [22387314]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
dennis-r
kaktus1983
Softologic,
Полностью поддерживаю ваше мнение, Fib+ отличные компоненты, и я даже не знаю альтернатив, несмотря на то, что они уже долго не поддерживаются.
По началу, да, всё красиво, простенький проект накидать - замечательно: датасеты, мастера запросов, прочее. Но, когда таблицы начинают измеряться сотнями, то приходишь ко всяким MVC, MVVM, MVP, etc. (нужное подчеркнуть). И, внезапно, от компонентов доступа требуется лишь выполнение запроса и... всё! Остальное делается своим велосипедом фреймворком.

Сейчас у меня ровно такая же картина маслом. Прям один в один. Оглядываясь с ужасом на легаси-проекты с сотней датасетов в датамодуле, приходишь к полному переосмысливанию подхода. Теперь она сводится к написанию своей многопотоковой модели фреймворка, но с использованием асинхронно-событийных компонент (для работы с почтой, sip-телефонией, БД в облаке и пр.). И таки да, "велосипедить" свой MVC как то тоже вынуждает общая ситуация.

P.S: Однако, подытожу - новичкам сразу в MVC и во всякие многопоточные, да асинхронно-событийные модели все равно нырять рановато - это уже открытое море практически, пусть "в лягушатнике поплавают" для начала :)

Сообщение было отредактировано: 24 окт 21, 01:38
24 окт 21, 01:35    [22387315]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3580
Dimitry Sibiryakov
Внезапно: fbclient.


Можно подумать, что ты каждый раз для выполнения какого-нить запроса всю эту цепочку апишных вызовов пишешь.
Ага, ага...
24 окт 21, 10:16    [22387332]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

IBExpert
Можно подумать, что ты каждый раз для выполнения какого-нить запроса всю эту
цепочку апишных вызовов пишешь.

Нет, я халявлю, сокращая цепочку до одного isc_dsql_exec_immed2().

Posted via ActualForum NNTP Server 1.5

24 окт 21, 12:15    [22387347]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8877
Dimitry Sibiryakov
IBExpert
Можно подумать, что ты каждый раз для выполнения какого-нить запроса всю эту
цепочку апишных вызовов пишешь.

Нет, я халявлю, сокращая цепочку до одного isc_dsql_exec_immed2().
Одно дело системная утилита и обертка настроечная для оной, другое софтина кучей гуя, чтоб обслуживать торговлю, например, или медицину.
24 окт 21, 12:38    [22387352]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Ivan_Pisarevsky
другое софтина кучей гуя, чтоб обслуживать торговлю, например, или медицину.

В чём другое? Выше уже упоминались всякие зубодробительные аббревиатуры, где в
слое доступа к БД простые запросы, в слое гуя простые контролы, а между ними
ходят объекты бизнес-логики, складываемые из запросов на одном конце и
раскладываемые по контролам на другом.

Да, сначала кажется, что это гораздо сложнее и дольше, но в конечном итоге
получается одинаково. Хотя да, кое-как работающий прототип класса фишфака проще
сляпать... как фишфак и сляпан, собственно.

Posted via ActualForum NNTP Server 1.5

24 окт 21, 12:44    [22387353]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3580
Dimitry Sibiryakov
Нет, я халявлю, сокращая цепочку до одного isc_dsql_exec_immed2().


Да не свисти, даже для этого есть смысл написать простейшую обертку, а не прописывать десяток параметров каждый раз.
24 окт 21, 14:36    [22387365]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

IBExpert
даже для этого есть смысл написать простейшую обертку, а не прописывать десяток
параметров каждый раз.

С учётом переползания на новое API у меня есть обёртки для транзакции, статуса и
статического буфера. Этого достаточно чтобы код свёлся к database->execute или
openCursor.

Posted via ActualForum NNTP Server 1.5

24 окт 21, 14:47    [22387369]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3580
Dimitry Sibiryakov
у меня есть обёртки для транзакции, статуса и
статического буфера.


Вот теперь верю. И пафосное "я пишу на голом апи" превращается в банальное "у меня собственные обертки только для необходимого мне функционала".
24 окт 21, 14:56    [22387373]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

IBExpert
пафосное "я пишу на голом апи" превращается в банальное "у меня собственные
обертки только для необходимого мне функционала".

Обёртка для транзакции это полэкрана, в основном занятые фигурными скобками, а
для остального у меня собственные реализации, ибо от того, что "в коробке" меня
тошнит.

Posted via ActualForum NNTP Server 1.5

24 окт 21, 15:18    [22387380]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3580
Dimitry Sibiryakov
от того, что "в коробке" меня тошнит.


"Ты просто не умеешь их готовить" (с)
Разработчик, способный за разумное время написать свои обертки Database/Transaction/Query над фбшным АПИ, тем более способен настроить фибы и получить от них нужный результат. Вплоть до физического выпиливания ненужного и вредного, по его мнению. И времени у него на это уйдет существенно меньше, чем на изобретение собственного велосипеда.
24 окт 21, 17:31    [22387396]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
Это у Димы пунктик такой - у FIBPlus есть фатальный недостаток -
их написал не он. (с) Так что надо относиться с пониманием. :)
24 окт 21, 17:35    [22387397]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Мне всё равно кто их написал, но в них в принципе нет двух вещей, которые я
считаю важными для "софтины кучей гуя, чтоб обслуживать торговлю, например, или
медицину":
1) Background fetch, который должен устранить тормоза на прокрутке грида;
2) Сброс кэша записей на диск, из-за чего они известны своим "out of memory".

PS: В файердаке их тоже нет.

Posted via ActualForum NNTP Server 1.5

24 окт 21, 18:30    [22387404]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Dimitry Sibiryakov
Мне всё равно кто их написал, но в них в принципе нет двух вещей, которые я
считаю важными для "софтины кучей гуя, чтоб обслуживать торговлю, например, или
медицину":
1) Background fetch, который должен устранить тормоза на прокрутке грида;
2) Сброс кэша записей на диск, из-за чего они известны своим "out of memory".

PS: В файердаке их тоже нет.

А в Унидаке (и прочих даках) от Деварта?

Сообщение было отредактировано: 24 окт 21, 19:00
24 окт 21, 19:01    [22387412]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772
Нигде нет. Потому что архитектура DB VCL была создана для Windows 3, где
мнопоточности не было в принципе, и с тех пор не пересматривалась.

PS: А кэш резал-сета на диске был в BDE, но с тех пор это потерянная технология.

Сообщение было отредактировано: 24 окт 21, 19:04
24 окт 21, 19:04    [22387413]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8877
Dimitry Sibiryakov
1) Background fetch, который должен устранить тормоза на прокрутке грида;
Да, была бы зело полезная фича.
Dimitry Sibiryakov
2) Сброс кэша записей на диск, из-за чего они известны своим "out of memory".
Сдается мне будет только провоцировать писать г****код. Толку мало. Если резалтсет не убрался в пару гиг озу, значит "консерватория" уже давно плачет горючими слезами.
24 окт 21, 19:07    [22387415]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Dimitry Sibiryakov
Нигде нет. Потому что архитектура DB VCL была создана для Windows 3, где
мнопоточности не было в принципе, и с тех пор не пересматривалась.

Если это так, почему вам не запилить свои даки, с конкретным конкурентным преимуществом, актуальным ныне ? И будет эдакий пассивный доход в итоге.
24 окт 21, 19:08    [22387416]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Я же, кажется, русским по белому сказал, что главная проблема на этом пути -
архитектура VCL...

Posted via ActualForum NNTP Server 1.5

24 окт 21, 19:29    [22387421]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Dimitry Sibiryakov
Я же, кажется, русским по белому сказал, что главная проблема на этом пути -
архитектура VCL...

Вы из Великих. А они знают альтернативные пути, я полагаю :)
24 окт 21, 19:32    [22387423]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
Имхо.
По-быстрому какое-нибудь говно (одноразовая программа) накодить - лучше фиблюсов как бы и нет.
По-быстрому объяснить студенту, как говнокодить с фаербердом, показать редактируемый датасет с раздельными транзакциями - тоже фиблюс.
...
А из своего старого кода редактируемые датасеты практически удалены, используются три компонента: TpFIBDataBase, TpFIBTransaction да TpFIBQuery, да и то не в "чистом" виде, а класс-обертка либо интерфейс. То есть, пофиг уже, что импользовать - фибы, айбиикс или уибы, или вообще самопальщину как у ДС...
Но вот новичкам без волшебных DAC-ов не обойтись, вернее, они не станут использовать фаерберд без простых и доступных "драйверов"...

Сообщение было отредактировано: 24 окт 21, 21:47
24 окт 21, 21:48    [22387463]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Softologic
А они знают альтернативные пути, я полагаю :)

Ну так вон выше же ясно написано что это за альтернатива: микро-обёртки для
нужного функционала и полное игнорирование db-aware куска.

Posted via ActualForum NNTP Server 1.5

24 окт 21, 22:15    [22387470]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
Dimitry Sibiryakov

...и полное игнорирование db-aware куска.

Да был бы он попроще, этот кусок.
Наследник TCustomDataSource (источник данных гридов от DevEx, "режим провайдера") написать свой - работы требуется от нескольких минут, а справиться со всеми абстрактными загибами дельфийского TDataSet - скучать начинаешь уже на этапе изучения.
24 окт 21, 22:31    [22387474]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Dimitry Sibiryakov

1) Background fetch, который должен устранить тормоза на прокрутке грида;

Я сейчас местами в качестве грида использую широко известный в узких кругах VirtualTreeView. На данный момент пока в основном потоке использую подгрузку данных из БД ровно того количества записей, которые помещаются в видимые пределы контрола VT + несколько записей до и несколько после (что то вроде кэша в памяти получается). В этом мне помогает событие OnAfterPaint. В общем, я подгружаю ровно то, что хочет видеть пользователь, и немного еще.
В общем, оно и так не тормозило никогда доселе (выкачать с сервака 20-50 записей единовременно не проблема), но в идеале мне ничего не мешает эту подгрузку засунуть в другой поток. Чтоб уж наверняка все было максимально "антифризно" и мягко.

P.S: Поскольку порядок узлов мне известен, мне не составит труда вычислить первый и последний видимые узлы:
+
  x:=TV.ClientRect.Left + 5;
  y:=TV.ClientRect.Top - 25;

  NodeFirst:=TV.GetNodeAt(x, y);

  x:=TV.ClientRect.Left + 5;
  y:=TV.ClientRect.bottom + 25;

  NodeLast:=TV.GetNodeAt(x, y);

Ну а дальше, вычислить несколько предшествующих и последующих - дело техники.

Сообщение было отредактировано: 25 окт 21, 01:44
25 окт 21, 01:39    [22387525]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Softologic
На данный момент пока в основном потоке использую подгрузку данных из БД ровно того количества записей, которые помещаются в видимые пределы контрола VT + несколько записей до и несколько после (что то вроде кэша в памяти получается). В этом мне помогает событие OnAfterPaint. В общем, я подгружаю ровно то, что хочет видеть пользователь, и немного еще.

Короче, это нечто похожее на "Background fetch, без тормозов на прокрутке грида" для меня решение.
25 окт 21, 02:48    [22387527]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3580
Dimitry Sibiryakov

PS: А кэш резал-сета на диске был в BDE, но с тех пор это потерянная технология.


В моих фибах и, соответственно, в эксперте эта "потерянная технология" присутствует.
Не знаю уж, чего там мегатехнологичного.
25 окт 21, 03:29    [22387528]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11465
Выбрать записей "сколько видно на экране и ещё чуть чуть" - оно, как бы, и хорошо, но есть ньюанс.
"Заказал" пользователь, не глядя, "всё, что есть", проскролил пару экранов, нашёл всё нужное и ушёл домой, просто заблокировав рабочий стол. А всё, что было выбрано из базы, но не дочитано клиентом - висит в памяти сервера в сервера в состоянии stalled.
И, опять-таки, первые пару-тройку лет, вроде как, всё в порядке - данных-то немного, а вот лет через пять-семь: "То тут - сто грамм, то там - сто грам: к обеду ходишь пьяный в хлам".

P.S.
Да, принудительное отключение, конечно, решает проблему, но было бы полезно помнить о ней.
25 окт 21, 11:03    [22387575]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3580
Ivan_Pisarevsky
Dimitry Sibiryakov
1) Background fetch, который должен устранить тормоза на прокрутке грида;
Да, была бы зело полезная фича.


Думаю, на эту фичу просто нет соответствующего спроса. Я тут в очередной раз глянул на потроха своего TFIBDataset и не вижу ни одного сколь-нибудь серьезного препятствия для выноса QSelect в отдельный поток.
25 окт 21, 11:25    [22387581]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
ggreggory
Member

Откуда:
Сообщений: 182
А кто-нибудь в FIB+ пользуется CacheModelOptions.Сachemodelkind = cmkLimitedBufferSize ?
25 окт 21, 11:33    [22387582]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Basil A. Sidorov
Выбрать записей "сколько видно на экране и ещё чуть чуть" - оно, как бы, и хорошо, но есть ньюанс.
"Заказал" пользователь, не глядя, "всё, что есть", проскролил пару экранов, нашёл всё нужное и ушёл домой, просто заблокировав рабочий стол. А всё, что было выбрано из базы, но не дочитано клиентом - висит в памяти сервера в сервера в состоянии stalled.
И, опять-таки, первые пару-тройку лет, вроде как, всё в порядке - данных-то немного, а вот лет через пять-семь: "То тут - сто грамм, то там - сто грам: к обеду ходишь пьяный в хлам".

P.S.
Да, принудительное отключение, конечно, решает проблему, но было бы полезно помнить о ней.

Хмм... А зачем ему висеть в памяти сервера то? Вытащил на клиента с сервера данные через запрос - передал в мемори-датасет (я к ним сейчас питаю самые теплые чувства:)), отключил соединение и работаешь уже с данными в мемори-датасете. А оные чем еще хороши - они в оперативке вполне себе джойнятся как тебе нравится, читай полноценный SQL + скорость выборки молниеносная:
http://www.components4developers.com/products_kbmMemTable.html

Сообщение было отредактировано: 25 окт 21, 11:49
25 окт 21, 11:49    [22387587]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11465
Softologic
Хмм... А зачем ему висеть в памяти сервера то?
А что делать набору данных, если он выбран из базы, но не "дочитан" клиентом?
Вытащил на клиента с сервера данные через запрос - передал в мемори-датасет
Я подчеркнул :)
25 окт 21, 12:22    [22387618]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
DS> 1) Background fetch, который должен устранить тормоза на прокрутке грида;

Тут все дружно заржали про десятки тысяч строк в гриде.

DS> главная проблема на этом пути - архитектура VCL...

Спрашивается, к чему был весь спич, если виноват VCL,
а не ФИБы, вместо которых любая другая VCL-либа страдала
бы (по твоему мнению) тем же самым фатальным недостатком.

Posted via ActualForum NNTP Server 1.5

25 окт 21, 12:31    [22387633]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
ъъъъъ> А из своего старого кода редактируемые датасеты
ъъъъъ> практически удалены, используются три компонента:
ъъъъъ> TpFIBDataBase, TpFIBTransaction да TpFIBQuery

Редактируемые редактируемым рознь. В гриде - ужас, конечно,
но это от библиотеки не зависит. А кверю ты к гриду не подцепишь.

Posted via ActualForum NNTP Server 1.5

25 окт 21, 12:32    [22387635]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
Softologic> Вытащил на клиента с сервера данные
Softologic> через запрос - передал в мемори-датасет

Я тебе по секрету скажу - большинство этим переливанием
из пустого в порожнее обычно не занимаются, нужды нет.
А там, где нужно - обходятся вообще без больших висящих
выборок (либо страницами/пачками, либо фильтруют).

Softologic> (я к ним сейчас питаю самые теплые чувства:))

К каким конкретно, кстати?

Posted via ActualForum NNTP Server 1.5

25 окт 21, 12:35    [22387642]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

IBExpert
В моих фибах и, соответственно, в эксперте эта "потерянная технология"
присутствует.

А сколько тебя перед этим клевали за "Out of memory" на больших таблицах?..

Posted via ActualForum NNTP Server 1.5

25 окт 21, 12:39    [22387647]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Гаджимурадов Рустам
к чему был весь спич, если виноват VC

Научись различать понятия "главная проблема" и "непреодолимая проблема".

Posted via ActualForum NNTP Server 1.5

25 окт 21, 12:43    [22387650]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3580
Dimitry Sibiryakov
А сколько тебя перед этим клевали за "Out of memory" на больших таблицах?..


А какая разница? Всегда должна накопиться некая критическая масса "клюющих" либо другая какая мотивация нарисоваться.
Главное, что оказалось это относительно несложно, и никакие изъяны DB VCL образца прошлого века этому не помешали.
25 окт 21, 12:49    [22387652]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Гаджимурадов Рустам
Softologic> Вытащил на клиента с сервера данные
Softologic> через запрос - передал в мемори-датасет

Я тебе по секрету скажу - большинство этим переливанием
из пустого в порожнее обычно не занимаются, нужды нет.
А там, где нужно - обходятся вообще без больших висящих
выборок (либо страницами/пачками, либо фильтруют).

Не всегда можно отфильтровать через Filtered:=True + Filter:='что то там' у датасета. Иногда мне джойнить таблицы нужно. И чтобы минимизировать нагрузку сервера, я пробую схему работы через мемори-датасеты.

Гаджимурадов Рустам

Softologic> (я к ним сейчас питаю самые теплые чувства:))

К каким конкретно, кстати?

Так указал в посте ж - kbmMemTable.

Сообщение было отредактировано: 25 окт 21, 13:04
25 окт 21, 12:56    [22387655]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
ОФФ

IBExpert> либо другая какая мотивация нарисоваться.

У тебя там нет мотивации и свободного времени сделать
в IBE поддержку (или отдельную версию) PostgreSQL?
Ибо там кроме платного DataGrip буквально пустошь...

Posted via ActualForum NNTP Server 1.5

25 окт 21, 13:03    [22387661]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
Softologic> Не всегда можно отфильтровать через Filtered:=True

Через него и не надо. Практически, никогда.

Softologic> Иногда мне джойнить таблицы нужны.
Softologic> И чтобы минимизировать нагрузку сервера,
Softologic> я пробую схему работы через мемори-датасеты.

Во-первых, это не минимизирует нагрузку на сервер, а
скорее максимизирует нагрузку и на сервер, и на клиента.
Во-вторых, надо было сразу разговор начинать с фразы
"иногда мне нужно джойнить таблицы" - мы бы всё поняли.

> Так указал в посте ж - kbmMemTable.

Одобрямс. Просто думал может уже что-то новое появилось,
в некоторых DACах и своё есть.

Posted via ActualForum NNTP Server 1.5

25 окт 21, 13:06    [22387665]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Гаджимурадов Рустам
У тебя там нет мотивации и свободного времени сделать в IBE поддержку (или
отдельную версию) PostgreSQL?

Через ODBC не работает что ли?..

Posted via ActualForum NNTP Server 1.5

25 окт 21, 13:06    [22387666]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
DS> Через ODBC не работает что ли?..

Хтось?

Posted via ActualForum NNTP Server 1.5

25 окт 21, 13:06    [22387667]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Гаджимурадов Рустам
Хтось?

Твой слон.

Posted via ActualForum NNTP Server 1.5

25 окт 21, 13:09    [22387668]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
Слон - это сервер. Я спрашивал про IDE Tool
(и Сашу, как разработчика самого удобного).

Posted via ActualForum NNTP Server 1.5

25 окт 21, 13:15    [22387672]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3580
Гаджимурадов Рустам

У тебя там нет мотивации и свободного времени сделать
в IBE поддержку (или отдельную версию) PostgreSQL?


Нет ни того, ни другого. Увы или к счастью - это как посмотреть...
25 окт 21, 13:18    [22387674]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Гаджимурадов Рустам


Через него и не надо. Практически, никогда.


Хмм... а как тогда локально, не дергая сервер??

Гаджимурадов Рустам


Во-первых, это не минимизирует нагрузку на сервер, а
скорее максимизирует нагрузку и на сервер, и на клиента.
Во-вторых, надо было сразу разговор начинать с фразы
"иногда мне нужно джойнить таблицы" - мы бы всё поняли.



Клиент стал шустрее на порядок, благодаря мемори-датасетам. Ведь взять те же справочники - я их вытянул все на клиента в мемори-датасеты и все, сервер более не дергается. Синхронизация изменений (и дополнений\удалений) же делается в отдельном потоке, которые логи изменений в справочниках отслеживает и точечно уже вытягивает с сервера при необходимости. И апдейтит в мемори-датасетах так же точечно. А не монструозный FullRefresh, как я ранее делал без мемори-датасетов?


И кстати, нагрузка сервера то как максимизируется ?

Сообщение было отредактировано: 25 окт 21, 13:28
25 окт 21, 13:25    [22387683]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Гаджимурадов Рустам
Слон - это сервер. Я спрашивал про IDE Tool

ИДЕтулы работают с серверами через библиотеки доступа, включая ODBC, и вроде бы
какая-то поддержка последнего в эксперте есть. Хотя я и не в курсе насколько она
широкая.

Posted via ActualForum NNTP Server 1.5

25 окт 21, 13:26    [22387685]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
IBExpert> Увы или к счастью - это как посмотреть...

Угу. Кому баба с возу, кому бобёр EMS в пользование...
Есть ещё, правда, одна наколенка от местного мембера,
но я всё никак не соберусь потестировать...

Posted via ActualForum NNTP Server 1.5

25 окт 21, 13:30    [22387687]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
Dimitry Sibiryakov,

причём тут слой доступа? Чтобы сделать IDE надо вытягивать метаданные слона. То есть писать как минимум к нему системные запросы + надо уметь мало мальски понимать его диалект, написать мастера создания хранимых функций и ещё много чего.
Для тупого выполнения запроса к серверу и отображение его в гриде IDE не нужен
25 окт 21, 13:31    [22387690]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
Softologic> Хмм... а как тогда локально, не дергая сервер??

Локально - никак. Если не понимаешь, что такое локальная
фильтрация - бесполезно объяснять, сначала прочитай.

> Ведь взять те же справочники -
> которые логи изменений в справочниках

Именно для справочников такое можно сделать,
на старте приложения (даже без выкачивания).
Но для всех остальных оперативных таблиц -
это пляски наперегонки - может быть лучше,
может быть нет, но возня, усложнение кода и
проклятья наследников гарантированы.

> И кстати, нагрузка сервера то как максимизируется ?

Выкачиванием всего НД на клиента, разумеется.

Posted via ActualForum NNTP Server 1.5

25 окт 21, 13:33    [22387695]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
DS> ИДЕтулы работают с серверами через библиотеки доступа,
DS> включая ODBC, и вроде бы поддержка в эксперте есть.

Это ты сильно реплицировался... Метаданные, синтаксис и пр.
IBE тоже ODBC подскажет?

P.S. Я знаю ответ - теоретически возможно, да.

Posted via ActualForum NNTP Server 1.5

25 окт 21, 13:35    [22387698]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Гаджимурадов Рустам
Метаданные, синтаксис и пр.
IBE тоже ODBC подскажет?

Если соответствует спецификации, то да. И на метаданные и на синтаксис там есть
забавные информационные функции.

Posted via ActualForum NNTP Server 1.5

25 окт 21, 13:40    [22387701]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
Я так и знал! (с)

P.S. Срочно перевести IBE и PSQLD на
работу через ODBC, а-то чего это они...

Posted via ActualForum NNTP Server 1.5

25 окт 21, 13:41    [22387702]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Softologic
Member

Откуда: Питер
Сообщений: 393
Гаджимурадов Рустам

Локально - никак. Если не понимаешь, что такое локальная
фильтрация - бесполезно объяснять, сначала прочитай.

А где почитать? Не лень гуглить, просто хочется чтобы прям авторитетно было и не устаревшее..

Гаджимурадов Рустам

Именно для справочников такое можно сделать,
на старте приложения (даже без выкачивания).
Но для всех остальных оперативных таблиц -
это пляски наперегонки - может быть лучше,
может быть нет, но возня, усложнение кода и
проклятья наследников гарантированы.

Пока это на уровне экспериментов еще. Будем посмотреть, в общем. О результатах расскажу, вполне возможно мой подход кому то будет интересен.

Гаджимурадов Рустам

> И кстати, нагрузка сервера то как максимизируется ?
Выкачиванием всего НД на клиента, разумеется.
С мелкими справочниками, которые за пару секунд все и по максимуму выкачиваются с сервера проблемы не вижу.
25 окт 21, 13:47    [22387707]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Гаджимурадов Рустам
PSQLD на работу через ODBC

Перевести сервер на работу через ODBC? Ты сам-то понял что сказал?..

Posted via ActualForum NNTP Server 1.5

25 окт 21, 13:57    [22387714]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
ggreggory
Member

Откуда:
Сообщений: 182
Dimitry Sibiryakov

Гаджимурадов Рустам
PSQLD на работу через ODBC

Перевести сервер на работу через ODBC? Ты сам-то понял что сказал?..


Было бы не плохо. Если бы ON EXTERNAL DATA SOURCE мог бы подключаться через ODBC к не-Firebird базам.
25 окт 21, 14:40    [22387739]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

ggreggory
Если бы ON EXTERNAL DATA SOURCE мог бы подключаться через ODBC к не-Firebird базам.

Возрадуйся: https://www.ibphoenix.com/products/software/magpie

Posted via ActualForum NNTP Server 1.5

25 окт 21, 14:42    [22387740]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
Softologic> А где почитать? Не лень гуглить, просто хочется
Softologic> чтобы прям авторитетно было и не устаревшее..

"Не устаревшее" - ХЗ, я не знаю, что нового там можно сказать.
Авторитетно - ну в той же книге Канту написано (и переведено)
вроде достаточно грамотно.

> С мелкими справочниками, которые за пару секунд
> все и по максимуму выкачиваются с сервера

С мелкими справочниками и без этих плясок никаких
проблем нет (если ты, конечно, на каждый чих заново
их с сервера не перечитываешь).

Posted via ActualForum NNTP Server 1.5

25 окт 21, 14:43    [22387742]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
Dimitry Sibiryakov
ГР> PSQLD

Перевести сервер на работу через ODBC?

Ты сегодня прямо в ударе.

Posted via ActualForum NNTP Server 1.5

25 окт 21, 14:44    [22387745]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32886
IBExpert
Dimitry Sibiryakov

PS: А кэш резал-сета на диске был в BDE, но с тех пор это потерянная технология.

В моих фибах и, соответственно, в эксперте эта "потерянная технология" присутствует.
Не знаю уж, чего там мегатехнологичного.
при фетче MMF сразу создаёшь, или есть какой-то критический порог по достижении которого таки да?
25 окт 21, 14:48    [22387751]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3580
Мимопроходящий
при фетче MMF сразу создаёшь, или есть какой-то критический порог по достижении которого таки да?


Я на обычном file stream делал, MMF мне как-то не зашли, да и никакого заметного прироста производительности они не давали, ЕМНИП.

А порог есть, конечно:
procedure TFIBCustomDataSet.CheckCacheMode(AForceCheck : boolean = FALSE);
var
  HS : THeapStatus;
begin
  if (FCacheMode = cmInMemory) and (AForceCheck or (FRecordCount mod FCheckHSThreshold = 0)) then
  begin
    HS := FastGetHeapStatus;
    if HS.TotalAllocated > 1300000000 then
      CacheMode := cmOnDisk;  // Здесь все скидывается в файл и дальше работает с ним
  end;
end;
25 окт 21, 15:03    [22387770]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32886
IBExpert
Мимопроходящий
при фетче MMF сразу создаёшь, или есть какой-то критический порог по достижении которого таки да?


Я на обычном file stream делал, MMF мне как-то не зашли, да и никакого заметного прироста производительности они не давали, ЕМНИП.

А порог есть, конечно:
procedure TFIBCustomDataSet.CheckCacheMode(AForceCheck : boolean = FALSE);
var
  HS : THeapStatus;
begin
  if (FCacheMode = cmInMemory) and (AForceCheck or (FRecordCount mod FCheckHSThreshold = 0)) then
  begin
    HS := FastGetHeapStatus;
    if HS.TotalAllocated > 1300000000 then
      CacheMode := cmOnDisk;  // Здесь все скидывается в файл и дальше работает с ним
  end;
end;
ясно.
а InternalGetRecord дёргает Seek файлового стрима?
25 окт 21, 15:10    [22387776]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3580
Мимопроходящий

а InternalGetRecord дёргает Seek файлового стрима?


Да. Задай все каверзные вопросы сразу :)
25 окт 21, 15:25    [22387792]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32886
IBExpert
Мимопроходящий

а InternalGetRecord дёргает Seek файлового стрима?
Да. Задай все каверзные вопросы сразу :)
я просто в целях обмена обмена опытом
у меня MMF, но оно ещё сырое.
тоже смотрел в сторону стрима.
25 окт 21, 15:32    [22387801]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
ggreggory
Member

Откуда:
Сообщений: 182
Dimitry Sibiryakov

ggreggory
Если бы ON EXTERNAL DATA SOURCE мог бы подключаться через ODBC к не-Firebird базам.

Возрадуйся: https://www.ibphoenix.com/products/software/magpie


Спасибо!

Мимопроходящий
IBExpert
пропущено...
Да. Задай все каверзные вопросы сразу :)
я просто в целях обмена обмена опытом
у меня MMF, но оно ещё сырое.
тоже смотрел в сторону стрима.


Может тогда уж проще переделать FibPlus на 64 бита ?
25 окт 21, 16:17    [22387848]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32886
ggreggory
Может тогда уж проще переделать FibPlus на 64 бита ?
и клиентов всех перевести.
ога.
25 окт 21, 16:18    [22387851]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3580
Мимопроходящий
я просто в целях обмена обмена опытом


А. Ну, если кому интересно, могу свой FIBDataset хоть сюда залить - там никаких секретных ноу-хау нет, только говнокод. Детца, Бузаджи и мой :)
25 окт 21, 16:21    [22387857]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
ggreggory
Member

Откуда:
Сообщений: 182
Мимопроходящий
ggreggory
Может тогда уж проще переделать FibPlus на 64 бита ?
и клиентов всех перевести.
ога.


Начать с тех, кому нужны гигабайтные датасеты на клиенте. Лиха беда начало!
25 окт 21, 16:22    [22387858]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
IBExpert> если кому интересно, могу свой FIBDataset хоть сюда залить

Давай.

Но он у тебя сильно давно разошёлся с официальной линией, увы.

Posted via ActualForum NNTP Server 1.5

25 окт 21, 16:23    [22387859]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
Ты гитхаб и т.п. не юзаешь? Мог бы там выложить.

Posted via ActualForum NNTP Server 1.5

25 окт 21, 16:24    [22387860]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
ggreggory
Member

Откуда:
Сообщений: 182
IBExpert


А. Ну, если кому интересно, могу свой FIBDataset хоть сюда залить - там никаких секретных ноу-хау нет, только говнокод. Детца, Бузаджи и мой :)


Было бы интересно!!!
25 окт 21, 16:24    [22387861]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3580
ggreggory

Может тогда уж проще переделать FibPlus на 64 бита ?


У меня они давно уже работают в 64-битном xIBEScript, и изменений в связи с этим там относительно немного. А вот выкатить 64-битный эксперт - это совсем другие трудозатраты.
25 окт 21, 16:24    [22387862]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32886
IBExpert
Мимопроходящий
я просто в целях обмена обмена опытом
А. Ну, если кому интересно, могу свой FIBDataset хоть сюда залить - там никаких секретных ноу-хау нет, только говнокод. Детца, Бузаджи и мой :)
давай. интересно ж.
только именно сюда вряд ли стоит, всё таки тыщ пять строк.
может на git ?
25 окт 21, 16:25    [22387863]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3580
Звиняйте, нет меня на гитхабах и иже с ними, да и zip никто не отменял.
И да, основа моих фибов фиг знает какой версии, они в то время еще некоммерческими были.

К сообщению приложен файл (FIBDataSet.zip - 35Kb) cкачать
25 окт 21, 16:32    [22387867]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32886
IBExpert
Звиняйте, нет меня на гитхабах и иже с ними, да и zip никто не отменял.
И да, основа моих фибов фиг знает какой версии, они в то время еще некоммерческими были.

Приложенный файл (FIBDataSet.zip - 35Kb)
Ок.
будем посмотреть.
спасибо.
25 окт 21, 16:37    [22387874]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63459
IBExpert> К сообщению приложен файл

Спасибо, будем посмотреть.

Posted via ActualForum NNTP Server 1.5

25 окт 21, 18:15    [22387955]     Ответить | Цитировать Сообщить модератору
 Re: Слишком долгое подключение и выполнение первого запроса.  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2653
IBExpert
Звиняйте, нет меня на гитхабах и иже с ними, да и zip никто не отменял.
И да, основа моих фибов фиг знает какой версии, они в то время еще некоммерческими были.

Скачал на мобильник. Если цивилизация погибнет - обращайтесь ко мне. :)
25 окт 21, 19:10    [22387986]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5      [все]
Все форумы / Firebird, InterBase Ответить