![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Движок базы данных
Анонимщик © (2004-02-02 17:19:00)
Кто подскажет движок базы данных, который бы позвоялял:
1. Хранить все данные в памяти.
2. Имел бы триггеры и хранимые процедуры.
3. Давал возможность накладывать первичные/вторичные индексы.
4. Не был блокировочником.
5. Позволял бы многопользовательский доступ, причем один экземпляр для чтения и записи, остальные - только для чтения.
Анонимщик (2004-02-03 14:34:00) [1]
Извини, а какой вариант лучше использовать:
Personal Edition
Single-User Edition
Multi-User Edition
Анонимщик (2004-02-03 14:33:00) [2]
Sir Alex
Спасибо большое, буду проверять.
Sir Alex (2004-02-03 13:21:00) [3]
2 Анонимщик © (03.02.04 12:53) [45]
В твоем случае больше всего подходит AbsDatabase, у него и SQL и in-memry tables и еще куча всего...
Не пробовал (т.е. не использовал в реальных проектах).
- kbm - Пробовал 2 года назад, непонравилась работа с фильтрами (если установить фильтр, то нельзя узнать сколько записей БД, и у пользователя в гриде скроллбар становился 3-state(3-и положения), что меня крайне удивило и я ее снес). Как она сейчас работает я не знаю.
- Apollo VCL - работает на основе DBF(FoxPro,Clipper, HiPerSix), использовал, если надо делать работу с DBF. требует наличие отдельных DLL.
Digitman (2004-02-03 13:04:00) [4]
> Анонимщик © (03.02.04 12:53) [45]
есть еще одно простейшее решение : реализуешь MIDAS-сервер, который будет монопольно работать с каким-нибудь готовым TMemoryTable, предоставлять через IAppServer интерфейс DataSetProvider"а и с пом. TMultiReadSingleWriteSyncronizer осуществлять нужный тебе арбитраж мультипоточных обращений к НД
доступ к твоему MIDAS-серверу сос стороны клиентских процессов осуществляешь обычным образом - через MidasConnection и ClientDataSet
Анонимщик (2004-02-03 12:53:00) [5]
Sir Alex
А сам не использовал? Впечатления можно услышать?
Анонимщик (2004-02-03 12:49:00) [6]
Romkin
Ну я же сказал, это хорошо, да только утомительно под каждый конкретный случай все это делать.
Sir Alex
Спасибо, щас.
Sir Alex (2004-02-03 12:46:00) [7]
>Анонимщик © (03.02.04 12:32) [41]
Посмотри:
- Absolute Database
- kbmMemTable (кажись так)
- Apollo VCL
Что-нить да подойдет...
Romkin (2004-02-03 12:45:00) [8]
TMultiReadSingleWriteSyncronizer + TList (TThreadList)
Анонимщик (2004-02-03 12:32:00) [9]
Digitman
Вот-вот, это уже лучше. TClientDataSet - самое то, но..., я уже пробовал когда-то использовать (для другой задачи), и пришел к выводу, что не так-то оно быстро да просто, хотя, конечно, нерешаемым вопрос назвать нельзя.
Ссылку бы на библиотеку, где бы к виртуальным методам были бы добавлены еще и кое-какие алгоритмы и структуры, а?
Digitman (2004-02-03 12:28:00) [10]
> Анонимщик © (03.02.04 12:18) [35]
ну единственное что можно предложить тебе - какой-нибудь TClientDataSet или TMemoryTable ... у их предков достаточно вирт.методов, с пом.которых осуществляется открытие НД, позиц-е и доступ к записи .. перекрыв некоторые из них и задействовав MMF и интерпроцессные сист.объекты синхронизации, ты сможешь добиться чего-то отдаленно похожего на то, что тебе требуется
Анонимщик (2004-02-03 12:27:00) [11]
asp
Не, оно такие объемы не тянет, проверено. Кроме того, ключи медленные. И потом, запросы не быстрые. Все из-за неоптимальных, видимо, алгоритмов поиска данных. То же самое на двоичных деревьях работате как нужно, но, как уже говорил, устану под каждый конкретный случай структуры городить.
asp (2004-02-03 12:24:00) [12]
Анонимщик © (03.02.04 12:18) [35]> Возможно, RxMemoryData.
Анонимщик (2004-02-03 12:22:00) [13]
Sandman25
Я еще с ума не сошел.
Обновлений записей в одной из таблиц.
Sandman25 (2004-02-03 12:19:00) [14]
но мне нужно 50-100 обновлений в секунду
О каких обновлениях речь? Обновление грида на экране?
Анонимщик (2004-02-03 12:18:00) [15]
Короче говоря, быстренько отвечаем о библиотеке.
Нет ответов - нет вопроса.
Если все, то всем спасибо.
Анонимщик (2004-02-03 12:16:00) [16]
asp
а если пользователь, наложивший блокировку аварийно вывалится?
На самом деле все подключения - из одной программы. Так что ничего страшного.
Boroda Oleg
Боюсь, не подойдет. Пробовал, но мне нужно 50-100 обновлений в секунду, скорость удалений некритична, их и нет, в общем. Вот на двоичных деревьях, списках и прочему скорость достаточна, но организовывать это в одно целое - сил моих нет, вот если бы уже библиотека была.
Ну, СУБД - не СУБД, это так действительно. Но мне эти данные после завершения приложения даром не нужны.
Digitman
Ни о чем я не забыл. Но требования более-менее гибкие. И, надеюсь, при гигабайте памяти 10 мегабайт не засвопятся никогда. Но это отдельный вопрос, конечно.
Danilka (2004-02-03 12:16:00) [17]
[32] asp © (03.02.04 12:08)
СУБД никак низя, ибо есть каприз - шоб обязательно не блокировочник и не версионник, и на винт писать тоже ничего низя ни в коем случае.
И пока автор ветки не объяснит, что за задача под такие бредовые условия, это останется всего-лишь капризом.
Вероятно, есть такие задачи, но я не могу себе их представить.
asp (2004-02-03 12:08:00) [18]
В продолжение темы.
В DB2, например, можно отключить своппинг NT дабы не получить двойной. Плюс своп можно разместить на неформатированную партицию, избавляясь от расходов на файловую систему.
Т. е. используя СУБД, даже в случае своппинга можно добиться лучших результатов. IMHO.
Digitman (2004-02-03 11:59:00) [19]
> Анонимщик © (02.02.04 17:59) [10]
> Чтоб на диск не писалось, вот и все
а про свопинг забыл ? система без твоего ведома примет решение, выкинуть ли редко используемые страницы ВАП в файл подкачки или не трогать до поры до времени ...
это ты как бы к дисковым операциям не относишь уже ? я правильно понимаю ?
Boroda Oleg (2004-02-03 11:54:00) [20]
Ну, еще как вариант, действительно создать виртуальный диск и разместить на нем базы в формате обычных DBF - индексы они потдерживают, да и SQL запросы всунуть можно, если завернуть доступ через BDE. Вот насчет тригеров - тут минус.
А вот что касаемо наличия таких СУБД - вероятность существования практически равна нулю. Принцип построения СУБД и ее первоочередная задача - сохранность данных, а о какой сохранности можно говорить если таблы в памяти :))