Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Существует ли нечто вроде СУБД в оперативной памяти  [new]
toypaul
Guest
Нужно для работы с локальным набором, в том числе, чтобы поддерживались команды SQL для работы с набором.
25 июн 02, 13:28    [35940]     Ответить | Цитировать Сообщить модератору
 Re: Существует ли нечто вроде СУБД в оперативной памяти  [new]
Garya
Guest
Можно в качестве буфера использовать MSDE или MDB-файл MS Access. Можно использовать возможности ADO (отключенные Recordset-ы или пакетное обновление). Проблема скорее всего вылезит там, где ее меньше всего ожидаешь увидеть. Подумай, что произойдет, если ты произвел операции, буферизованные на нескольких клиентах (например, на одном клиенте изменил запись, а на другом ее же удалил). Что должно произойти, когда твое приложение попытается синхронизировать эти изменения с сервером и наткнется на ошибку.
Это не такой простой вопрос, как кажется. Конечно же, можно настроить репликацию стандартными средствами. НО! MSDE имеет весьма ограниченные возможности репликации. Установка полноценного SQL-сервера (EE) на каждого клиента и настройка на каждом клиенте мехоназмов репликации - дело неблагодарное.
Даже если ты именно так и сделал, настроил репликацию с периодом синхронизации в 0,5 часа...

Приходит клиент. Ему выписывают накладную, счет-фактуру, оригинал счета, распечатывают, подпечатывают и подписывают. Он забирает все и уходит. Через полчаса выясняется, что в распечатанных документах содержались ошибки (например, ссылки на удаленные номенклатурные наименования), из-за чего данные документы не смогли сохраниться на сервере. А клиент-то уже ушел! Тю-тю!
И опять-таки это не главная проблема. Проблема в том, что ошибки репликации не обрабатываются приложением. Посему для того, чтобы узнать, что они имеют место, юзер должен обладать навыками DBA, чтобы иметь возможность залезть туда, куда нужно и посмотреть то, что нужно. А то ведь он запросто может и не узнать о том, что документы в базе данных не сохранились. И это еще не все!
Они могут и сохраниться! Но не полностью... Например, накладная, содержащая три товарных позиции, может сохраниться на сервере как содержащая две товарные позиции, поскольку по одной товарной позиции возникла ошибка.

Да нет, я не запугиваю. Просто, все эти проблемы придется решать самостоятельно таким образом, чтобы юзвери не закидали вас тухлыми помидорами. Попытка изобрести собственные механизмы репликации может повлечь существенные потери собственного рабочего времени.

P.S. Есть еще ADO.NET, в котором подобные вопросы решаются более изящно. Но вопросы обработки ошибок, возникающих, когда поезд уже ушел, остаются насущными и там.
25 июн 02, 14:30    [35955]     Ответить | Цитировать Сообщить модератору
 Re: Существует ли нечто вроде СУБД в оперативной памяти  [new]
toypaul
Guest
Нужно использовать именно в качестве локального буфера. В оффлайн. Никакой снхронизации с базой. Буфер нужен только для более расширенной обработки для построения отчетов. Конечно локальный ОДБЦ-источники рассматриваются как вариант. Просто мне кажется если бы был именно сабж, то это было бы быстрее.
25 июн 02, 17:37    [35998]     Ответить | Цитировать Сообщить модератору
 Re: Существует ли нечто вроде СУБД в оперативной памяти  [new]
kreek
Member

Откуда:
Сообщений: 72
Dataset in ADO.NET supports "Select ..."
27 янв 03, 02:41    [115061]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить