![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть ли альтернатива Paradox'y? [D7, Paradox]
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]