Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
 Re: Перевод проекта с IBX на FireDAC  [new]
s62
Member

Откуда: Жуковский
Сообщений: 1504
Наталья87
ну и еще базы периодически повреждаются при отключении света
Наталья, а что, источника бесперебойного питания (UPS) нет на компьютере (p.s. правильнее наверное написать - для компьютера), на котором БД?

Сообщение было отредактировано: 14 ноя 21, 14:35
14 ноя 21, 14:34    [22395833]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Dimitry Sibiryakov
Member

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

Наталья87
Не буду переходить с IBX на FireDAC, оно того не стоит. Тем более по методу от
Dimitry Sibiryakov. Лучше не тратить на это время, а сам проект развивать, там
непаханое поле.

С Вашей любовью к обёрткам имеет смысл переходить на прямое использование
Firebird API. Вот там выигрыш может быть заметным.

Posted via ActualForum NNTP Server 1.5

14 ноя 21, 14:48    [22395841]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4936
Vlad F
YuRock,

При отсутствии конкурирующих транзакций, запускаемых вслед за текущей активной, длительность ее активности не играет никакой деструктивной роли.))
Сборщик мусора, запустившись, не будет ничего делать для транзакций с номером больше первой активноф. Это уже очень деструктивная роль.
14 ноя 21, 14:57    [22395843]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Dimitry Sibiryakov
Member

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

Самое деструктивное для Firebird - идиоты, путающие Garbage Collector и Sweep.

Posted via ActualForum NNTP Server 1.5

14 ноя 21, 14:59    [22395845]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4936
Наталья87
За всё время работы из всех недостатков только два обнаружила - снижение скорости работы со временем, по этой причине необходимость периодически делать backup&restore
Понятно.
Так "работать" возможно, пока у вас маленькая база. Впрочем, возможно, она у вас будет и оставаться маленькой.
14 ноя 21, 15:01    [22395846]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4936
Dimitry Sibiryakov
Самое деструктивное для Firebird - идиоты, путающие Garbage Collector и Sweep.
Да от этого он аж загибается.
14 ноя 21, 15:03    [22395848]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 13358
Dimitry Sibiryakov
С Вашей любовью к обёрткам имеет смысл переходить на прямое использование Firebird API. Вот там выигрыш может быть заметным.
Ты уверен, что ТС осилит реализацию TDataSet?
14 ноя 21, 16:39    [22395878]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Dimitry Sibiryakov
Member

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

_Vasilisk_
Ты уверен, что ТС осилит реализацию TDataSet?

Ты бы видел что она творила пытаясь заставить кнопки быть зелёными и отображать
русский интерфейс на винде без поддержки русского языка... По сравнению с этим,
TDataSet - сущая мелочь. В любом случае уже в этом топике она была готова его
реализовать как мост к ФайерДаку.

Posted via ActualForum NNTP Server 1.5

14 ноя 21, 16:53    [22395886]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Наталья87
Member

Откуда:
Сообщений: 114
s62
Наталья87
ну и еще базы периодически повреждаются при отключении света
Наталья, а что, источника бесперебойного питания (UPS) нет на компьютере (p.s. правильнее наверное написать - для компьютера), на котором БД?


Ну там где есть - очевидно, не повреждаются. Но пользователей сотни у кого есть, у кого нет. В 90% случаях gbak-ом восстанавливаются из автоматических резервных копий с потерей пары дней работы. В оставшихся 10% случаях (когда все так плохо и настолько повреждено, что даже автоматические резервные копии уже долго не делались или умер диск вместе с базой и с резервными копиями) - как правило, проще начать с нуля, тк восстановление экспертами с IBExpert или разными сургеонами выйдет в круглую сумму.
14 ноя 21, 19:23    [22395941]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2656
Dimitry Sibiryakov> TDataSet - сущая мелочь. В любом случае уже в этом топике она была готова его реализовать как мост к ФайерДаку.

Уверенность в готовности - не есть готовность.
14 ноя 21, 19:24    [22395942]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Наталья87
Member

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

отображать русский интерфейс на винде без поддержки русского языка...


Ну тут все-таки переход на юникодную Delphi лучше, чем насиловать Delphi 2007. На Delphi 2007 все эти костыли всё равно через раз работают и по-нормальному как на юникодной Delphi все равно не будет.
14 ноя 21, 19:26    [22395943]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Наталья87
Member

Откуда:
Сообщений: 114
_Vasilisk_
Dimitry Sibiryakov
С Вашей любовью к обёрткам имеет смысл переходить на прямое использование Firebird API. Вот там выигрыш может быть заметным.
Ты уверен, что ТС осилит реализацию TDataSet?


