Как я могу убедить кого-то, кому нужно увеличить размер от доступа MS к серверу sql или аналогичному

У меня настоящая проблема при работе с очень укоренившимся разработчиком, одержимым мс доступом. Пользователи стонут о случайных сбоях, ошибках блокировки, замораживании, замедлении приложения (особенно в 2007 году), но, похоже, очень устойчивы к его перемещению. Большую часть времени они обвиняют компьютер и не могут убедить его в том, что его mdb сидит на сетевом диске и не имеет ничего общего с аппаратным обеспечением перед ними, которое является совершенно новым.

Существует версия vb для сторонних разработчиков, зависящая от нее, но я не думаю, что потребуется больше, чем на пару недель, чтобы настроить, infact. Я бы, вероятно, переписал ее, поскольку у нее из года в год грязный код из предыдущего разработчик.

Каковы мои лучшие аргументы, чтобы убедить их, что нам нужно переместить его?

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

Ответ 1

как насчет случайных, сбоев, ошибок блокировки, замораживания, замедления (sic).

Быстрый поиск в Интернете находит полезные материалы:

  • Рекомендации по использованию Microsoft Office Access 2003 в многопользовательской среде - если изменения здесь не могут быть реализованы или будут эффективно возьмите переписку, тогда это хорошие боеприпасы, чтобы сделать это правильно.
  • SQL Server vs MS Access - обратите особое внимание на ограничения возможностей. Например, вы можете иметь только 32 000 объектов в базе данных доступа. Предостережение: хотя он говорит 255 одновременных пользователей, и это, вероятно, техническое ограничение, практическое ограничение действительно МНОГО ниже.

Трудно убедить людей, которые не хотят учиться и не открыты для новых идей. Вы можете продолжить вопросы о скорости, проблемы concurrency, проблемы с безопасностью. Но в конечном итоге некоторые люди просто не будут слушать. Пройдите их головы. Перепишите его в инструментах из этого десятилетия и покажите им. Откажитесь от участия в проекте и далее. Я не знаю, что такое политическая ситуация, но технически доступ к MS неправилен для того, что вы делаете, из того, что вы описали.

Ответ 2

зайдите на выходные, скопируйте базу данных на сервер sql, измените строку подключения приложения на сервер sql, повторите попытку приложения, затем удалите ms-access... везде.

тогда ничего об этом не говоришь, пусть думает, что проблемы "исправлены" и что пользователи все еще используют ms-access

Ответ 3

Для меня это зависит от того, сколько одновременных пользователей у вас есть и насколько велика база данных. Если у вас более 5 одновременных пользователей, вам следует подумать о сервере базы данных. Сетевой трафик начинает выходить из-под контроля, и с каждым одновременным пользователем, который вы добавляете, он только ухудшается.

Я создал надежные системы на основе доступа в течение многих лет. Если у вас возникли случайные сбои, проблемы с блокировкой и замедления, вы не делаете что-то правильно. У меня обычно будет mda local с mdb в сети при создании приложения в доступе. Чтобы иметь хорошую производительность, он имеет ключевое значение для обеспечения правильных индексов и запросов, оптимизированных для получения только необходимых данных. Независимо от того, используете ли вы отдельное приложение, доступ или какое-либо приложение, работающее с сервером sql, вам необходимо активно обрабатывать блокировку записи. Вы не можете просто слепо позволить заблокировать ваши записи.

Ответ 4

Забудьте о аргументах о размере БД, это неосведомленная причина перехода на клиент-серверную платформу в 90% случаев, которые, как я слышал, они подняли.

Ваши лучшие аргументы основаны на особенностях, описанных на низкотехнологичном уровне: (1) Вы можете создавать резервные копии и выполнять техническое обслуживание на БД, не выбивая пользователей (что приводит к дорогостоящему простою).

(2) Более быстрое восстановление, если данные случайно удалены/повреждены или повреждены. Опять же, меньше риска и меньше времени простоя. Это всегда является хорошей основой для бизнес-процесса.

(3) Если (и только если) вы ожидаете, что нужно масштабировать совсем немного, обновление позволит это сделать лучше.

(4) Если вам нужно запускать автоматизированные задания/обновления, SQL может сделать это намного элегантнее.

Помните противопоказания для SQL, легко попасть на вашу техническую высокую лошадь об этой платформе в сравнении с этим, но вы должны сбалансировать выгоды от затрат. SQL является дорогой для Helluva, поскольку требует специального оборудования, дорогостоящих лицензий (ОС сервера и БД) и обычно, по крайней мере, DBA с неполным рабочим днем, который будет стоить вам минимум минимум 75 тысяч долларов (если вам удастся и работать из Поданья Айовы).

