|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Доброго времени суток! Есть задача написать клиент-серверное CRUD-приложение (толстый клиент). Несколько удалённых офисов, ширина канала до сервера баз данных - (sic!) 128 кбит/с. Текущая поделка на Access 2007 безбожно тормозит. Посоветуйте что лучше использовать для реализации? Изначально планируется клиент на Delphi. Вопрос в выборе СУБД (MySQL, PostgreSQL, etc..) и в выборе технологии коннекта (ADO, FireDAC, etc..) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 11:51 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
asphixПосоветуйте что лучше использовать для реализации? Проблема в том, что канал добавляет свою специфику. И одним выбором СУБД тут проблему не решить. Нужен ещё программист, который эту специфику понимает и способен подогнать под неё всю архитектуру приложения. PS: MySQL бери, ему хуже уже не будет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 12:15 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
А базы с репликацией вы не рассматривали? впрочем, тут все зависит от специфики работы... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 12:26 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
asphix, Тут, имхо, дело не столько в СУБД, сколько в специфике написания запросов. 1) Никаких SELECT * FROM mytable, выбирать только нужные поля и только нужные записи. 2) Минимизировать количество запросов. Тут вариантов множество. Мне, например, приходилось сериализовать записи из detail-таблицы и соединять с мастер-таблицей, чтобы все данные выбрать за один запрос, а не терзать СУБД потом сотней маленьких запросов к detail-таблице. Не переоткрывать датасеты по каждом чиху и т.д. Возможно, что-то кэшировать локально (в датасетах или даже в файлах). 3) Пункт, противоположный пункту 1. Выбирать (например, при старте приложения) в датасет небольшие неизменяемые таблицы и потом фильтровать их локально, без повторных обращений. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 12:38 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
miksoft, Спасибо за советы. Осталось понять, какие технологии (ADO, FireDAC, etc..) умеют кеширование в датасетах. Sergey Orlov, репликацию рассматриваю, проблема лишь в том, что в клиентских сегментах нет возможности доп. базы развернуть, кроме, разве что, sqlite.. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 13:24 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
asphixкакие технологии (ADO, FireDAC, etc..) умеют кеширование в датасетах.Любые, где вообще есть датасеты или их аналоги. Под кэшированием понималось использование датасетов для этих целей, а не какие-то специфические механизмы в них. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 13:55 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
asphixmiksoft, Спасибо за советы. Осталось понять, какие технологии (ADO, FireDAC, etc..) умеют кеширование в датасетах. Sergey Orlov, репликацию рассматриваю, проблема лишь в том, что в клиентских сегментах нет возможности доп. базы развернуть, кроме, разве что, sqlite.. А перейдите на веб, тогда вам пофиг будет канал, вам ведь не анимацию по нему гонять... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 14:01 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Sergey OrlovА перейдите на веб, тогда вам пофиг будет канал, вам ведь не анимацию по нему гонять...Там тоже есть своя специфика. Некоторые любят сотни КБ Javascript-a гонят :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 14:07 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
miksoftSergey OrlovА перейдите на веб, тогда вам пофиг будет канал, вам ведь не анимацию по нему гонять...Там тоже есть своя специфика. Некоторые любят сотни КБ Javascript-a гонят :) Программистов под php море... Хотя везде своя специфика... Кстати если уже есть программа под Аксесс, то ее тоже можно юзать с SQL-сервером, доработав конечно... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 15:49 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
asphixширина канала до сервера баз данных - (sic!) 128 кбит/с. Текущая поделка на Access 2007 безбожно тормозит. Посоветуйте что лучше использовать для реализации? Кроме "ширины" канала, есть еще latency (задержка). Приложение на Oracle Forms совершенно комфортно работало и на 32 kбит/с если маленькие задержки, но когда у одного пользователя был радио-канал 2 Mb/s с безумным разбросом задержек.... все, тушите свет. Как вариант можно попытаться рядом с сервером базы данных поднять терминальный сервер и запускать приложения на нем ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 16:46 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Кстати, без хранимых процедур не обойтись. Из бесплатных - mysql отпадает сразу именно по этой причине. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 17:27 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
ОКТОГЕНКстати, без хранимых процедур не обойтись.Это почему же? ОКТОГЕНИз бесплатных - mysql отпадает сразу именно по этой причине.Почему? В MySQL есть хранимые процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 17:30 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
miksoftОКТОГЕНКстати, без хранимых процедур не обойтись.Это почему же? ОКТОГЕНИз бесплатных - mysql отпадает сразу именно по этой причине.Почему? В MySQL есть хранимые процедуры. В хранимке очень удобно обрабатывать данные на сервере, не гоняя гигасы по сети. В mysql по сравнению с другими СУБД их нет. Любой конкурент уделает мыскль на раз. Та же птичка, к примеру. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 17:33 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
ОКТОГЕНВ хранимке очень удобно обрабатывать данные на сервере, не гоняя гигасы по сети.Это можно делать и без хранимых процедур. Простой SQL запрос тоже может "обрабатывать данные на сервере, не гоняя гигасы по сети". ОКТОГЕНВ mysql по сравнению с другими СУБД их нет. Любой конкурент уделает мыскль на раз.Обосновать можете? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 17:37 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Господа. Я может чего не понял, конечно. А терминалы здесь не помогут? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 17:39 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
ОКТОГЕНВ хранимке очень удобно обрабатывать данные на сервере, не гоняя гигасы по сети. То есть сначала кто-то, не подумав, загоняет необработанные данные в БД, а потом их там обрабатывает, так?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 17:40 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
leguoЯ может чего не понял, конечно. А терминалы здесь не помогут?Зависит от того, сколько будет одновременных сессий. Если одна-две, то помогут. Три-четыре - будет сильно некомфортно работать. Если более, то, имхо, вряд ли реально. Кроме того, непонятно, какие требования предъявляются к печати. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 17:47 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
miksoftЭто можно делать и без хранимых процедур. Простой SQL запрос тоже может "обрабатывать данные на сервере, не гоняя гигасы по сети". ОКТОГЕНВ mysql по сравнению с другими СУБД их нет. Любой конкурент уделает мыскль на раз.Обосновать можете? miksoftЭто можно делать и без хранимых процедур. Простой SQL запрос тоже может "обрабатывать данные на сервере, не гоняя гигасы по сети". Всё можно. Вопрос только в цене. То что вы на postgresql напишете за 10 минут, вы часами отлаживать будете. miksoftОбосновать можете? Что тут обосновывать? То что у mysql нет хранимок? Вы попробуйте хранимки того или иного сервера - поймёте. Ничего там прикольного нет, только ежли себя наказать не хотите. Там даже транзакций нормальных нет. Про репликацию не говрю. Если вам понадобятся нестандартные вещи - намаетесь, т.к. функционал по движкам размазан. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 17:50 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТо есть сначала кто-то, не подумав, загоняет необработанные данные в БД, а потом их там обрабатывает, так?.. Даже отчёты разные бывают. Например, сжатый график из данных вытащить. В этом классе задач не всегда один селект всё решит. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 17:54 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
ОКТОГЕНВсё можно. Вопрос только в цене. То что вы на postgresql напишете за 10 минут, вы часами отлаживать будете.А причем тут отладка (хотя и про нее неверно)? Изначальный Ваш тезис был "не обойтись". ОКТОГЕНЧто тут обосновывать? То что у mysql нет хранимок? Вы попробуйте хранимки того или иного сервера - поймёте.Пробовал не однократно. Для меня основная рабочая СУБД Оракл. Конечно, там возможности хранимок побогаче. Но не настолько, чтобы говорить, что в MySQL их нет. В MySQL нет анонимных процедур, но это почти полностью компенсируется тем, что там есть пользовательские переменные сессионного уровня. ОКТОГЕНТам даже транзакций нормальных нет.Есть. ОКТОГЕНПро репликацию не говрю.Репликации со своими особенностями, но тоже есть. ОКТОГЕНЕсли вам понадобятся нестандартные вещи - намаетесьЭто в любой СУБД так - как только понадобятся нестандартные для это СУБД вещи - намаетесь. Т.е. это тоже не аргумент. ОКТОГЕНфункционал по движкам размазан.Сейчас это не имеет сильного практического значения, т.к. по факту используется только один движок - InnoDB (или его потомки в форках). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 17:59 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
ОКТОГЕНДаже отчёты разные бывают. Например, сжатый график из данных вытащить. В этом классе задач не всегда один селект всё решит.В ряде случаев - да, хранимые процедуры сильно помогают. Но из этого никак не следует, что без них не обойтись. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 18:01 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
miksoft, лично мне в процедурном языке mysql неудобно многое 1. Возврат набора данных через временные таблицы это извращение 2. Обработка исключений крайне неудобная 3. Курсоры только явные, всяческие FOR SELECT сделать нельзя. Выход из курсоров тоже ужасен. 4. Триггеры ущербные. Несколько триггеров на одно событие не повесишь. Нету универсальных триггеров на несколько событий. В BEFORE INSERT триггерах значение автоинкрементных полей по какой-то причине ещё не известно. Кроме того в самом SQL нету CTE, что сильно осложняет написание сложных запросов. По сравнению с CTE Devired tables сильно загромождает код. Нету рекурсивных запросов. С остальным мириться можно, даже не совсем стандартным SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 18:09 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
miksoft В ряде случаев - да, хранимые процедуры сильно помогают. Но из этого никак не следует, что без них не обойтись. А зачем без них обходиться, если можно не обходиться? Тем более что и по лицензиям mysql как минимум - конкуренты ей не уступают. Автор темы вообще может всю логику обработки на SQL сервер вытащить, а в качестве клиента тот же либр офис задолбить. Да и майкрософт можно оставить. Чисто как оболочку для вызова хранимок. Поставить одбц и погнали. Почему нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 18:24 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Симонов Денис1. Возврат набора данных через временные таблицы это извращениеЕсли возврат на клиента, то процедура может сама возвращать набор записей. И даже несколько наборов. В целом - да, таковые недостатки есть. Но имеют ли они существенное значение в задаче топикстартера - не уверен. Тут уже недостаточно информации от него. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 18:25 |
|
|
start [/forum/topic.php?fid=35&msg=39233391&tid=1552265]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
160ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 241ms |
total: | 509ms |
0 / 0 |