Скорее всего, нет. Т. к. смотрю, скажем, в DB.pas, читаю и вижу фигу. Чужой код вообще плохо читается. Хотя была идея работать напрямую с базой на сервере (через gds32.dll) и создать что-то на базе TTcpSocket чтобы сделать что-то типа своего сервера, который бы обращался к Firebird. Но теперь думаю, что скорее всего оно того не стоит, быстрее чем IBSQL (а не IBQuery, который не нужно использовать) не будет.

В FireDAC кстати правильно настроенный аналог IBQuery (TFdQuery) работает примерно с той же скоростью, что IBSQL в IBX. Оттого и кажется что гриды на FireDAC могли бы быстрее отображаться (тк сравнивать надо не TFdQuery и IBSQL, а TFdQuery и TIBQuery). А в IBX - конечно есть IBSQL - но DataSource и гриды ведь всё равно требуют медленный TIBQuery.
14 ноя 21, 19:36    [22395946]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63461
Наталья87> Ну тут все-таки переход на юникодную
Наталья87> лучше, чем насиловать Delphi 2007.

Да не может такого быть! Неужели?

Posted via ActualForum NNTP Server 1.5

14 ноя 21, 19:39    [22395947]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Сергей Фролов
Member

Откуда:
Сообщений: 1608
Народ, вы ж самого главного не увидели за все 4 страницы и за почти 3 дня.

Наталья87
Проблема в том, что медленно работает при подключении к базам данных через Интернет-соединение.

Не важно что там из DAC используется, проблема в том, что Firebird не умеет через Интернет. Ни по скорости, ни по отсутствию шифрования. И рефакторинг делай/не делай не поможет увеличению скорости. Во всяком случае заметному.
14 ноя 21, 21:27    [22395972]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Vlad F
Member

Откуда:
Сообщений: 1451
Сергей Фролов,

Мы все сразу увидели, ты из контекста не вырывай. Приведи ее полностью, в части сравнения в этом плане IBX и FireDAC.

Сообщение было отредактировано: 14 ноя 21, 22:04
14 ноя 21, 21:59    [22395982]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Dimitry Sibiryakov
Member

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

Сергей Фролов
проблема в том, что Firebird не умеет через Интернет. Ни по скорости, ни по
отсутствию шифрования.

Умеет. И по скорости, и по шифрованию. Загвоздка только в прокладке неподходящей
конфигурации.

Posted via ActualForum NNTP Server 1.5

14 ноя 21, 23:06    [22396002]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Наталья87
Member

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

Сергей Фролов
проблема в том, что Firebird не умеет через Интернет. Ни по скорости, ни по
отсутствию шифрования.

Умеет. И по скорости, и по шифрованию. Загвоздка только в прокладке неподходящей
конфигурации.


И даже умеет работать при нестабильном коннекте? Ну это - когда у клиента "интернет работает, сайты открываются", но пакеты теряются и TIBDatabase, TIBTransaction, TIBQuery и прочее глючит?
14 ноя 21, 23:23    [22396003]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Dimitry Sibiryakov
Member

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

Наталья87
Ну это - когда у клиента "интернет работает, сайты открываются", но пакеты
теряются и TIBDatabase, TIBTransaction, TIBQuery и прочее глючит?

"Фантастика в соседнем отделе". В TCP пакеты теряться не могут. Их потеря
приводит к разрыву соединения и с этим ни один stateful протокол не справится по
определению.

Зря Вы не стали писать свой собственный сокет-сервер. Получили бы неоценимый опыт.

Posted via ActualForum NNTP Server 1.5

14 ноя 21, 23:26    [22396004]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Наталья87
Member

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

Наталья87
Ну это - когда у клиента "интернет работает, сайты открываются", но пакеты
теряются и TIBDatabase, TIBTransaction, TIBQuery и прочее глючит?

"Фантастика в соседнем отделе". В TCP пакеты теряться не могут. Их потеря
приводит к разрыву соединения и с этим ни один stateful протокол не справится по
определению.

Зря Вы не стали писать свой собственный сокет-сервер. Получили бы неоценимый опыт.


Да - но попробуй это объясни пользователям. Они говорят "интернет есть", а когда им говоришь про необходимость непрерывного бесперебойного соединения для клиент-серверных программ - считают, что им голову морочат ведь сбербанк онлайн, видеосистемы, тимвивер и прочее работают.
15 ноя 21, 00:30    [22396007]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2656
Наталья87
медленно работает


Наталья87
скорость его работы существенно возрастёт


Наталья87
Всё работает действительно быстрее.


Наталья87
всё работает быстрее



Наталья87
быстрее отображаются

Наталья87
А если не быстрее - зачем тогда он нужен вообще этот

...
Оптимизатор вернулся?
Возможно, сменив пол (но это не точно).
15 ноя 21, 00:53    [22396009]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Gluck99
Member