Ответ 5

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

Найдите способ решить проблему (возможно, другую, которая менее опасна для вовлеченных людей) в том, как вы предлагаете. Заставьте его работать ослепительно быстро и безупречно. Заставьте его работать так хорошо, что люди начинают просить вас, когда им нужно что-то сделать. Сделайте это быстро, что вы сможете сделать, потому что вы будете использовать нужные инструменты для работы.

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

Другое дело, что это, вероятно, не имеет никакого отношения к техническим аспектам ситуации и всему, что связано с неуверенностью другого разработчика. "Это все, что я знаю. Если мы изменим его, я не пойму этого и тогда, где я буду". Ищите способы помочь другому парню расти - когда у него возникнет проблема, найдите ресурсы, которые помогут ему разработать хорошие технические решения. Предложите всем в вашем отделе обучать новым технологиям. Кто знает, один хороший курс SQL Server, и парень может стать евангелистом SQL Server в организации, потому что теперь ТО, ЧТО он знает.

Наконец, знайте, когда, например, сокращать свои потери. Если вы обнаружите, что не можете ничего сделать с ситуацией, не добавляйте к жалобам. Переходите к чему-то, что вы можете контролировать и делать так, как можете. Возможно, в будущем вы окажетесь в положении, в котором у вас есть контроль или влияние в ситуации, и можете что-то сделать. Если вы обнаружите, что находитесь в компании, которая более дисфункциональна, чем большинство, найдите способ перехода к месту, где среда лучше.

Ответ 6

Возможно, и на самом деле довольно просто, преобразовать базу данных Access в таблицы/представления в SQL Server, в то же время используя приложение Access в качестве интерфейса.

Оттуда ваш разработчик, поддерживающий доступ, все еще может повеселиться со всем этим кодом VBA. Между тем, на заднем плане вы добавляете индексы и такие, чтобы ускорить все. Может быть, когда-нибудь вам повезет, и он попросит о хранимых процедурах. Тогда приложение является просто интерфейсом, и кто заботится о том, что он написал? Ваши данные безопасны в SQL Server.

Вы можете сделать это самостоятельно, но просто оставьте производственное приложение ALOOOOOOOOOOOONE. Возьмите копию и конвертируйте эту копию. Затем отправьте его нескольким пользователям на диск TEST.. сделайте свою версию приложения Access "TEST APP" большими красными буквами. Если ваш разработчик спрашивает, что вы делаете, вы можете сказать правду - вы тестируете, чтобы преобразовать только таблицы/представления в некоторую помощь в общее приложение.

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

Ответ 7

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

Не удалось убедить их в проблемах с доступом. В конце концов, было легче заставить проблему, чем сделать это "красиво", жестоко быть добрым.

Ответ 8

Если они будут сопротивляться, вы всегда сможете подняться над их головой. Руководство должно быть осведомлено о проблемах, связанных с аварийными ситуациями и проблемами стабильности. Представьте план для улучшения стабильности, и они, по крайней мере, послушат. Вероятно, тогда они захотят встретиться со всеми разработчиками, чтобы обсудить, так что входите в него, вооружившись большим количеством боеприпасов.

Ответ 9

Больше, чем "Как убедить их", расскажите о "Как это сделать, не заметив никого"!

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

Если ваш код действительно невыносим, ​​перепишите приложение перед переключением на SQL, имея в виду следующие моменты, чтобы сделать окончательный переход на SQL Server полностью прозрачным для конечных пользователей.

Это то, что мы сделали 18 месяцев назад, и я уверен, что у нас все еще есть пользователи, думающие, что наша база данных доступна:

  • Экспортировать текущую базу данных доступа в SQL через доступный мастер для доступа в целях тестирования (может возникнуть много проблем, и вам может понадобиться другой инструмент, например, предлагаемый здесь).
  • Создайте уникальный объект соединения на уровне приложения, чтобы вы могли в любой момент свободно переключаться с Access на SQL (на уровне разработки вы даже можете добавить окно ввода при запуске, чтобы спросить, какое соединение использовать). Мы выбрали объект соединения ADODB, но он также будет работать с подключением ODBC.
  • Если вы используете синтаксис SQL для обновления таблиц, убедитесь, что все SELECT, INSERT, UPDATE и DELETE используют это соединение. Если вы используете набор записей, убедитесь, что все они используют это соединение во время открытия.
  • При необходимости обновите весь связанный код, добавив опции "SELECT CASE" type_Of_TheConnexion
  • Переключитесь на SQL-соединение.. и отлаживайте, пока не закончите!

Проблемы, которые вы найдете, в основном связаны с синтаксисом SQL, где MSSQL использует "вместо" и "#" как разделители. Формат даты также является проблемой, где стандартный формат SQL "YYYYMMDD", в то время как формат MS-Access зависит от компьютера locals (остерегайтесь конверсий с даты на строку!) и сохраняется как "YYYY-MM-DD" (если я помню...). Логическое значение в SQL равно 0 и 1, тогда как они являются True/False или 0/-1 в Access...

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

Ответ 10

Это зависит от типа приложения и загрузки данных вашей базы данных, но Access довольно эффективен даже по сети.
В зависимости от объема данных, с которыми ваши пользователи справляются, вы можете легко масштабировать до 100 пользователей в сети, используя только базу данных Access и Back-End.

Похоже, в вашем случае переписывание может быть в порядке. Если ваше приложение ориентировано на данные, если нет смысла разрабатывать его в VB6: инструменты, предоставляемые Access, намного лучше, чем все, что вы могли бы сделать, особенно при рассмотрении Access 2007.

Обновление до SQL Server действительно необходимо, только если вы столкнулись с проблемами:

  • Безопасность:
    вам необходимо убедиться, что только пользователи прав могут получить доступ к данным. Вы можете сделать свою собственную безопасность в Access, но она никогда не будет такой сильной, как SQL Server.
  • Масштабируемость:
    вы имеете дело с большим количеством данных, сложными запросами или множеством пользователей, и было бы лучше иметь специализированное оборудование для обработки нагрузки для клиентов. Проблема с этим заключается в том, что, снимая давление с менее способных клиентов, вы добавляете гораздо больше на сервер.
  • Целостность:
    Поскольку базовая база данных представляет собой только файл, который требует доступа к R/W для всех подключенных клиентов, всегда существует вероятность того, что кто-то сделает что-то плохое или что клиент может произойти сбой и оставить поврежденную базу данных.

Если число пользователей в среднем (я бы сказал, 30), то, вероятно, нет необходимости в масштабировании:

  • Используйте MS Access 2007 для разработки своего приложения, а затем просто используйте MS Access 2007 Runtime (он бесплатный!) на всех клиентских компьютерах, чтобы получить более современный пользовательский интерфейс (использует ленту и имеет множество улучшений интерфейса для предыдущих версий).
    Вы не можете быть дешевым в этом решении: вам нужна только полная розничная версия MS Access, и все остальное бесплатное, учитывая количество пользователей!
  • Не думайте, что переход на SQL Server позволит повысить производительность ваших запросов: MS Access часто делает лучшую работу по оптимизации запросов для вас (он знает, что нужно отображать и делает много кеширования и оптимизации).
  • Удостоверьтесь, что вы только редактируете небольшие объемы данных в любой момент времени (не используйте запросы dynaset, чтобы отображать огромное количество данных в таблице данных, вместо этого используйте моментальный снимок и открывайте детальную форму, содержащую только данные для редактирования при необходимости.
  • Кэш-запросы на локальном компьютере. Построен механизм кэширования, который оставляет копию результатов сложного запроса на локальном компьютере. Усиление производительности довольно удивительно, и если запрос не сильно изменится (например, журнал операций с запасами), вы можете просто локально выполнить сложный/большой запрос и при необходимости добавить новые записи.

Намного больше можно сказать.

Нижняя строка: вы можете посмотреть переписывание, но не отклоняйте Access как решение, потому что ваше текущее приложение плохо написано.

Ответ 11

Попробуйте привязать и показать статистику ему

Ответ 13

Изменение людей иногда может быть настоящей болью в прикладе.

Я бы сказал, что основной аргумент будет иметь стабильность и скорость, но, конечно, как вы уже сказали, они уже знают, что это все равно не сдвинется. Еще одна вещь, которую нужно попробовать, - показать им силу LINQ to SQL и насколько она будет более чистой. Как Даниэль Сильвейра сказал, что вы можете попробовать бросить пару статистических данных туда и посмотреть, уверены ли они.

У нас есть приложение, использующее MS-доступ в качестве задней части, и я не могу дождаться, пока мы получим наш новый SQL-сервер, чтобы я мог переместить все на это.

Ответ 14

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

Если вы его босс, то просто заставите его изменить его на использование SQL. Если нет, то убедите своего босса заставить изменения, показывая ему лучшие результаты и объясните, что он исправит проблемы, которые у вас есть.

Ответ 15

Errr, оставьте команду? Кажется, вы работаете с совершенно неправильным набором людей. Теперь, если команда является вашей компанией, вы работаете с неправильной компанией.

Конечно, как только вы покинете компанию, вы можете сказать своим клиентам, что вы можете самостоятельно решить проблемы с сетью и заставить их покинуть компанию. Затем дайте им улучшенную систему, которая работает на SQL Server Express.