Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Есть ли альтернатива Paradox'y? [D7, Paradox]


Страницы:   1 2 3

vlad2 ©   (2007-01-16 14:39:00) 

Очень насущная для нас проблема. несколько лет работает сложный вычислительный комплекс на основе СУБД Paradox + BDE. В течение года становится всё больше глюков, работа всё больше становится ненадёжной. Консультации и анализ показал, что проблема в ненадёжности давно уже неподдерживаемого Парадокса.

Условия работы: несколько таблиц уже по 300-500 тыс.записей и множество небольшых (по нескольку тыс. записей) таблиц. Работают 2-3 пользователя одновременно. Работа заключается в интенсивном поискенужных записей (по значению полей) в упорядоченныхпо ключу таблицах, навигация по ним и модификацияэтих упорядоченных таблиц. Используются компоненты TQuery и TTable (здесь есть очень удобные и эффективные методы, такие, например, как FindNearest и BatchMove). Paradox + BDE обеспечивают высокую, устраивающую нас - это очень важно - производительность. Проблема только в нестабильной и ненадёжной работе Парадокса, что стало уже критичным.

К большому сожалению, переход на клиент-серверные СУБД (например, Oracle) нас не спасёт, т.к. при всей супернадёжности работы и "бесплатного" обеспечения совместного доступа, они не обеспечивают необходимого быстродействия в условиях нашей конкретной работы (например, тест с использованием Oracle + компоненты прямого доступа работает до 30 раз медленнее, чем тот же тест на Paradox + BDE, конечно при идентичных начальных условиях и полном совпадении результатов в обоих случаях) из-за отсутствия поддержки двунаправленных курсоров, поэтому на каждый "чих" таблица, по определению упорядочивается заново.

Вопрос такой (самый тяжёлый): существуют ли СУБД, подобные Парадоксу с набором удобных методов и компонент, не уступающие  ему по быстродействию, но надёжно работающие в условиях совметного (для 2-5 пользователей) доступа с учётом конкретной специфики нашей работы, кратко описанной во 2 абзаце? Есть ли сейчас надёжные сетевые СУБД под Windows?
Может быть, кто-то сталкивался с такими проблемами и с подобной (скорее, нетрадиционной для баз данных) спецификой работы?
Спасибо.


alex_***   (2007-01-17 14:27:00) [21]


> Быстро , гораздо быстрее Оракла на живой таблице

Я думаю с этим у вас и проблемы :) Особенности быстрой работы парадокса на живых таблицах...
хотя я сомневаюсь что нормально настроенный Оракле на будет проигрывать парадоксу.

и что понимается под "перестройкой" таблиц


Sergey13   (2007-01-17 14:26:00) [22]

> [35] vlad2   (17.01.07 14:23)
> По скорости ADO+MSAccess насколько будет (или не будет)
> уступать BDE+Paradox?
Бывает, что горбатый запорожец легко обходит 600-го мерина. Особенно если последний припаркован. 8-)


Sergey13   (2007-01-17 14:24:00) [23]

> [34] tesseract ©   (17.01.07 14:12)
> В некоторых случаях побыстрее однофайловых.
Засчет чего? Что-то сомнительно мне.


vlad2   (2007-01-17 14:23:00) [24]

sniknik ©   (17.01.07 13:13) [25]

> это самое близкое по идеологии (есть режим аналогичный файл серверному), очень надежное, но с ограничением на размер.

А какие в MSAccess ограничения на размер?
Обеспечивается ли там совместный доступ автоматически (как в Оракле), чтобы я не заботился об этом при программировании?
По скорости ADO+MSAccess насколько будет (или не будет) уступать BDE+Paradox?


tesseract   (2007-01-17 14:12:00) [25]


> А у кого они объемные? Я только у Оракла знаю такую возможность.


Имеються в виду *.dbf , а не одним файлом. В некоторых случаях побыстрее однофайловых.


alex_***   (2007-01-17 14:09:00) [26]


> Вот маленький и самый простой частный пример работы программы.
>  Из таблицы вырезается фрагмент с учётом значений каких-
> то полей (select ... where ...), полученная таблица (вырезанный
> фрагмент) упорядочивается (order by ...), а потом просто
> выбираются записи, скажем, по номерам (положению в этой
> таблице), например, 10-я, 11-я, 12-я, ... Но в промежутках
> между этими выборками эта же таблица модифицируется (добавление,
>  удаление, редакция записей). Понятно, что результат выборки
> может отличаться от того, что был бы в случае неизменной
> таблицы. Парадокс очень легко, просто и быстро проделывает
> эти манипуляции на живой таблице. Ораклу же нужно каждый
> раз перестраивать эту таблицу, чтобы взялась нужная запись.
>  В этом одна из проблем клиент-серверных СУБД применительно
> к нашей конкретной задаче.

не совсем ясна цель, но в нормальных СУБД это делается одним запросом. Уровень изоляции задается отдельно при необходимости. При настроенных индексах и записях ~ 10-50К работает весьма шустро.


Sergey13   (2007-01-17 14:09:00) [27]

> [31] tesseract ©   (17.01.07 13:48)

> У ней таблицы плоские.

А у кого они объемные? Я только у Оракла знаю такую возможность.


tesseract   (2007-01-17 13:48:00) [28]


