27 распространённых вопросов по SQL с собеседований и ответы на них

Википедия гласит, что SQL — это декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных. Не самое удобоваримое определение. Чтобы понять, о чём вообще речь, разберём его.

Установка SQL сервера

1. Установить MS SQL Server 2012 или выше. Можно использовать выпуск время установки сервера следует использовать смешанный режим аутентификации и задать пароль для пользователя «sa«.

2. Запустить SQL Management Studio и создать новую базу, например с именем RK7.

3. В Диспетчере конфигурации SQL Server включить протокол TCP/IP. Перезапустить SQL Server.

4. Перевести базу в режим версионности строк (Row Versioning)

По умолчанию SQL Server работает в режиме «Read Commited», который подразумевает блокирование данных во время запроса. Это может сильно помешать в случае многопользовательской работы. Начиная с версии 2005 поддерживается режим «READ COMMITTED using row versioning», при котором блокировки могут помешать только в случае, когда разные пользователи пишут в одно и то же место, чтение же данных никогда не блокируется и никого не блокирует.

Для включения режима версионности строк надо выполнить скрипт:

ALTER DATABASE RK7 SET READ_COMMITTED_SNAPSHOT ON;

Подробнее смотрите здесь или здесь.

Обновите SQL Server до новой версии

Итак, начнем обновление!

Обновите SQL Server до новой версии

Я перешел по ссылке, указанной выше, и загрузил помощник по миграции данных. Теперь давайте пройдемся по этапам установки и проведем нашу оценку.

Нажмите Далее, затем на следующем экране примите условия и нажмите Далее.

Обновите SQL Server до новой версии

На следующих экранах просто нажмите «Установить» и убедитесь, что вы отметили флажок «Запуск» после завершения установки.

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

Обновите SQL Server до новой версии

Теперь давайте начнем с нажатия кнопки «+» и выбора нашего сценария миграции. Как только вы нажмете эту кнопку, появится новое лезвие с некоторыми опциями.

Как видите, я выбираю «Оценка», вставляю имя любого проекта (у меня это 2014to2017, так как это то, чего мы пытаемся достичь), и я устанавливаю тип исходного и целевого сервера как SQL Server, поскольку все, что мы собираемся сделать, это линейное обновление.

Обновите SQL Server до новой версии

Теперь давайте нажмем кнопку «Создать».

Читайте также:  Windows 10 версии 20H2 — как скачать и что нового?

Как только мы нажмем «Создать», нам будет предоставлено три варианта выбора. Проверьте проблемы совместимости , которые будут нашим единственным выбором для этого обновления.

Обновите SQL Server до новой версии

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

Как только мы нажимаем Далее, мы попадаем на экран, где нам нужно подключиться к серверу, который мы решили обновить. Поскольку мы обновляем сервер, к которому мы подключены, мы выберем localhost в качестве сервера и обязательно проверим « Сертификат доверенного сервера », чтобы не было неприятных ошибок, связанных с тем, что имя не является доверенным в домене и т.д.

Обновите SQL Server до новой версии

Затем мы нажимаем Connect и, если соединение установлено успешно, нам будет предоставлен список всех баз данных в этом экземпляре SQL. В моем случае у меня есть тестовая база данных vpm, которую мы будем использовать при оценке.

Теперь мы нажимаем Добавить, а затем нажимаем Начать оценку.

Обновите SQL Server до новой версии

Теперь мы просто дождемся окончания оценки.

Теперь, когда оценка завершена, и мы видим, что рядом с нашей БД установлен зеленый флажок, мы можем перейти на SQL Server 2017, зная, что ничего не сломается, и есть полная совместимость.

Обновите SQL Server до новой версии

Теперь пришло время начать процесс обновления.

Я подключил ISO-стандарт SQL 2017 к моей машине. Теперь мы просто запускаем обычную настройку и выбираем Upgrade из предыдущей версии SQL Server.

Обновите SQL Server до новой версии

Мы можем либо ввести наш серийный номер, либо выбрать «Оценка», в зависимости от наших текущих потребностей.

Затем мы удостоверимся, что работаем над правильным экземпляром.

Обновите SQL Server до новой версии

На следующей странице у нас есть возможность выбрать и отменить выбор функций, которые мы хотим обновить.

На следующих экранах мы просто нажимаем «Далее» до тех пор, пока не перейдем к процессу обновления, дождемся его завершения и все готово!

Обновите SQL Server до новой версии

Это оно! Спасибо, что нашли время, чтобы прочитать эту подробную статью о том, как правильно выполнить обновление SQL Server!

Шаг 3

В случае, если первые шаги не принесли никакого результата, то следующим вариантом, требующим проверки является проверка параметра Degree of Parallelism (DOP).

Если кратко, то это настройка отвечает за то, на сколько ядер может быть распараллелен запрос. Чем сложнее запрос, тем выгоднее его распараллеливать на большее число ядер процессора. С другой стороны, когда большая часть запросов простые (а именно так в большинстве своем в системе DIRECTUM), то необходимости в распараллеливании нет. Стоит учитывать, что при установке DOP=1, тяжелые запросы будут выполняться медленнее.

Читайте также:  Windows Server TP2. Знакомимся с новой серверной ОС от Microsoft

Изменение данной настройки не требует перезапуска SQL-сервера.

Оценить влияние можно так:

  • Сравнить среднее значение загрузки CPU, например, за день до изменения и после;
  • Оценить задержки вида CXPACKET в динамическом представлении dm_os_wait_stats, например, запросом вида:

select top 25 * from _os_wait_stats order by wait_time_ms desc

Наличие в топе CXPACKET как раз и будет говорить о проблемах с параметром DOP.

Эмпирически можно подобрать наиболее подходящее значение DOP для каждой конкретной системы.

Какие ещё ограничения вы знаете, как они работают и указываются?

SQL-ограничения (constraints) указываются при создании или изменении таблицы. Это правила для ограничения типа данных, которые могут храниться в таблице. Действие с данными не будет выполнено, если нарушаются установленные ограничения.

  • UNIQUE — гарантирует уникальность значений в столбце;
  • NOT NULL — значение не может быть NULL;
  • INDEX — создаёт индексы в таблице для быстрого поиска/запросов;
  • CHECK — значения столбца должны соответствовать заданным условиям;
  • DEFAULT — предоставляет столбцу значения по умолчанию.

Виды СУБД

Познакомимся с новым понятием — СУБД, системой управления базой данных.

Сергей Кузнецов в книге «Основы баз данных» описал СУБД как комплекс программ, позволяющих создать базу данных (БД) и манипулировать данными (вставлять, обновлять, удалять и выбирать). Система обеспечивает безопасность, надёжность хранения и целостность данных, а также предоставляет средства для администрирования БД.

Получается что, СУБД — это SQL плюс комплекс программного обеспечения. Очень часто базы данных путают с системой управления базой данных. Это нормально: понятия неразрывны, сама по себе БД без системы управления мало чем отличается от текстового файла со строчками. Важно не только хранить данные, но и управлять ими. СУБД применяются везде, где нужно структурировано хранить данные — от простого блога до проектов Data Science.

Есть много популярных СУБД, рассмотрим несколько из них. 

ISNULL и COALESCE

Идем дальше. Что еще потенциально интересного? Есть две функции: ISNULL и COALESCE. С одной стороны все просто — если первый оператор NULL, то вернуть второй оператор или следующий, если мы говорим про COALESCE. С другой стороны, есть коварное различие между ними. Что вернут эти функции?

DECLARE @a CHAR(1) = NULL SELECT ISNULL(@a, ‘NULL’), COALESCE(@a, ‘NULL’) DECLARE @i INT = NULL SELECT ISNULL(@i, 7.1), COALESCE(@i, 7.1)

Ответ и вправду не очень очевидный:

—- —- N NULL —- —- 7 7.1

Почему? Функция ISNULL преобразует к наименьшему типу из двух операндов. COALESCE преобразует к наибольшему типу. Вот мы и получаем такую радость, над которой я в первый раз очень долго просидел в попытках понять, «что не так».

Шаги установки

Шаг 1. Загрузите ознакомительную версию с

После загрузки программного обеспечения будут доступны следующие файлы в зависимости от варианта загрузки (32 или 64-разрядная версия).

Гумилева \ x86 \ SQLFULL_x86_ENU_

Гумилева \ x86 \ SQLFULL_x86_ENU_

Гумилева \ x86 \ SQLFULL_x86_ENU_

ИЛИ

Гумилева \ x86 \ SQLFULL_x64_ENU_

Гумилева \ x86 \ SQLFULL_x64_ENU_

Гумилева \ x86 \ SQLFULL_x64_ENU_

Примечание — X86 (32 бит) и X64 (64 бит)

Шаг 2 — Дважды щелкните «SQLFULL_x86_ENU_» или «SQLFULL_x64_ENU_», он извлечет необходимые файлы для установки в папку «SQLFULL_x86_ENU» или «SQLFULL_x86_ENU» соответственно.

Шаг 3 — Щелкните папку «SQLFULL_x86_ENU» или «SQLFULL_x64_ENU_» и дважды щелкните приложение «SETUP».

Для понимания здесь мы использовали программное обеспечение SQLFULL_x64_ENU_

Шаг 4 — Как только мы нажмем «Настройка» приложения, откроется следующий экран.

Шаг 5 — Нажмите Установка, которая находится на левой стороне экрана выше.

Шаг 6 — Выберите первый вариант правой стороны, показанный на экране выше. Откроется следующий экран.

Шаг 7 — Нажмите OK, и появится следующий экран.

Шаг 8 — Нажмите Next, чтобы получить следующий экран.

Шаг 9 — Обязательно проверьте выбор ключа продукта и нажмите Далее.

Шаг 10 — Установите флажок, чтобы принять опцию лицензии, и нажмите Далее.

Шаг 11 — Выберите вариант установки компонента SQL Server и нажмите «Далее».

Шаг 12 — Установите флажок Службы ядра СУБД и нажмите Далее.

Шаг 13 — Введите именованный экземпляр (здесь я использовал TestInstance) и нажмите Next.

Шаг 14 — Нажмите Next на приведенном выше экране, и появится следующий экран.

Шаг 15 — Выберите имена учетных записей служб и типы запуска для перечисленных выше служб и нажмите Сортировка.

Шаг 16 — Убедитесь, что выбран правильный параметр сортировки и нажмите Далее.

Шаг 17 — Убедитесь, что выбран режим аутентификации и администраторы проверены, и нажмите «Каталоги данных».

Шаг 18 — Убедитесь, что выбрали вышеуказанные каталоги и нажмите Далее. Появится следующий экран.

Шаг 19 — Нажмите Далее на приведенном выше экране.

Шаг 20 — Нажмите Далее на приведенном выше экране, чтобы получить следующий экран.

Шаг 21 — Обязательно проверьте правильность выбора выше и нажмите «Установить».

Установка прошла успешно, как показано на экране выше. Нажмите Закрыть, чтобы закончить.

MS SQL Server — Архитектура

Для удобства понимания мы классифицировали архитектуру SQL Server на следующие части:

  • Общая архитектура
  • Архитектура памяти
  • Архитектура файла данных
  • Архитектура файла журнала
Современная техника - портал Миникод