Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Переход с MSAccess на локальном клиенте  [new]
GLocal
Member

Откуда: Москва
Сообщений: 34
Доброе время суток.

У нас на торговых точках (всего их порядка 40 штук) установлены локальные компы (нет никакой сети, просто комп сам по себе) с небольшой програмкой, которая собирает данные по продажам и в настоящий момент работает на MSAccess. После очередного глюка базы Access на одной из точек, в результате которого пропал изрядный кусок данных, возникла мысль перейти на что-нить более надежное. Машины на клиентах слабенькие (1.7 Celeron 256Mb). Соответственно вопрос - какой движок БД можно поставить на замену в данном случае?
29 сен 06, 22:29    [3205395]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
Paul Sacks
Member

Откуда:
Сообщений: 1105
При такой конфигурации можно запросто ставить MS SQL Server 2000. После его установки настройте бекапы и живите спокойно.
Желаю удачи.
ЗЫ. Есть и другие СУБД, но это мне ближе в плане администрирования.
29 сен 06, 23:07    [3205617]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
Alexander Starshinin
Guest
GLocal
Доброе время суток.

У нас на торговых точках (всего их порядка 40 штук) установлены локальные компы (нет никакой сети, просто комп сам по себе) с небольшой програмкой, которая собирает данные по продажам и в настоящий момент работает на MSAccess. После очередного глюка базы Access на одной из точек, в результате которого пропал изрядный кусок данных, возникла мысль перейти на что-нить более надежное. Машины на клиентах слабенькие (1.7 Celeron 256Mb). Соответственно вопрос - какой движок БД можно поставить на замену в данном случае?

-:)
В тему к предыдущему топику по поводу выбора БД. Берите Sybase Adaptive Server Anywhere (ASA) и не пожалеете:
1. Таблицы из Access переносите в ASA
2. В Accesse присоединяете таблицы ASA как внешние данные и Ваша программа в магазинах продолжает работать как ни в чем не бывало (ну или с минимальными доработками).
ASA на Ваших машинах будет прекрасно работать. Цена вопроса, если покупать лицензионный ASA, что-то около 580$ в однопользовательском варианте на каждую точку (сервер + клиент)
29 сен 06, 23:17    [3205666]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
GLocal
Member

Откуда: Москва
Сообщений: 34
Не думаю, что SQL Server будет хорошо тянуть на селероне 1.7 с 256 Мб оперативки. Возможно, я неясно выразился - эти 40 компов не объединены в сеть, они работают абсолютно независимо. Если там Access тормозит (вернее, начинает подтормаживать при разрастании базы - она там в пределах 100 Мб) - что ж будет если поставить 40 SQL серверов - нетрудно представить. Нужно именно легкое локальное решение.
29 сен 06, 23:17    [3205668]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67463
Блог
GLocal
Не думаю, что SQL Server будет хорошо тянуть на селероне 1.7 с 256 Мб оперативки.

Хм. Вообще-то у меня на чуть худшем компьютере Oracle вполне терпимо обсчитывал OLAP. Кубики, конечно, небольшие, но все же по сравнению с торговой точкой...
29 сен 06, 23:27    [3205702]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
Anton Demidov
Member

Откуда: Atlanta, GA
Сообщений: 1187
А у меня Оракл 8.1.6 в 2000м на двойном Pentium II 266, 160 Mb RAM крутился в продакшине. До 50ти одновременных сессий днём, по вечерам пересчет на пару часов ... Эх, было время ...
А сейчас кому-то и 1.7 Celeron 256Mb в персональное пользование мало.

--
Антон
Per rectum ad astrum
29 сен 06, 23:46    [3205771]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
ChA
Member

Откуда: Москва
Сообщений: 11378
GLocal
Не думаю, что SQL Server будет хорошо тянуть на селероне 1.7 с 256 Мб оперативки.
У меня MSSQL2K прекрасно себя чувствовал даже на Pentium-200/64MB c полугигабайтной БД. А до этого на Pentium-133/32MB, хотя БД были поменьше. Так что лучше не фантазировать, а смотреть на минимальные технические требования для конкретной СУБД, сравнивая с наличествующей техникой.
29 сен 06, 23:52    [3205789]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
GLocal
Member

Откуда: Москва
Сообщений: 34
Хорошо. Согласен, был неправ - 128 Мб Recomended для MS SQL Server. Можно будет попробовать. Одна загвоздка - бывает, что комп падает, и возникает необходимость быстрого переноса базы с винта упавшей машины на резервный комп. В MS Access решается просто копированием mdb-файла (если он выжил). А на SQL Server? Там, насколько я в курсе, просто копированием не получится. А процедуру переноса надо делать быстро - продажи идут! И backup не спасет - нельзя потерять ни единой записи о продажах.
30 сен 06, 01:20    [3206003]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
Запросто получится простым переносом двух файлов mdf и ldf
30 сен 06, 10:18    [3206229]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
GLocal
Member

