Рейтинг:0

База данных MS Access в локальной сети небольшой компании: NAS против виртуализированного Windows Server

флаг jp

В настоящее время я разрабатываю небольшое приложение для Windows. По соображениям совместимости я ограничен использованием MS Access в качестве «бэкэнда» БД (миграция на SQL Server запланирована, но пока не выполнима).

В эти дни я должен принять решение. У меня есть два варианта:

  1. Размещать файлы MS Access на NAS (Synology);
  2. Размещайте файлы MS Access на виртуализированном сервере Windows (оборудование немного устарело).

Какое решение лучше с точки зрения надежного и быстрого подключения к базе данных? Я знаю, что трудно дать 100% гарантированный ответ с таким небольшим количеством информации, поэтому какие тесты мне следует выполнить, чтобы принять решение? Кто-то из вас уже сталкивался с подобной ситуацией?

Заранее спасибо.

Jevgenij Martynenko avatar
флаг us
Каков размер файла БД? Количество одновременных пользователей? Почему сейчас нельзя использовать SQL Server? Производительность будет зависеть от скорости вашей сети и аппаратных характеристик каждого варианта (тип диска, сеть, оперативная память). Но если файл небольшой и количество пользователей невелико, это может вообще не иметь значения. Проблема с файлом Access обычно не в скорости, а в блокировках и повреждении файла.
FrankIsNotNothing avatar
флаг jp
@JevgenijMartynenko спасибо за интерес. Размер файлов баз данных составляет от нескольких КБ до 20-50 МБ. NAS представляет собой Synology rs2418rp+ и должен иметь SSD-диски и RAID; виртуализированный сервер немного старше NAS (на данный момент у меня нет подробных спецификаций). Они оба подключены через локальную сеть 10 Гбит/с. Предполагаемое количество одновременных пользователей варьируется от 5 до 20. Подключение к этим файлам баз данных осуществляется через приложение .Net (пользователи не используют и не видят файлы Access).
Jevgenij Martynenko avatar
флаг us
Я не думаю, что у вас возникнут проблемы с производительностью из-за диска/сети. Доступ к файлам БД может быть медленным по своей природе, поскольку блокировки файлов и вычисления выполняются на стороне клиента. Так что сеть/диск, вероятно, не будет вашим узким местом. Я настоятельно рекомендую перейти на бесплатную версию SQL Server как можно скорее.
FrankIsNotNothing avatar
флаг jp
@JevgenijMartynenko Сегодня я провел тест с помощью LAN Speed ​​Test: кажется, что NAS на самом деле немного быстрее, чем виртуализированный сервер, но я знаю, что просто сравниваю скорость чтения/записи. Как вы думаете, я получу какие-либо преимущества, установив SQL Server Express на старый ПК (i5 3-го поколения, 12 ГБ ОЗУ, 1600 МГц, SSD)? Будет ли это лучше текущего решения на базе MS Access?
FrankIsNotNothing avatar
флаг jp
@JevgenijMartynenko Я имею в виду: для нового клиентского ПК необходимость полагаться на старый компьютер снизит производительность по сравнению с решением на основе MS Access? Всегда ли предпочтительнее использовать SQL-сервер? Простите меня, я совсем новичок.
Jevgenij Martynenko avatar
флаг us
Я считаю, что упомянутого оборудования будет более чем достаточно. SQL Server намного надежнее файлов Access DB. Что касается производительности, Express Edition все равно не сможет использовать более 2 ГБ ОЗУ. Таким образом, 6 ГБ для машины с SQL Server будет более чем достаточно (2 ГБ для ОС Windows, 2 ГБ для файлового кеша, 2 ГБ для SQL). Проверьте другие ограничения Express Edition здесь https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-version-15?view=sql-server-ver15# Cross-BoxScaleLimits
Jevgenij Martynenko avatar
флаг us
Чтобы добавить немного соли... пожалуйста, поймите, что миграция с Access DB на SQL Server потребует перенастройки вашего приложения и обновления его кода. Кроме того, управление SQL Server может потребовать немного больше усилий и знаний. Вы получите следующие преимущества: надежность и производительность.
FrankIsNotNothing avatar
флаг jp
@JevgenijMartynenko Спасибо за вашу поддержку. Я подготовлю этот SQL-сервер и попробую, я думаю, что это лучший способ добиться надежности и производительности.
FrankIsNotNothing avatar
флаг jp
@JevgenijMartynenko Я возвращаюсь сюда, чтобы поблагодарить вас за то, что вы порекомендовали мне перейти на SQL Server. В эти дни я переношу все файлы Access на SQL Server и делаю первую попытку. Я поражен производительностью, которую я получаю - самое приятное то, что я еще не оптимизировал свой код приложения! Так что спасибо тебе.
Jevgenij Martynenko avatar
флаг us
Рад помочь :)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.