Я полностью обученный программист MS Access (основная часть моей работы - программирование), сейчас я занимаюсь созданием больших баз данных; все еще использую MS Access в качестве пользовательского интерфейса, но SQL Server для хранения всех данных и выполнения большей части «работы».
По сути, мой вопрос таков; Какие темы мне нужно знать для SQL Server, которые я, вероятно, не изучал или не нуждался при использовании Access?
Я не хочу, чтобы вы рассказывали мне, как что-то делать, больше всего вы думаете, что самое важное, что я должен исследовать - там много предметов и чертовски много деталей, не хочу долго искать себя путь по менее ценному пути ...
Свалка мозга:
- Обслуживание: что наиболее важно (проверить базу данных, уменьшить базу данных, обновить статистику, перестроить и т. Д.)
- Индексы - я не знаю так много, как следовало бы, есть ли хорошая книга / блог и т. Д., Которые могут научить меня основам?
- Что-то еще, что я пропустил (вероятно, есть много, как я уже говорил, что я новичок в SQL Server ...)
Если это поможет мне работать в ритейлере среднего размера и с базами данных, я в основном работаю над такими вещами, как
- Платформа отчетности (суммирует продажи / поступления / запасы и т. Д. Из основной системы и обеспечивает быструю отчетность)
- Инструмент согласования между третьей частью и тем, что наши магазины помещают через регистры (импортирует данные от третьей стороны и перекрестные ссылки на журналы транзакций)
- Хранит все данные, связанные с нашими акциями; продукт, цены, прогнозы, фактические результаты и т. д.
источник
Ответы:
Когда вы узнаете больше о 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 ....)
источник
Есть чему поучиться ... онлайн или через книги. Вот несколько первых ссылок, которые помогут вам начать работу (очень неполный список, но он должен занять вас некоторое время):
Форумы
Блоги
книги
источник
Пользуясь SQL-сервером уже несколько лет (и до этого Access), я бы предложил следующее.
Я недавно начал работать с отчетами по SQL Server, но это может быть затруднительно при настройке - для большинства бизнес-случаев получение Excel для извлечения данных из хранимой процедуры SQL Server часто более гибко для менеджеров.
Надеюсь, это поможет, добро пожаловать на борт :)
источник
Для тех, кто начинает с SQL Server, я бы порекомендовал начать с изучения основных строительных блоков, прежде чем приступить к вещам типа DBA.
Как только вы разберетесь с ними и сможете работать на SQL Server, не используя MS Access, используя в основном типы T-SQL, вы сможете больше узнать об основных задачах типа DBA, таких как:
Восстановления резервной копии
техническое обслуживание
администрация
MSDN & Learning сайты Microsoft будут иметь очень полезные уроки и учебные пособия для вас. Я понимаю, что не всегда понятно, с чего начать, но если вы примерно следуете приведенным выше спискам, вы должны быстро начать использовать SQL.
Примечание . Хотя большинство курсов Microsoft 2005 по сертификации Microsoft, вероятно, было прекращено, вы все равно можете использовать доступные ресурсы для SQL 2008 R2. Возможно, меня за это скажут, но SQL 2008 R2 достаточно похож на SQL 2005 (в контексте того, что вы хотите изучить), чтобы вы могли изучать 2008 R2 и при этом быть в порядке.
Наконец: добро пожаловать на dba.stackexchange.com и SQL Server
источник
Я сейчас нахожусь в точно такой же ситуации, что и вы, мой друг, и я могу полностью понять. Поэтому я порекомендую книгу, в которой решены многие вопросы, которые у меня возникли в отношении перехода на SQL-сервер.
Книга: Руководство разработчика Microsoft Access по SQL Server от Мэри Чипман и любого барона
Книга объясняет все, что вам нужно знать, от преимуществ безопасности до прав пользователя и т. Д., И, самое главное, она объясняется очень читабельным и простым способом.
Вероятно, есть более современная версия этой книги, но я пользуюсь текущей, и она полностью удовлетворяет все мои потребности!
Надеюсь, это поможет вам так же, как и мне.
Удачи!
источник
Чтобы ответить на ваши вопросы -
Обслуживание: что наиболее важно (проверить базу данных, уменьшить базу данных, обновить статистику, перестроить и т. Д.)
Одним из лучших решений для обслуживания является резервное копирование SQL Server, проверка целостности, а также обслуживание индекса и статистики. Просто прочитайте его и разверните. Протестировано и широко используется сообществом SQLServer.
Индексы - я не знаю так много, как следовало бы, есть ли хорошая книга / блог и т. Д., Которые могут научить меня основам?
Лестница к индексам SQL Server - отличная серия от начального до продвинутого уровня.
Что-то еще, что я пропустил (вероятно, есть много, как я уже говорил, что я новичок в SQL Server ...)
В SQL Server гораздо больше, чем просто обслуживание и индексирование. Мое предложение было бы прочитать любой контент, размещенный на сайтах ниже ... (Они самые лучшие!)
SQLSkills.com
brentozar.com
SQLServerCentral.com
Работая с SQLServer на регулярной основе, вы почувствуете необходимость получить больше знаний в различных областях, таких как аварийное восстановление, настройка производительности, высокая доступность, повреждение базы данных и т. Д.
Примечание: в Интернете есть множество информации с отличным плохим советом. Поэтому я бы посоветовал получить образование от людей, которые работали и работают с SQLServer на ежедневной основе.
Наконец, проверьте этот тренинг от SQLSkills - один из лучших предлагаемых. Я лично взял IE1 и IE2 и поверь мне .. Вы почувствуете разницу!
источник
Одна очень интересная вещь, которую вы можете изучить на SQL Server, - это план выполнения запроса и подсказка SQL-запроса, которую вы можете использовать, когда план выполнения запроса не соответствует вашим ожиданиям.
План выполнения запросов - это сложная тема, но она может помочь вам понять производительность SQL Server.
Естественно, вы не должны злоупотреблять подсказкой запроса , по моему опыту, они являются последним средством, когда запрос не работает с ожидаемой производительностью.
источник