Откуда: Москва
Сообщений: 34
А даст ли выигрыш в скорости и использовании ресурсов использование легкой версии MSDE? И какие ограничения там существенные для маленькой локальной версии?
30 сен 06, 13:37    [3206463]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
GLocal
А даст ли выигрыш в скорости

не мерял, но меньше не будет, а надежность возрастает на поряди
30 сен 06, 17:14    [3206671]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
ы
Guest
Cat2
GLocal
А даст ли выигрыш в скорости

не мерял, но меньше не будет, а надежность возрастает на поряди


Много-много раз уже говорили, что в однопользовательской задаче будет медленнее. Намного медленнее. По крайней мере, на большей части запросов.

И надежность выше ненамного станет, если не делать бэкапов, а "глюки базы" обусловлены "падением машины".

Чтобы не быть голословным:
Sub a()
  Dim t As Date
  Dim c As Integer
  t = Now
  CurrentDb.Execute "select 1 as f1 into t1"
  For c = 1 To 22
    CurrentDb.Execute "insert into t1 select * from t1"
  Next
  ' 4 миллиона записей
  Debug.Print (Now - t) * 24 * 60 * 60
  ' 12 cекунд
End Sub

Sub b()
  Dim t As Date
  Dim cn As ADODB.Connection
  Dim c As Integer
 
  Set cn = New ADODB.Connection
  cn.ConnectionString = "Provider=Microsoft.Access.OLEDB.10.0;" & _
          "Persist Security Info=True;Data Source=127.0.0.1;" & _
          "User ID=sa;Password=123;Initial Catalog=tempdb;" & _
          "Data Provider=SQLOLEDB.1"
  cn.Open
  t = Now
  cn.Execute "select 1 as f1 into t1"
  For c = 1 To 22
    cn.Execute "insert into t1 select * from t1"
  Next
  ' 4 миллиона записей
  Debug.Print (Now - t) * 24 * 60 * 60
  ' 92 cекунды
End Sub

Access 2003 SP2, MSDE 2000 SP4, Core 2 Duo T6400, 1Gb DDR2-800, SATA RAID-0
30 сен 06, 17:58    [3206712]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
ы
Guest
хотя 92 секунды, это он спросонья видать обалдел. На второй-четвертой перепопытке MSDE показывал результаты 22-24 секунды
30 сен 06, 18:02    [3206717]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
ы. 4 миллиона однострочных инсертов за 12 секунд в реальной базе требуют тщательного изучения правильности постановки задачи и скрупулезной проверки принятых програмных решений:). Я не утверждаю, что так не бывает. Датчики могут еще и не столько нагенерить!
Сомневаюсь, что для GLocal принципиально, выполняется ли такой инсерт за 12/4000000 или 94/4000000 секунды. А вот "горячий" бэкап еще ни кому не мешал.
================
Человек хочет соскочить с Access. Наиболее идеологически близкое решение - MS SQL
30 сен 06, 21:13    [3206866]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
ы
Guest
Cat2
ы. 4 миллиона однострочных инсертов за 12 секунд в реальной базе требуют тщательного изучения правильности постановки задачи и скрупулезной проверки принятых програмных решений:). Я не утверждаю, что так не бывает. Датчики могут еще и не столько нагенерить!
Сомневаюсь, что для GLocal принципиально, выполняется ли такой инсерт за 12/4000000 или 94/4000000 секунды. А вот "горячий" бэкап еще ни кому не мешал.
================
Человек хочет соскочить с Access. Наиболее идеологически близкое решение - MS SQL

Конечно, таких задач не бывает. 4млн записей в данном случае взяты, чтобы получить приемлимое время выполнения теста.

А поскольку у человека все лежит в mdb, и при переходе вряд ли будет переписываться клиентская часть в adp (хотя бы потому, что автор о ней не знает, а значет это весьма и весьма трудоемко для него будет), то работа будет через ODBC. А это еще на порядки замедлит все запросы.

Горячий бэкап для однопользовательской базы организовать - это вопрос десятка строк кода.

Скорее всего, причина не в акцессе, раз данные теряются. Его очень сложно заставить потерять записи.
30 сен 06, 21:19    [3206870]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
ы. Хорошо что Вы напомнили. Упустил из виду, что у автора топика однопользователская база. Но это болезнь роста. Рано или поздно она все равно станет многопользовательской. И лучше сразу это иметь в виду при проектировании.
30 сен 06, 22:02    [3206908]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
GLocal
Member

