Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5   вперед  Ctrl      все
 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]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5   вперед  Ctrl      все
Все форумы / Firebird, InterBase Ответить