|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
asphixДоброго времени суток! Есть задача написать клиент-серверное CRUD-приложение (толстый клиент). Несколько удалённых офисов, ширина канала до сервера баз данных - (sic!) 128 кбит/с. Текущая поделка на Access 2007 безбожно тормозит. Посоветуйте что лучше использовать для реализации? Изначально планируется клиент на Delphi. Вопрос в выборе СУБД (MySQL, PostgreSQL, etc..) и в выборе технологии коннекта (ADO, FireDAC, etc..) Любоая клиент-серверная СУБД, плюс -- прямые руки. Технологии коннекта любые, они все некритически различаются, грубо говоря, все одинаковые. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 20:20 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
ОКТОГЕНmiksoftпропущено... Это почему же? пропущено... Почему? В MySQL есть хранимые процедуры. В хранимке очень удобно обрабатывать данные на сервере, не гоняя гигасы по сети. В mysql по сравнению с другими СУБД их нет. Любой конкурент уделает мыскль на раз. Та же птичка, к примеру. В MYSQL есть процедуры. Работают. Вполне сносный язык. Есть проблемы, но на новой разработке можно использовать последнюю версию MySQL, где всё более-менее починино. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 20:23 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
лично мне в процедурном языке mysql неудобно многое 1. Возврат набора данных через временные таблицы это извращение Там нету такого. SELECT просто идёт клиенту, всё ОК. 2. Обработка исключений крайне неудобная В последней версии всё сильно лучше. 3. Курсоры только явные, всяческие FOR SELECT сделать нельзя. Выход из курсоров тоже ужасен. Ну, это -- да. 4. Триггеры ущербные. Несколько триггеров на одно событие не повесишь. Нету универсальных триггеров на несколько событий. В BEFORE INSERT триггерах значение автоинкрементных полей по какой-то причине ещё не известно. А триггеры тут при чём? Ты о процедурах вообще, или о чём говоришь ? Триггеры к ним никак не относятся. Кроме того в самом SQL нету CTE, что сильно осложняет написание сложных запросов. По сравнению с CTE Devired tables сильно загромождает код. Нету рекурсивных запросов. Это всё брызги, не самое важное. Ну да, mySQL не лучшая субд, но всё же не такая уж и плохая. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 20:26 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
В определенных случаях логичней заюзать терминалы - трафик при этом я бы не сказал что большой. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 23:22 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
MasterZiv1. Возврат набора данных через временные таблицы это извращение Там нету такого. SELECT просто идёт клиенту, всё ОК. Это конечно. Если я могу получить данные простым SELECT, то зачем мне процедура? Я поясню что я имел ввиду. Допустим мне надо получить последовательность чисел от 1 до 10. На FB это выглядело бы следующим образом Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
никаких временных таблиц не нужно. В MySql ту последовательность от 1 до 10 мне бы пришлось сначала положить в таблицу а потом делать из неё SELECT внутри процедуры. Или я что-то не знаю? Теперь дальше на сколько я знаю единственный способ вызвать ХП в MySQL это использовать CALL CALL GEN_RANGE(1, 10) Ну ладно в приложении с этим нет проблем. А вот как использовать набор данных возвращаемой процедурой внутри другой процедуры? MasterZivА триггеры тут при чём? Ты о процедурах вообще, или о чём говоришь ? Триггеры к ним никак не относятся. конечно не относятся, но триггеры являются частью процедурного расширения языка SQL. Я говорю о процедурных расширениях вообще. MasterZivНу да, mySQL не лучшая субд, но всё же не такая уж и плохая. Кто спорит. Работать можно и работаем. Но раз уж речь зашла о процедурах, то по сравнению со многими другими СУБД тут всё плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 09:37 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Симонов ДенисВ MySql ту последовательность от 1 до 10 мне бы пришлось сначала положить в таблицу а потом делать из неё SELECT внутри процедуры.Для этого можно использовать любую имеющуюся таблицу. Да и таблица dual никуда не делась, хотя через нее неудобно. Симонов ДенисА вот как использовать набор данных возвращаемой процедурой внутри другой процедуры?Тут, увы, никак. Прямой возврат возможен только на клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 10:28 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Симонов Денис[Допустим мне надо получить последовательность чисел от 1 до 10. На FB это выглядело бы следующим образом Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Мощно. Сравните с постгресом. select generate_series(1,10) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 11:18 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Ivan Durak, то что PG для этого придумал встроенную функцию это понятно. Вопрос был не конкретно в генераторе чисел от 1 до 10. Это лишь пример когда процедура должна генерировать данные, которые не получаются из запроса. Алгоритм то может быть сложнее и совсем другой ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 11:41 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
asphix, -какие требования по работе приложения при пропадании канала. на минуту/час /день? -общий объем данных От этого очень зависит логика. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 11:44 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Нужно создавать локальные (региональные) БД и реплицировать по возможности. Вообще странное это ограничение... на телефонных модемах там сидите штоли... ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 12:14 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Кстати, оракл сжимает трафик sql*net, остальные рсубд тоже? Какие сжимают, какие - нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 13:19 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Беглый поиск дал: mssql server умеет сжимать только между своими инстансами, к клиенту не умеет; postgresql умеет только через openssl с какой-то версии, т.е. нужен именно ssl коннект. Что с остальными? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 13:27 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
xtenderКстати, оракл сжимает трафик sql*net, остальные рсубд тоже? Какие сжимают, какие - нет? Firebird 3.0 по умолчанию не сжимает, но это можно включить. По умолчанию не сжимает потому что в ЛВС это не имеет смысла, затраты на сжатие перекроют выигрыш от него. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 13:29 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
dvim, при пропадании канала всех собак вешают на сетевиков головного офиса и простой не критичен совсем. На это можно не ориентироваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 13:36 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
xtenderЧто с остальными? Firebird 3 сжимает zlib. Но против высокой латентности канала это бесполезно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 13:56 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Симонов Денис, глянул мельком - правильно я понимаю, что еще не зарелизили? это только в 3.0 RC2 пока? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 14:00 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
xtender, куда то ты не туда смотришь. Релиз вышел 19 апреля. http://www.firebirdsql.org/en/news/firebird-3-0-is-released/ ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 14:01 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, http://web.firebirdsql.org/download/prerelease/rlsnotes/Firebird-3.0.0_RC2-ReleaseNotes.pdf только в RC2? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 14:01 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Симонов Денис, 3.0 - да, но фичи этой там не обнаружил. Вижу только в RC2: 1. http://tracker.firebirdsql.org/browse/CORE-733 2. http://web.firebirdsql.org/download/prerelease/rlsnotes/Firebird-3.0.0_RC2-ReleaseNotes.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 14:02 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
xtenderСимонов Денис, 3.0 - да, но фичи этой там не обнаружил. Вижу только в RC2: 1. http://tracker.firebirdsql.org/browse/CORE-733 2. http://web.firebirdsql.org/download/prerelease/rlsnotes/Firebird-3.0.0_RC2-ReleaseNotes.pdf http://www.firebirdsql.org/file/documentation/release_notes/Firebird-3.0.0-ReleaseNotes.pdf - стр. 42. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 14:06 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
чччД, Спасибо, а то так далеко запрятали - я и в new features искал и в changes и в optimizations, а оно в new parameters ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 14:44 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Имхо, с т.зр. требовательности к плотности сетевого трафика - FireBird не самый лучший выбор. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 16:31 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
почему-то субъективно склоняюсь к postgre.. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 16:41 |
|
Выбор СУБД для медленного канала
|
|||
---|---|---|---|
#18+
Реляционную базу данных вообще бы не рекомендовал, ибо реляционная модель не заточена на минимизацию трафика. Тут варианта два, либо реляционка с серьезным кешированием данных на локалхосте вплоть до репликации данных между двумя БД (локальной и централизованой, со всеми вытекающими). либо документалка, способная прислать всю нужную информацию в одном джисоне. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:05 |
|
|
start [/forum/topic.php?fid=35&msg=39234307&tid=1552265]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 187ms |
0 / 0 |