> чтото я сомневаюсь что у них логика аналогична работе с
> парадоксом


У ней таблицы плоские. Т.Е чем-то логика да похожа.


sniknik   (2007-01-17 13:45:00) [29]

> с успехом держит до 5 одновременных сессий
5 сессий на стресс тестировании, таком, что никак в реальных условиях достичь не возможно.
в реальности нагрузки обычно поменьше, у меня программа работает и с 16 (менеджеры уроды расстарались), и вроде претензий нет (я правда заранее открестился, типа если рассчитано на 3... то выше на ваш страх и риск, но они бы все одно приперлись если бы случилось чего)

хотя я то как раз с аксессом работаю в нормальном(имхо ;) клиент серверном режиме (не очень много логики тогда стыковать для mssql)... как оно было бы еслибы делалось аналогом файл серв. х.з.

> http://www.codebase.com/products/windows/
чтото я сомневаюсь что у них логика аналогична работе с парадоксом, скорее она клиент серверная и для сети и для локального использования (как и у аксесс в нормальном режиме, или у персонал файребирд) а это значит, что не подойдет оно ему...


vlad2   (2007-01-17 13:41:00) [30]

evvcom ©   (17.01.07 12:53) [23]
> Тогда сначала объясни какработает Парадокс
Быстро, гораздо быстрее Оракла на живойтаблице (см. vlad2   (16.01.07 18:28) [16]). Почемуон такработает, не знаю, не уверен, что нужно так глубоко в это вникать, если не собираешься сам писать СУБД. Хотелось бы найти готовое решение типа Парадокса.


tesseract   (2007-01-17 13:34:00) [31]


> существует ли СУБД, работающая так же как Парадокс и отличающаяся
> от него только высокой надёжностью?


http://www.codebase.com/products/windows/


Sergey13   (2007-01-17 13:18:00) [32]

> [22] vlad2   (17.01.07 12:38)

Твоя основная проблема это

> Работают 2-3 пользователя одновременно.

Это значит сеть и конфликты пользователей. Любая замена на аналогичную файл-серверную СУБД сможет лишь отодвинуть решение ваших проблем. Тут многие (очень авторитетные, например sniknik) говорил, что тот-же Аксес с успехом держит до 5 одновременных сессий. Но развивать это все равно не имеет смысла, ИМХО.
Если просто подсунуть (например) ФБ-сервер через БДЕ вместо парадокса, уже будет как минимум надежность. Я не думаю, что сетевые пользователи много проиграют в производительности. Но зато возможна достаточно быстрая адаптация к новой СУБД без значительных переделок приложения. После можно уже настраивать узкие места переделкой логики.
Конечно этот путь все равно здорово попахиает времянкой (уже использование БДЕ чего стоит). Но может быть и стоит попробовать.
Хотя я бы наверное стал полностью переделывать.


DrPass   (2007-01-17 13:18:00) [33]


> Если это невозможно, то, конечно, придётся переходить на
> клиент-серверную базу

Придется, увы


sniknik   (2007-01-17 13:13:00) [34]

> что ADO+MSAccess нас не спасёт.
это самое близкое по идеологии (есть режим аналогичный файл серверному), очень надежное, но с ограничением на размер.

т.е. делаем вывод, вас ничто не спасет... ну, т.к. переход "...повлечёт громадные трудовые и временные затраты..."


Сергей М.   (2007-01-17 13:10:00) [35]


> vlad2


Ни одна файл-серверная СУБД в условиях многопользовательского доступа не даст гарантий 100%-й надежности, особенно если БД находится не на полноценном сетевом файловом сервере.


evvcom   (2007-01-17 12:53:00) [36]

> [22] vlad2   (17.01.07 12:38)
> работающая так же как Парадокс

Тогда сначала объясни какработает Парадокс в твоем понимании. Но, думаю, в любом случае ответ будет НЕТ.


vlad2   (2007-01-17 12:38:00) [37]

Спасибо участникам обсуждения.
В своём постинге (vlad2   (16.01.07 18:28) [16]) я попытался на примере показать проблему. Смысл моего вопроса во в чём: существует ли СУБД, работающая так же как Парадокс и отличающаяся от него только высокой надёжностью? Т.е. можно ли просто заменить Парадокс на другую СУБД, не меняя идеологии(логики) построения программного комплекса? Если это невозможно, то, конечно, придётся переходить на клиент-серверную базу (например, Оракл), но это потребует по сути перепроектирования нашего комплекса, т.е изменения идеологии и логики работы, что повлечёт громадные трудовые и временные затраты из-за большого объёма задач.
Наши специалисты (не самые плохие :) и знакомые с требованиями к нашим задачам) говорят, что ADO+MSAccess нас не спасёт.


Sergey13   (2007-01-17 10:22:00) [38]

> [20] Виталий Панасенко ©   (17.01.07 10:18)

Да программист им нужен, способный перевести прикладу с файл-сервера на клиент-сервер.


Виталий Панасенко   (2007-01-17 10:18:00) [39]

А вообще, я так и не понял смысл задачи...


Виталий Панасенко   (2007-01-17 10:01:00) [40]

Можете попробовать ADO+MSAccess
Я не повторяюсь.. Я не повторяюсь.. Я не повторяюсь..
> Виталий Панасенко ©   (16.01.07 16:06) [6]


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо