Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Выбор СУБД для конкретной ситуации  [new]
PirX
Guest
Вообщем стоит сейчас такая задача: в ближайшие полгода перевести базу данных с Access на ... . Верхний менеджмент говорит- нужен MS SQL Server. Но хотелось бы вашего совета.
Переход на новую БД связан с увеличением объема работы отдела. В настоящее время все базируется на многодесяткомегабайтных .mdb файлах в которых хранятся основные таблицы. Проблема во первых в скорости работы- когда к базам обращается несколько пользователей, то все начинает тормозить. Несильно, секунд 10-15 занимает запрос на выборку, но раздражает.
Вобщем в силу указанных обстоятельств получено ценное указание- базу переработать (оптимизировать), перевести на новые рельсы.
Вот тут и возникает вопрос:
какая СУБД лучше в этом случае? Требования в общем такие:
1. Надежное и детальное разделение прав доступа
2. Возможность обработки нескольких сотен тысяч записей с приемлемой скоростью.
3. Возможность связывания внешних отдельных файлов
4. По возможности простота миграции с Access на новую СУБД.
5. И еще раз надежность защиты хранимых данных от НСД
как вы думаете, MS SQL Server наилучший выбор?
PS опыт работы маловат, но- много желания, старания и способностей :)
7 мар 08, 20:37    [5387682]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
apapacy
Member

Откуда:
Сообщений: 1297
Для Выших объемов подойдет практически любая БД.
MS SQL - нормльный выбор. Я сам на таких объемах много лет юзал MSDE2000 (Release A).
База ни разу не ложилась. Винт пару раз летел - восстанавливалось из архива без проблем.
При использовании Acess при MSSQL ддополнительное преимуществл - можно работать
с MS SQL проактически как будто с mdb.
С другими серверами конечно связь тоже можно установить -- но это все же будет более трудоемко
(хотя и без больших проблем)
7 мар 08, 20:53    [5387708]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
PirX
Guest
Спасибо :) значит направление взято верное. Особенно насчет простоты связки с Access и будто работы с mdb файлами.
Кому нибудь приходилось с таким переездом сталкиваться? Какие подводные камни обнаружили?
7 мар 08, 21:26    [5387819]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
109E8B26-44A5-4CC1-83B8-181D1B84
Guest
Поиск по MSDN и Google поможет.

http://msdn2.microsoft.com/en-us/library/bb188204.aspx
http://support.microsoft.com/kb/128808
8 мар 08, 12:11    [5388447]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
PirX
Guest
Спасибо за ссылку! Почитал, понравилось как написано.
зы теперь наверное надо в другой подфорум переходить :)
9 мар 08, 16:36    [5389589]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16845
Вдумчивая переработка MDB приложения в ADP проект может улучшить качество вашего решения.
Не знаю насколько большое ваше приложение, но полгода - кажется завышенным сроком для перевода.
9 мар 08, 23:19    [5389954]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
PirX
Guest
Программист-Любитель
Вдумчивая переработка MDB приложения в ADP проект может улучшить качество вашего решения.
Не знаю насколько большое ваше приложение, но полгода - кажется завышенным сроком для перевода.

ситуация осложняется тем что опыт по разработке БД- минимален, опыт работы с MS SQL как бы сказать ... _маловат_. А хочется сделать все по возможности красиво и гладко. К тому же очень высоки требования именно к _гладкости_ перехода, чтобы и травинка не шелохнулась ;)

и вопрос,чем переработка в ADP помогет? Дело в том, что прочесть то описание, стандарты и прочее смогу, но интересует именно стратегический совет общего характера. Заранее благодарю
9 мар 08, 23:44    [5389968]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
109E8B26-44A5-4CC1-83B8-181D1B84
Guest
Гладко - это постепенно, по отдельным табличкам(или группам табличек) с тестированием всех запросов

Если используется DAO - плавный переход на ADO, вынос VBA кода в хранимые процедуры.
При необходимости - оптимизация(passthru Query, View на сервере, присоединённые как таблицы)

P.S. эволюционный подход предполагает сохранение mdb формата.
P.P.S бывет и полгода нужно, когда база велика (на некоторые таблицы - по отдельному mdb файлу, таблиц,форм и запросов - сотни, интерфейсных баз - несколько и требуется непрерывность перехода)
10 мар 08, 00:40    [5390051]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
PirX
Программист-Любитель
Вдумчивая переработка MDB приложения в ADP проект может улучшить качество вашего решения.
Не знаю насколько большое ваше приложение, но полгода - кажется завышенным сроком для перевода.

ситуация осложняется тем что опыт по разработке БД- минимален, опыт работы с MS SQL как бы сказать ... _маловат_. А хочется сделать все по возможности красиво и гладко. К тому же очень высоки требования именно к _гладкости_ перехода, чтобы и травинка не шелохнулась ;)

и вопрос,чем переработка в ADP помогет? Дело в том, что прочесть то описание, стандарты и прочее смогу, но интересует именно стратегический совет общего характера. Заранее благодарю

я бы посоветовал взять на проект человека с опытом SQL Server и, возможно, Access. он сможет задать правильное развитие проекта в плане работы с СУБД (скажем, за месяц-два), а затем ваша команда сама доделает весь проект.
10 мар 08, 12:42    [5390298]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
PirX
Guest
AAron, специфика такова, что стороннего человека не возьмешь, а в своей команде по SQL спецов с _глубокими_ знаниями нет.
Потому и срок выделен большой.
10 мар 08, 14:08    [5390441]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
Кифирчик
Member

Откуда: СПб
Сообщений: 939
И мне кажется что-то сильно усложнён переход от MSAccess...
есть утилка batchaccess (пару месяцев назад на профильном форуме sql.ru подкинули)...
она выдирает структуру и данные из mdb файла.. в виде скрипта...
синтаксис (даты, пустые поля ...) в MSSQL и Access ОЧЕНЬ похож (я бы сказал такой же, но не уверен на 100), и наверно проблем с восстановлением структуры и залития данных возникнуть не должно...
ну может сменить очерёдность создания VIEW (если они друг от друга зависимы) и если есть синтаксические нюансы...

если приложение на Access и связь не через ConnectionString, а как-то прямо к таблицам, то на месте старой базы MDB, подкидываете базу с ссылками на MS SQL сервер (связь данных).... всё... теперь база MS SQL, приложение на Access работает...
и начинаете потихонечко переводить всё (логику) на сам MSSQL сервер из приложения... спрва все сложные запросы в виде view, потом хранимки... и.т.д... тут да, несколько месяцев будете воять..

если клиент на делфях, например, то ещё проще, меняете строку подключения и всё...
возможно также можно и с приложением на Access (к сожлению сам ничего не программил)

не исключаю глюков, но их будет мало, и за пол дня можно выловить и выяснить причины

я так переводил базу с MSAccess на MySQL...
в добавок к batchaccess написал утилку, которая скрипт данных преобразовывла к другому виду...
ну даты вместо #13/02/2006# '2006-02-13'...
чуть в коде поменял вместо '<> NILL' на 'IS NOT NILL'
время решения вопроса - 6 часов, база была небольшая... но если бы на MSSQL переводил, то заняло бы 1 час
Вам, думаю максимум за 3 дня можно управитсья (перенос базы на MSSQL, не считая преписания логики)
сперва пробуете, боретесь с подводными камнями... как увидели что всё работает, учли нюансы, подправили клиента - на пол часа тормозите работу пользователей, чистите таблички MSSQL, обнуляете счётчики, и сливаете туда "свежую" базу, юзерам нового клиента - и все продолжаете работать
10 мар 08, 14:16    [5390452]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
PirX
Guest
Кифирчик, спасибо, думаю так и буду понемногу переводить базу. плюс еще добавляется другой вопрос, может быть даже и основной- перевести базу на новую структуру, чтобы максимально исключить возможные ошибки ввода и облегчить составление отчетов.
Тут прихожу к мысли что стоит сначала загнать вышеуказанным способом базы в MS SQL, а уже потом разрабатывать новую структуру БД. При этом всю работу оставить на старой логике. Новую же потихоньку клепать и клепать. И уже после окончательной проверки на ошибки (если такое возможно :) ), подготовив клиентские приложения разом перевести все на новье.
Как оцените план? На данный момент для меня это основной вопрос. Куда идти понятно, теперь думаю как идти к цели
10 мар 08, 14:40    [5390496]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
Кифирчик
Member

Откуда: СПб
Сообщений: 939
PirX
перевести базу на новую структуру, чтобы максимально исключить возможные ошибки ввода и облегчить составление отчетов

если вы переводите на новую структуру, то это смотря на сколько меняется ваша структура... возможно придётся и специально конвертер писать...
для отчётов... если у вас там всё нормализовано, то смысл переводить? даже если нет, то ведь сейчас работает? имеет ли смысл, чтобы выиграть пол секунды, кординально переделывать базу?
все плюсы полноценного, многопользовательского SQL сервера почувствуют все сразу (по сравнению с MSAccess)
потом, как я понимаю важно чтобы это сделать не разрывая "производственного" процесса...
по этому мне кажется, начинать пользоваться новой базой, и раздавать пользователям настроенного для неё клиента... это нужно делать быстро....
ИМХО переводите структуру на MSSQL как есть, тудаже пользователей (с исправленными клиентами), а уже потом думай над оптимизацией, и над переписанием логики... ведь надо ещё научиться писать хранимки для MSSQL :) а это время...
потом возможно получится разработать полностью новую систему
10 мар 08, 15:36    [5390617]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
PirX
Guest
Насчет смены структуры, действительно выигрыш в производительности на MS SQL по сравнению со старой версией будет наверное малозаметен. Тут цель больше:
1) по возможности исключить ошибки ввода
2) сделать более удобным составление отчетов (а то с left, right приходится много возится)

но конечно смущает возможное нарушение принципа 'работает? Лучше не трогай' :)
10 мар 08, 16:58    [5390782]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
PirX
Guest
Поправлюсь, выигрыш новой и старой структур баз на MS SQL :)
10 мар 08, 17:01    [5390790]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
PirX
AAron, специфика такова, что стороннего человека не возьмешь, а в своей команде по SQL спецов с _глубокими_ знаниями нет.
Потому и срок выделен большой.

я советую взять специалиста-консультанта по СУБД, а не по специфике Он будет помогать и направлять разработку, а не делать какие-то специфические для бизнеса вещи.

но смотрите, ходить по граблям в одиночку всегда интереснее
10 мар 08, 18:37    [5391013]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
PirX
Guest
AAron, к сожалению привлечение сторонних специалистов исключено :(
10 мар 08, 19:25    [5391144]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16845
Кифирчик
синтаксис (даты, пустые поля ...) в MSSQL и Access ОЧЕНЬ похож (я бы сказал такой же, но не уверен на 100), и наверно проблем с восстановлением структуры и залития данных возникнуть не должно...

Это не совсем так. Совсем не так. Большие сложные запросы надо переписывать аккуратно руками. Некоторые вещи в SQL не переносимы вовсе - использование в запросах вибиашных пользовательских ф-ий, например. Зато можно писать свои эскуельные ф-ии.
11 мар 08, 09:05    [5391959]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16845
PirX
AAron, к сожалению привлечение сторонних специалистов исключено :(

Типовая патовая ситуация. Если бизнесу требуется решение задачи, но под нее нет (жалко) ресурсов. И рыбку съесть, и на ... сесть и штанишки не порвать.
11 мар 08, 09:07    [5391965]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

Кифирчик wrote:
> И мне кажется что-то сильно усложнён переход от MSAccess...
> есть утилка batchaccess (пару месяцев назад на профильном форуме sql.ru
> подкинули)...
> она выдирает структуру и данные из mdb файла.. в виде скрипта...
> синтаксис (даты, пустые поля ...) в MSSQL и Access ОЧЕНЬ похож (я бы

http://www.microsoft.com/sql/solutions/migration/access/default.mspx
SQL Server Migration for Access
Microsoft SQL Server Migration Assistant (SSMA) for Access is a tool for
migrating databases from Microsoft Access versions 97 through 2003 to
Microsoft SQL Server 2005. SSMA for Access converts Access database
objects to SQL Server database objects, loads those objects into SQL
Server, and then migrates data from Access to SQL Server.

Posted via ActualForum NNTP Server 1.4

11 мар 08, 12:57    [5393434]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

http://www.microsoft.com/sql/techinfo/whitepapers/MigrAccessSQL2005.mspx
Guide to Migrating from Microsoft Access to SQL Server 2005

This white paper covers migrating Microsoft Access databases to SQL
Server 2005 and discusses the differences between the two platforms. SQL
Server Migration Assistant for Access (SSMA Access) is the best tool for
this type of migration; this paper tells you how to use it to mitigate
potential problems in database conversion.

Included in this document:

• Introduction

• Overview of Access-to-SQL Server 2005 Migration

• Migration Wizard

• Migrating Database Objects

• Table Migration Potential Problems

• Jet Syntax Potential Problems

• Functions

• Data Migration

• Conclusion

Posted via ActualForum NNTP Server 1.4

11 мар 08, 12:59    [5393455]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
PirX
Guest
За ссылки спасибо!
Если правильно понимаю, то на русском материала нет? Или это оригинальные статьи и это надежнее? Может быть имеет смысл перевести на русский и тут где нибудь выложить? Хотя б в виде реферата?

Или может не стоит изобретать велосипед?! :-?
11 мар 08, 14:16    [5394084]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

PirX wrote:
> Если правильно понимаю, то на русском материала нет? Или это
> оригинальные статьи и это надежнее? Может быть имеет смысл перевести на
> русский и тут где нибудь выложить? Хотя б в виде реферата?
Это оригинальные статьи (точнее - документ).
Если есть желание перевести на русский и выложить - я думаю, никто не
будет против.

Posted via ActualForum NNTP Server 1.4

11 мар 08, 14:19    [5394105]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
Кифирчик
Member

Откуда: СПб
Сообщений: 939
2PirX
А что хоть у вас за программа? что автоматизирует?
любопытно стало:)
11 мар 08, 15:24    [5394588]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для конкретной ситуации  [new]
PirX
Guest
Кифирчик
2PirX
А что хоть у вас за программа? что автоматизирует?
любопытно стало:)

автоматизирует документооборот ;)

Кифирчик, ты по ходу правильно понял причину невозможности привлечения стороннего разработчика :D
11 мар 08, 15:43    [5394736]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить