Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Переход с MSAccess на локальном клиенте / 23 сообщений из 23, страница 1 из 1
29.09.2006, 22:29
    #34023615
GLocal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
Доброе время суток.

У нас на торговых точках (всего их порядка 40 штук) установлены локальные компы (нет никакой сети, просто комп сам по себе) с небольшой програмкой, которая собирает данные по продажам и в настоящий момент работает на MSAccess. После очередного глюка базы Access на одной из точек, в результате которого пропал изрядный кусок данных, возникла мысль перейти на что-нить более надежное. Машины на клиентах слабенькие (1.7 Celeron 256Mb). Соответственно вопрос - какой движок БД можно поставить на замену в данном случае?
...
Рейтинг: 0 / 0
29.09.2006, 23:07
    #34023645
Paul Sacks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
При такой конфигурации можно запросто ставить MS SQL Server 2000. После его установки настройте бекапы и живите спокойно.
Желаю удачи.
ЗЫ. Есть и другие СУБД, но это мне ближе в плане администрирования.
...
Рейтинг: 0 / 0
29.09.2006, 23:17
    #34023652
Переход с MSAccess на локальном клиенте
GLocalДоброе время суток.

У нас на торговых точках (всего их порядка 40 штук) установлены локальные компы (нет никакой сети, просто комп сам по себе) с небольшой програмкой, которая собирает данные по продажам и в настоящий момент работает на MSAccess. После очередного глюка базы Access на одной из точек, в результате которого пропал изрядный кусок данных, возникла мысль перейти на что-нить более надежное. Машины на клиентах слабенькие (1.7 Celeron 256Mb). Соответственно вопрос - какой движок БД можно поставить на замену в данном случае?
-:)
В тему к предыдущему топику по поводу выбора БД. Берите Sybase Adaptive Server Anywhere (ASA) и не пожалеете:
1. Таблицы из Access переносите в ASA
2. В Accesse присоединяете таблицы ASA как внешние данные и Ваша программа в магазинах продолжает работать как ни в чем не бывало (ну или с минимальными доработками).
ASA на Ваших машинах будет прекрасно работать. Цена вопроса, если покупать лицензионный ASA, что-то около 580$ в однопользовательском варианте на каждую точку (сервер + клиент)
...
Рейтинг: 0 / 0
29.09.2006, 23:17
    #34023654
GLocal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
Не думаю, что SQL Server будет хорошо тянуть на селероне 1.7 с 256 Мб оперативки. Возможно, я неясно выразился - эти 40 компов не объединены в сеть, они работают абсолютно независимо. Если там Access тормозит (вернее, начинает подтормаживать при разрастании базы - она там в пределах 100 Мб) - что ж будет если поставить 40 SQL серверов - нетрудно представить. Нужно именно легкое локальное решение.
...
Рейтинг: 0 / 0
29.09.2006, 23:27
    #34023658
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
GLocalНе думаю, что SQL Server будет хорошо тянуть на селероне 1.7 с 256 Мб оперативки.
Хм. Вообще-то у меня на чуть худшем компьютере Oracle вполне терпимо обсчитывал OLAP. Кубики, конечно, небольшие, но все же по сравнению с торговой точкой...
...
Рейтинг: 0 / 0
29.09.2006, 23:46
    #34023670
Anton Demidov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
А у меня Оракл 8.1.6 в 2000м на двойном Pentium II 266, 160 Mb RAM крутился в продакшине. До 50ти одновременных сессий днём, по вечерам пересчет на пару часов ... Эх, было время ...
А сейчас кому-то и 1.7 Celeron 256Mb в персональное пользование мало.
Код: plaintext
1.
2.
--
Антон
Per rectum ad astrum
...
Рейтинг: 0 / 0
29.09.2006, 23:52
    #34023674
ChA
ChA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
GLocalНе думаю, что SQL Server будет хорошо тянуть на селероне 1.7 с 256 Мб оперативки.У меня MSSQL2K прекрасно себя чувствовал даже на Pentium-200/64MB c полугигабайтной БД. А до этого на Pentium-133/32MB, хотя БД были поменьше. Так что лучше не фантазировать, а смотреть на минимальные технические требования для конкретной СУБД, сравнивая с наличествующей техникой.
...
Рейтинг: 0 / 0
30.09.2006, 01:20
    #34023725
GLocal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
Хорошо. Согласен, был неправ - 128 Мб Recomended для MS SQL Server. Можно будет попробовать. Одна загвоздка - бывает, что комп падает, и возникает необходимость быстрого переноса базы с винта упавшей машины на резервный комп. В MS Access решается просто копированием mdb-файла (если он выжил). А на SQL Server? Там, насколько я в курсе, просто копированием не получится. А процедуру переноса надо делать быстро - продажи идут! И backup не спасет - нельзя потерять ни единой записи о продажах.
...
Рейтинг: 0 / 0
30.09.2006, 10:18
    #34023802
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
Запросто получится простым переносом двух файлов mdf и ldf
...
Рейтинг: 0 / 0
30.09.2006, 13:37
    #34023951
GLocal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
А даст ли выигрыш в скорости и использовании ресурсов использование легкой версии MSDE? И какие ограничения там существенные для маленькой локальной версии?
...
Рейтинг: 0 / 0
30.09.2006, 17:14
    #34024102
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
GLocalА даст ли выигрыш в скорости
не мерял, но меньше не будет, а надежность возрастает на поряди
...
Рейтинг: 0 / 0
30.09.2006, 17:58
    #34024132
ы
ы
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
Cat2 GLocalА даст ли выигрыш в скорости
не мерял, но меньше не будет, а надежность возрастает на поряди

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

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

Чтобы не быть голословным:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
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
...
Рейтинг: 0 / 0
30.09.2006, 18:02
    #34024136
ы
ы
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
хотя 92 секунды, это он спросонья видать обалдел. На второй-четвертой перепопытке MSDE показывал результаты 22-24 секунды
...
Рейтинг: 0 / 0
30.09.2006, 21:13
    #34024222
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
ы. 4 миллиона однострочных инсертов за 12 секунд в реальной базе требуют тщательного изучения правильности постановки задачи и скрупулезной проверки принятых програмных решений:). Я не утверждаю, что так не бывает. Датчики могут еще и не столько нагенерить!
Сомневаюсь, что для GLocal принципиально, выполняется ли такой инсерт за 12/4000000 или 94/4000000 секунды. А вот "горячий" бэкап еще ни кому не мешал.
================
Человек хочет соскочить с Access. Наиболее идеологически близкое решение - MS SQL
...
Рейтинг: 0 / 0
30.09.2006, 21:19
    #34024224
ы
ы
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
Cat2ы. 4 миллиона однострочных инсертов за 12 секунд в реальной базе требуют тщательного изучения правильности постановки задачи и скрупулезной проверки принятых програмных решений:). Я не утверждаю, что так не бывает. Датчики могут еще и не столько нагенерить!
Сомневаюсь, что для GLocal принципиально, выполняется ли такой инсерт за 12/4000000 или 94/4000000 секунды. А вот "горячий" бэкап еще ни кому не мешал.
================
Человек хочет соскочить с Access. Наиболее идеологически близкое решение - MS SQL
Конечно, таких задач не бывает. 4млн записей в данном случае взяты, чтобы получить приемлимое время выполнения теста.

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

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

Скорее всего, причина не в акцессе, раз данные теряются. Его очень сложно заставить потерять записи.
...
Рейтинг: 0 / 0
30.09.2006, 22:02
    #34024247
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
ы. Хорошо что Вы напомнили. Упустил из виду, что у автора топика однопользователская база. Но это болезнь роста. Рано или поздно она все равно станет многопользовательской. И лучше сразу это иметь в виду при проектировании.
...
Рейтинг: 0 / 0
30.09.2006, 22:05
    #34024251
GLocal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
ыА поскольку у человека все лежит в mdb, и при переходе вряд ли будет переписываться клиентская часть в adp (хотя бы потому, что автор о ней не знает, а значет это весьма и весьма трудоемко для него будет), то работа будет через ODBC. А это еще на порядки замедлит все запросы.
В mdb только данные, сама прога написана на Delphi, доступ через ADO, поэтому особых проблем с переходом на MS SQL Server нет, тем более что офисная часть как раз на нем и работает.
ыГорячий бэкап для однопользовательской базы организовать - это вопрос десятка строк кода.
Горячий - это как?
ыСкорее всего, причина не в акцессе, раз данные теряются. Его очень сложно заставить потерять записи.
Уж не знаю, в чем причина. Пару раз (за 3 года) случалось нарушение уникальности первичного ключа - хотите верьте, хотите нет, но в таблице с уникальным ключом по ID было 2 записи с одним ID.

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

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

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

Вот в связи с этими проблемами и хочу этот Access покинуть.
...
Рейтинг: 0 / 0
30.09.2006, 22:07
    #34024253
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
ы
Конечно, таких задач не бывает.
Бывают :(. Служба мониторинга техпроцесса химзавода. Десятки тысяч датчиков. Не помню у кого, но у кого-то была подобная задача. Он решал ее накоплением данных на "промежуточных" серверах, а потом массово закачиывал на основной.
...
Рейтинг: 0 / 0
30.09.2006, 22:09
    #34024255
GLocal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
Cat2ы. Хорошо что Вы напомнили. Упустил из виду, что у автора топика однопользователская база. Но это болезнь роста. Рано или поздно она все равно станет многопользовательской. И лучше сразу это иметь в виду при проектировании.
Угу, вы правы, уже становится. Есть несколько точек (порядка 5) на которых организована сеть из 2-3х компов (кассовых мест не хватает). Работает все на том же Access, база зашарена по сети. Кстати, в этом плане глюков нет, просто не очень удобно работать по сравнению с SQL Server, который под многопользовательство заточен.
...
Рейтинг: 0 / 0
30.09.2006, 22:16
    #34024259
bubucha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
авторкоторая делает несколько операций на insert и update в базе и делает shutdown компа. Так вот, при последующем включении компа часто оказывается, что последние операции в базе не сохранились. Хотя в программе все закрываю, освобождаю и т.д. корректно
Честно говоря, это есть странно. И все открытые транзакции всегда закрываются ? Имхо, у вас не те объемы (100 мб) что бы так "глючило".
...
Рейтинг: 0 / 0
30.09.2006, 22:23
    #34024261
GLocal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
bubuchaЧестно говоря, это есть странно. И все открытые транзакции всегда закрываются ? Имхо, у вас не те объемы (100 мб) что бы так "глючило".
Угу, закрываются. И коннект тоже закрывается. И программа закрывается. Потом шатдаун. Комп включаешь - иногда самый последний запрос не прокатил, иногда два, три последних.. Только Sleep(30000) помогает наверняка.
...
Рейтинг: 0 / 0
30.09.2006, 22:28
    #34024266
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
GLocal. "горячий" бэкап - это не совсем официальный термин. Означает возможность сделать бэкап базы без остановки работы клиентов.
...
Рейтинг: 0 / 0
30.09.2006, 22:47
    #34024281
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход с MSAccess на локальном клиенте
GLocal. Проблемы с Access я бы рекомендовал Вам обсудить на специализированном форуме этого сайта.

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

Если у Вас возникнут вопросы по конкретным реализациям своих идей - задайте их в соответсвующих форумах.
============
Модератор:
Поэтому даннный топик закрыватся
...
Рейтинг: 0 / 0
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Переход с MSAccess на локальном клиенте / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]