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

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

Движок базы данных


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

Анонимщик ©   (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. Вот насчет тригеров - тут минус.

А вот что касаемо наличия таких СУБД - вероятность существования практически равна нулю. Принцип построения СУБД и ее первоочередная задача - сохранность данных, а о какой сохранности можно говорить если таблы в памяти :))


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

Наверх

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