Основные соображения при переходе от программирования MS Access к SQL Server

8

Я полностью обученный программист MS Access (основная часть моей работы - программирование), сейчас я занимаюсь созданием больших баз данных; все еще использую MS Access в качестве пользовательского интерфейса, но SQL Server для хранения всех данных и выполнения большей части «работы».

По сути, мой вопрос таков; Какие темы мне нужно знать для SQL Server, которые я, вероятно, не изучал или не нуждался при использовании Access?

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

Свалка мозга:

  • Обслуживание: что наиболее важно (проверить базу данных, уменьшить базу данных, обновить статистику, перестроить и т. Д.)
  • Индексы - я не знаю так много, как следовало бы, есть ли хорошая книга / блог и т. Д., Которые могут научить меня основам?
  • Что-то еще, что я пропустил (вероятно, есть много, как я уже говорил, что я новичок в SQL Server ...)

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

  • Платформа отчетности (суммирует продажи / поступления / запасы и т. Д. Из основной системы и обеспечивает быструю отчетность)
  • Инструмент согласования между третьей частью и тем, что наши магазины помещают через регистры (импортирует данные от третьей стороны и перекрестные ссылки на журналы транзакций)
  • Хранит все данные, связанные с нашими акциями; продукт, цены, прогнозы, фактические результаты и т. д.
Simon1979
источник
Почему SQl Server 2005? Это немного старый, с 3 основными версиями позади.
Мариан
Это то, что мы сейчас установили на моей работе, и, поскольку я единственный, кто действительно его использует, мне нужно будет продемонстрировать, какую ценность я могу добавить к нему, прежде чем они обновятся.
Simon1979
@ Simon1979 одно из значений - простой путь обновления. В SQL Server 2012 вы можете восстановить резервную копию БД из SQL Server 2005, но не из более ранней версии (SQL Server 2000). Возможно, что следующая версия SQL Server не позволит вам восстановить резервную копию БД из SQL Server 2005. И восстановление резервной копии - один из самых простых способов передачи данных с разных серверов
Макс.

Ответы:

4

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

Триггеры: Процедуры, определенные на уровне таблицы, для автоматического выполнения действий, когда в таблице есть INSERT / UPDATE / DELETE.

Хранимые процедуры: чем-то похожи на макросы Access и те маленькие VBA-процедуры, которые Subвы встроили в Access для выполнения «полезных вещей», за исключением того, что в SQL Server они являются частью самой базы данных. Таким образом, вы можете написать хранимую процедуру (SP) один раз и использовать ее (почти) где угодно, даже в приложениях, использующих одну и ту же базу данных.

Функции: они в некоторой степени аналогичны небольшим VBA, которые Functionвы написали в Access для включения в запросы, за исключением того, что функции SQL Server, такие как SP, более тесно связаны с базой данных. Также функции SQL Server могут иметь скалярное значение (возвращать одно скалярное значение) или табличное значение (возвращать набор строк).

Забавные трюки SQL: Есть много из SQL функции , доступные в SQL Server, которые не поддерживаются в Access (Jet / ACE) SQL. «Общие табличные выражения» (CTE) и « RANKи PARTITION» - это те, которые дали мне «ага» моменты, когда я начинал.

Я мог бы продолжать, но это то, что я помню, обнаружив на раннем этапе, что заставило меня «думать в SQL Server».

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

  • создавать (или просто макетировать) интерфейсные приложения на основе SQL Server, и

  • выполнять очистку данных, создавать специальные запросы и отчеты и выполнять аналогичные задачи с данными SQL Server.

Наконец, даже если вы будете работать с SQL Server 2005, я настоятельно рекомендую вам получить копию SQL Server 2008 (или 2012) Express для обучения , главным образом из-за улучшений IDE в SQL Server Management Studio (а именно, автозаполнения и интерактивная отладка). Просто будьте в курсе любых новых (2008+) функций, с которыми вы можете столкнуться, и не полагайтесь на них в своем производственном коде. (Или используйте их в качестве маркеров для своего шага для обновления с SQL Server 2005 ....)

Гор Томпсон
источник
4

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

Форумы

Блоги

книги

KookieMonster
источник
3

Пользуясь SQL-сервером уже несколько лет (и до этого Access), я бы предложил следующее.

  1. Резервное копирование и восстановление - вы больше не берете копию файла для резервного копирования базы данных, в зависимости от ваших потребностей (размер, нужно ли вам до минуты восстановления и т. Д.), Есть возможность резервного копирования и восстановления базы данных. Вы ничто без ваших данных!
  2. Посмотрите видео Брента Озара: http://www.youtube.com/brentozar - этот парень - легенда SQL Server. Он нацелен скорее на техническую сторону, но там также есть несколько хороших видео для начинающих. Я многому научился у них (даже если предмет довольно сухой!)
  3. Обслуживание - я предполагаю, что потребности минимальны, если до сегодняшнего дня Access был в порядке: если у вас нет большой обработки, большого количества данных (10 ГБ +) или сложных запросов, вы вполне могли бы без проблем запустить SQL Server, не выполняя обслуживание в течение нескольких месяцев. Индексные переиндексации / перестройки (есть разница), вероятно, первое, что вы захотите использовать, хотя, если у вас много записей.
  4. Я действительно рекомендовал Stairways на SQL Server Central http://www.sqlservercentral.com/stairway/ - они являются отличным введением в типы индексов, типы данных (они немного отличаются от Access!)
  5. Если вы когда-либо беспокоитесь о том, что ваша база данных не в идеальном состоянии, попробуйте хранимую процедуру Brent Ozar sp_blitz (Google для нее - мне нужно больше репутации, чтобы опубликовать дополнительную ссылку!) - она ​​проверяет множество статистики / параметров базы данных, предоставляет Приоритетный список того, что нужно сделать со ссылками на сайт, чтобы предложить более глубокое обсуждение.

Я недавно начал работать с отчетами по SQL Server, но это может быть затруднительно при настройке - для большинства бизнес-случаев получение Excel для извлечения данных из хранимой процедуры SQL Server часто более гибко для менеджеров.

Надеюсь, это поможет, добро пожаловать на борт :)

Грег Робсон
источник
2

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

  1. Основные типы и функции различных объектов SQL (таблицы, ключи, представления, хранимые процедуры, пользовательские функции, триггеры)
  2. Написание базового T-SQL, DML и DDL

Как только вы разберетесь с ними и сможете работать на SQL Server, не используя MS Access, используя в основном типы T-SQL, вы сможете больше узнать об основных задачах типа DBA, таких как:

  1. Восстановления резервной копии

  2. техническое обслуживание

  3. администрация

MSDN & Learning сайты Microsoft будут иметь очень полезные уроки и учебные пособия для вас. Я понимаю, что не всегда понятно, с чего начать, но если вы примерно следуете приведенным выше спискам, вы должны быстро начать использовать SQL.

Примечание . Хотя большинство курсов Microsoft 2005 по сертификации Microsoft, вероятно, было прекращено, вы все равно можете использовать доступные ресурсы для SQL 2008 R2. Возможно, меня за это скажут, но SQL 2008 R2 достаточно похож на SQL 2005 (в контексте того, что вы хотите изучить), чтобы вы могли изучать 2008 R2 и при этом быть в порядке.

Наконец: добро пожаловать на dba.stackexchange.com и SQL Server

РОКА
источник
2

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

Книга: Руководство разработчика Microsoft Access по SQL Server от Мэри Чипман и любого барона

Книга объясняет все, что вам нужно знать, от преимуществ безопасности до прав пользователя и т. Д., И, самое главное, она объясняется очень читабельным и простым способом.

Вероятно, есть более современная версия этой книги, но я пользуюсь текущей, и она полностью удовлетворяет все мои потребности!

Надеюсь, это поможет вам так же, как и мне.

Удачи!

Джастин
источник
2

Чтобы ответить на ваши вопросы -

Обслуживание: что наиболее важно (проверить базу данных, уменьшить базу данных, обновить статистику, перестроить и т. Д.)

Одним из лучших решений для обслуживания является резервное копирование SQL Server, проверка целостности, а также обслуживание индекса и статистики. Просто прочитайте его и разверните. Протестировано и широко используется сообществом SQLServer.

Индексы - я не знаю так много, как следовало бы, есть ли хорошая книга / блог и т. Д., Которые могут научить меня основам?

Лестница к индексам SQL Server - отличная серия от начального до продвинутого уровня.

Что-то еще, что я пропустил (вероятно, есть много, как я уже говорил, что я новичок в SQL Server ...)

В SQL Server гораздо больше, чем просто обслуживание и индексирование. Мое предложение было бы прочитать любой контент, размещенный на сайтах ниже ... (Они самые лучшие!)

SQLSkills.com

brentozar.com

SQLServerCentral.com

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

Примечание: в Интернете есть множество информации с отличным плохим советом. Поэтому я бы посоветовал получить образование от людей, которые работали и работают с SQLServer на ежедневной основе.

Наконец, проверьте этот тренинг от SQLSkills - один из лучших предлагаемых. Я лично взял IE1 и IE2 и поверь мне .. Вы почувствуете разницу!

Кин Шах
источник
0

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

План выполнения запросов - это сложная тема, но она может помочь вам понять производительность SQL Server.

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

Максимум
источник