Откуда: Оттуда
Сообщений: 1191
Наталья87
И даже умеет работать при нестабильном коннекте? Ну это - когда у клиента "интернет работает, сайты открываются", но пакеты теряются и TIBDatabase, TIBTransaction, TIBQuery и прочее глючит?
При "нестабильном коннекте" надо обращаться к сисадмину, чтобы он починил сеть. Если сисадмин отвечает, что "всё в порядке, яндекс открывается" - уволить некомпетентного сисадмина и взять компетентного, чтобы он привёл сеть в порядок.
15 ноя 21, 02:20    [22396013]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Наталья87
Member

Откуда:
Сообщений: 114
Просто Вы масштабы проблемы видимо не поняли. При локальном коннекте и даже при сетевом всё работает нормально. Но стоит только сделать подключение к базе через Интернет (используя какой нибудь Хамачи). Хорошо если проводной Интернет, а не какой-нибудь 3G/4G. То всё начинает жутко тормозить. Пинг между компьютерами может быть всего 50 миллисекунд. Но при этом каждое обращение к базе может занимать 200 миллисекунд. Обращений таких при открытии разделов множество и не надо говорить про потоки, это поможет разве что добавить глюков в программу. А при выполнении операций еще больше (там запросов туда-сюда гоняется очень много и всё последовательно). Надо, конечно, оптимизировать всё и возможно, всё переписывать - но это в идеальном мире. Знаю и видела на прошлой работе, что в 1С для этого придумали что то типа &НаСервере, &НаКлиенте (правда с этими &НаСервере башку можно сломать). А по итогу разделы открываются по 5 секунд, а разные операции могут занимать и по 30 секунд - при пинге через черную командную строку в 50 мс. Притом что при подключении по Team Viewer или через RDP если работать с базой локально или в локальной сети всё практически мгновенно. Ускорить бы этот неоптимальный код раза в 2 просто переходом с IBX на FireDAC но похоже, что это не спасёт. А так делать, конечно, мне нечего как оптимизировать код ради оптимизации.

Сообщение было отредактировано: 15 ноя 21, 02:29
15 ноя 21, 02:28    [22396014]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
Наталья87
Member

Откуда:
Сообщений: 114
Gluck99
Наталья87
И даже умеет работать при нестабильном коннекте? Ну это - когда у клиента "интернет работает, сайты открываются", но пакеты теряются и TIBDatabase, TIBTransaction, TIBQuery и прочее глючит?
При "нестабильном коннекте" надо обращаться к сисадмину, чтобы он починил сеть. Если сисадмин отвечает, что "всё в порядке, яндекс открывается" - уволить некомпетентного сисадмина и взять компетентного, чтобы он привёл сеть в порядок.


Так в локальной сети же всё нормально. Проблемы если подключаться к базе через Интернет. И не каждый админ возьмется такое настроить.
15 ноя 21, 02:30    [22396015]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2656
Наталья87
проводной Интернет...Пинг ... всего 50 миллисекунд.

Наталья87
Так в локальной сети же всё нормально.

В локальной сети - пинг тоже "всего" 50 мс?
15 ноя 21, 02:40    [22396016]     Ответить | Цитировать Сообщить модератору
 Re: Перевод проекта с IBX на FireDAC  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4936
Наталья87
Просто Вы масштабы проблемы видимо не поняли. При локальном коннекте и даже при сетевом всё работает нормально. Но стоит только сделать подключение к базе через Интернет (используя какой нибудь Хамачи). Хорошо если проводной Интернет, а не какой-нибудь 3G/4G. То всё начинает жутко тормозить. Пинг между компьютерами может быть всего 50 миллисекунд. Но при этом каждое обращение к базе может занимать 200 миллисекунд. Обращений таких при открытии разделов множество и не надо говорить про потоки, это поможет разве что добавить глюков в программу. А при выполнении операций еще больше (там запросов туда-сюда гоняется очень много и всё последовательно). Надо, конечно, оптимизировать всё и возможно, всё переписывать - но это в идеальном мире. Знаю и видела на прошлой работе, что в 1С для этого придумали что то типа &НаСервере, &НаКлиенте (правда с этими &НаСервере башку можно сломать). А по итогу разделы открываются по 5 секунд, а разные операции могут занимать и по 30 секунд - при пинге через черную командную строку в 50 мс. Притом что при подключении по Team Viewer или через RDP если работать с базой локально или в локальной сети всё практически мгновенно. Ускорить бы этот неоптимальный код раза в 2 просто переходом с IBX на FireDAC но похоже, что это не спасёт. А так делать, конечно, мне нечего как оптимизировать код ради оптимизации.
Чтобы нормально работать на 3G, надо переходить на HTTP. Протокол Firebird для этого слабо подходит.
15 ноя 21, 02:52    [22396017]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / Delphi Ответить