Откуда: Москва
Сообщений: 34
ы
А поскольку у человека все лежит в mdb, и при переходе вряд ли будет переписываться клиентская часть в adp (хотя бы потому, что автор о ней не знает, а значет это весьма и весьма трудоемко для него будет), то работа будет через ODBC. А это еще на порядки замедлит все запросы.

В mdb только данные, сама прога написана на Delphi, доступ через ADO, поэтому особых проблем с переходом на MS SQL Server нет, тем более что офисная часть как раз на нем и работает.
ы
Горячий бэкап для однопользовательской базы организовать - это вопрос десятка строк кода.

Горячий - это как?
ы
Скорее всего, причина не в акцессе, раз данные теряются. Его очень сложно заставить потерять записи.

Уж не знаю, в чем причина. Пару раз (за 3 года) случалось нарушение уникальности первичного ключа - хотите верьте, хотите нет, но в таблице с уникальным ключом по ID было 2 записи с одним ID.

Иногда бывают глюки с данными такого рода - скажем, программа по запросу
select .. from .. where .. 
данные получает и они есть, а если открыть mdb файл и просто открыть таблицу, то данных либо нет либо есть только часть. Такие и похожие ситуации решались операцией "Сжать и восстановить базу".

В последней ситуацией потери данных и моя вина тоже - не забакапил базу перед операцией "Сжать и восстановить". База была целая, сжималась ради профилактики, но в результате некоторые таблицы после "оптимизации" оказались пустыми. Такое случилось первый раз за историю моей работы с Access.

Плюс ситуация, которая случается достаточно часто. При завершении работы вечером необходимо выключать компьютер. Для этого в программе есть операция "конец дня", которая делает несколько операций на insert и update в базе и делает shutdown компа. Так вот, при последующем включении компа часто оказывается, что последние операции в базе не сохранились. Хотя в программе все закрываю, освобождаю и т.д. корректно. Чего только не пробовал - и кэш насильно виндовый сбрасывать, и базу открывать и закрывать снова - все равно ситуция случается. Единственное решение, которое помогает - задержка в порядка полминуты перед выключением.

Вот в связи с этими проблемами и хочу этот Access покинуть.
30 сен 06, 22:05    [3206914]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
ы

Конечно, таких задач не бывает.

Бывают :(. Служба мониторинга техпроцесса химзавода. Десятки тысяч датчиков. Не помню у кого, но у кого-то была подобная задача. Он решал ее накоплением данных на "промежуточных" серверах, а потом массово закачиывал на основной.
30 сен 06, 22:07    [3206916]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
GLocal
Member

Откуда: Москва
Сообщений: 34
Cat2
ы. Хорошо что Вы напомнили. Упустил из виду, что у автора топика однопользователская база. Но это болезнь роста. Рано или поздно она все равно станет многопользовательской. И лучше сразу это иметь в виду при проектировании.

Угу, вы правы, уже становится. Есть несколько точек (порядка 5) на которых организована сеть из 2-3х компов (кассовых мест не хватает). Работает все на том же Access, база зашарена по сети. Кстати, в этом плане глюков нет, просто не очень удобно работать по сравнению с SQL Server, который под многопользовательство заточен.
30 сен 06, 22:09    [3206918]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
bubucha
Member

Откуда:
Сообщений: 5681
автор
которая делает несколько операций на insert и update в базе и делает shutdown компа. Так вот, при последующем включении компа часто оказывается, что последние операции в базе не сохранились. Хотя в программе все закрываю, освобождаю и т.д. корректно

Честно говоря, это есть странно. И все открытые транзакции всегда закрываются ? Имхо, у вас не те объемы (100 мб) что бы так "глючило".
30 сен 06, 22:16    [3206922]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
GLocal
Member

Откуда: Москва
Сообщений: 34
bubucha
Честно говоря, это есть странно. И все открытые транзакции всегда закрываются ? Имхо, у вас не те объемы (100 мб) что бы так "глючило".

Угу, закрываются. И коннект тоже закрывается. И программа закрывается. Потом шатдаун. Комп включаешь - иногда самый последний запрос не прокатил, иногда два, три последних.. Только Sleep(30000) помогает наверняка.
30 сен 06, 22:23    [3206926]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
GLocal. "горячий" бэкап - это не совсем официальный термин. Означает возможность сделать бэкап базы без остановки работы клиентов.
30 сен 06, 22:28    [3206936]     Ответить | Цитировать Сообщить модератору
 Re: Переход с MSAccess на локальном клиенте  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
GLocal. Проблемы с Access я бы рекомендовал Вам обсудить на специализированном форуме этого сайта.

Судя по задаче, Вам подойдет ЛЮБОЙ sql-сервер.

Если у Вас возникнут вопросы по конкретным реализациям своих идей - задайте их в соответсвующих форумах.
============
Модератор:
Поэтому даннный топик закрыватся
30 сен 06, 22:47    [3206968]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить