Как я работал администратором sql
Перейти к содержимому

Как я работал администратором sql

  • автор:

SQL-Ex blog

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

В этом руководстве я рассмотрю исходную ситуацию, при которой вы хотите использовать явные транзакции. Мы начнем с понятия явной транзакции и чем она отличается от режима автоматической фиксации (auto-commit), принимаемого по умолчанию. К концу статьи я хочу, чтобы вы приняли обоснованный выбор того, что из них использовать.

Режимы транзакций SQL

Brady Upton написал серию советов с описанием транзакции как единицы работы, выполняемой над базой данных. SQL Server имеет три основных режима транзакций. Давайте вкратце их рассмотрим. Я не собираюсь обсуждать неявные транзакции. Я также не буду сравнивать производительность этих двух крайних случаев использования.

Auto-commit

По умолчанию SQL Server использует автоматическую фиксацию (Auto-commit). При auto-commit конечному пользователю не требуется выполнять какие-либо команды для фиксации транзакции. Например, в нижеприведенном операторе SQL мы создаем две простых таблицы и вставляем по строке в каждую.

CREATE TABLE dbo.Checking 
(
ID INT NOT NULL,
Amount DECIMAL(19, 2) NOT NULL,
ShortDescription NVARCHAR(100) NOT NULL,
TransactionDate DATE NOT NULL
);
GO
CREATE TABLE dbo.Savings
(
ID INT NOT NULL,
Amount DECIMAL(19, 2) NOT NULL,
ShortDescription NVARCHAR(100) NOT NULL,
TransactionDate DATE NOT NULL
);
GO
INSERT INTO dbo.Checking
(
ID,
Amount,
ShortDescription,
TransactionDate
)
VALUES
(1, 25.00, 'Starting my checking account', GETDATE());
INSERT INTO dbo.Savings
(
ID,
Amount,
ShortDescription,
TransactionDate
)
VALUES
(1, 100.00, 'Starting my savings account, Thanks dad!', GETDATE());
SELECT SUM(Amount) AS [Total], -- Оператор SELECT
'Savings' AS [AccountType]
FROM dbo.Savings
UNION ALL
SELECT SUM(Amount) AS [Total],
'Checking' AS [AccountType]
FROM dbo.Checking;
GO

Автоматическая фиксация настолько проста, насколько это возможно. Она требует минимального количества кода. Однако у нее есть недостатки. Главное, на чем мы фокусируемся, это то, что если что-то пойдет не так с оператором первой вставки, и вы не хотите, чтобы выполнялась вторая вставка, вас постигнет неудача. Давайте рассмотрим это в действии. В примере ниже я перевожу 100 долларов со своего сберегательного счета на чек:

INSERT INTO dbo.Savings 
(
ID,
Amount,
ShortDescription,
TransactionDate
)
VALUES
(2, -100.00, 'Снимаем деньги со счета.', GETDATE());
INSERT INTO dbo.Checking
(
ID,
Amount,
ShortDescription,
TransactionDate
)
VALUES
(2, 100.00, 'Снимаю деньги с моего счета за копию новой игры NES, извини, папа! Я верну их после того, как устроюсь на работу.', GETDATE());
GO

Обратите внимание, что второй оператор INSERT завершился неудачно. Я надеюсь, что мой счет не уменьшился на 100 долларов. Однако это не так.

Теперь давайте посмотрим, как обойти такое поведение.

Явные транзакции в T-SQL

При явных транзакциях вы говорите SQL Server начать транзакцию с помощью команды BEGIN TRANSACTION. После завершения вашего оператора вы можете выполнить ROLLBACK (откат) или COMMIT (фиксацию). В идеале вы должны бы обернуть транзакцию в блок TRY. CATCH. Вы можете откатить транзакцию и вызвать исключение при возникновении ошибки.

Если вы не хотите воспользоваться TRY. CATCH, то можете включить SET XACT_ABORT ON. Эта команда удобна, поскольку она откатит транзакцию, если возникнет исключение. По умолчанию XACT_ABORT выключена.

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

SET XACT_ABORT ON; 
BEGIN TRANSACTION; -- Оператор начала транзакций
INSERT INTO dbo.Savings
(
ID,
Amount,
ShortDescription,
TransactionDate
)
VALUES
(2, -100.00, 'Taking money out of my savings account.', GETDATE());
INSERT INTO dbo.Checking
(
ID,
Amount,
ShortDescription,
TransactionDate
)
VALUES
(2, 100.00, 'Taking money out of my account for a copy of a new NES games, sorry dad! I will replace it after I get a job.', GETDATE());
COMMIT TRANSACTION;

Деньги остаются на моем вкладе, пока я не укорочу сообщение.

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

Изменение рекомендаций

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

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

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

Заключение

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

Инструментарий разработчика: SQL Assistant

Я работаю разработчиком БД (MS SQL) и большая часть моей работы, это написание кода на T-SQL. Работая в Query Analyzer, а затем в Management Studio (2005, 2008, 2008R2) мне очень сильно не хватало функций редактора и дополнительных функций среды разработки, направленных именно на процесс написания кода, построения запросов и т.п… По сравнению с MS Visual Studio или Embarcadero RAD Studio, что мог предложить Query Analyzer? Изменить отступ блока кода, изменить регистр выделенного текста, закомментировать и отменить комментирование блока кода, перетащить название таблицы или поля (полей) в окно редактора, заскриптовать выбранный объект. А ведь так не хватало полноценного IntelliSense. Всех этих удобных функций по автодополнению, интерактивных подсказок к набираемому коду, выбор из списка объектов и т.п.

С выходом MS Management Studio 2005 ситуация не изменилась. И только в MS Management 2008 появился Transact-SQL IntelliSense. Да, появилось автозавершение набираемого слова, предоставление списка объектов БД и полей таблицы, подсветка синтаксических пар (begin… end, ()). Но уже до этого я стал пользоваться сторонней утилитой SQL Assistant от SoftTree Technologies. На фоне возможностей, которые предоставляет SQL Assistant родной IntelliSense просто дубовый. А разве можно получить что-то большего, ведь это SQL, а не объектно-ориентированный язык? Можно! В этой статье я хотел бы рассказать об утилите SQL Assistant, а точнее о функция и приемах, которые я использую при написании SQL-кода.

Теория

SQL Assistant – инструментарий для разработчиков и администраторов баз данных. Может использоваться при работе над проектами любой степени сложности, от небольших баз данных до комплексных корпоративных систем. Программное обеспечение оказывается готовым к эксплуатации немедленно после установки и не предполагает приостановки текущих рабочих процессов. Инструментарий повышает продуктивность труда SQL-разработчиков и гарантирует высокое качество кода. В том числе в состав пакета входят превосходные инструменты для проверки правильности SQL-синтаксиса, механизмы автозавершения синтаксических конструкций, средства быстрой навигации по программному коду и многое другое. В распоряжении пользователей также окажется интегрированный блок проверки правописания. Среди других достоинств продукта стоит упомянуть поддержку наиболее распространенных СУБД (Oracle, SQL Server, DB2, MySQL, Sybase ASE, Sybase ASA, MS Access и соответствующих SQL-диалектов).

SQL Assistant встраивается в Management Studio и через пункт главного меню или через контекстное меню редактора кода доступны все его команды.

  • Ассистент ввода кода
  • Навигация по коду (структура кода, карта документа)
  • Форматирование кода
  • Шаблоны и генераторы кода
  • Функции рефакторинга
  • Интерактивная система помощи ввода SQL-конструкций
  • Получение скрипта объекта (скрипт создания таблицы, процедуры, функции и т.п.)
  • Быстрый просмотр таблицы
  • Скриптование, импорт, экспорт данных
  • Отдельное исполнение SQL
  • Планировщик выполнения SQL (используя планировщик Windows)
  • Генератор тестовых данных
  • Фреймворк модульного тестирования
  • Проверка синтаксиса в фоновом режиме
  • Анализатор производительности запросов
  • Интеграция с системой контроля версий
  • Проверка правописания
  • Сравнение кода
  • Закладки

Основную информацию можно найти на официальном сайте и в документации (ссылки в конце статьи). А здесь я хочу рассказать о самом главной функции этой утилиты, самом ассистенте – контекстно-зависимое всплывающее окошко, которое появляется в редакторе кода.

Практика

Ассистент оказывает помощь в зависимости от места, где его вызывали, начиная от подсказок для автодополнения набираемых слов и заканчивая построения связей между таблицами. На написание запроса со связкой нескольких таблиц уходит намного меньше времени. Уже не ошибешься в названии таблиц и полей, нет необходимости помнить поля первичного ключа и поля внешних ключей для построения связей. Необходимо только указывать названия таблиц из списка, а SQL Assitant сам закончит конструкцию join на основе выбранного внешнего ключа.

Начинаю писать запрос с секции from. Указан название первой таблицы, набираю inner join и ассистент в окошке показывает список таблиц, на которые существует внешние ключи из таблицы Product. Красным подсвечены поля, по которым будет выполнено соединение двух таблиц. Выбираю соединение с таблице ProductInventory и получаю код:

SELECT
FROM
Production. Product p
INNER join Production. ProductInventory pi1 ON pi1. ProductID = p. ProductID

Далее продолжаю построение запроса, набираю inner join и ассистент показывает список таблиц, на которые существуют внешние ключи уже из таблицы ProductInventory, но так же доступны и соединения от таблицы Product.

Построение связей работает в именно в разделе from, т.е. и для select, insert, delete, update. Если необходимо построить соединение между таблицам не связанными внешним ключом, то необходимо указать эти таблицы и SQL Assistant может предложить построить связь по полям с одинаковыми названиями.

Полученный код запроса:

SELECT
FROM
Production. Product p
INNER join Production. ProductInventory pi1 ON pi1. ProductID = p. ProductID
INNER join Production. Location l ON l. LocationID = pi1. LocationID
INNER join Production. ProductReview pr ON pr. ProductID = p. ProductID

Приводиться в нужный вид с помощью функции форматирования. Правила форматирования кода настраиваемые.

SELECT
FROM
Production. Product p
INNER join Production. ProductInventory pi1
ON
pi1. ProductID = p. ProductID
INNER join Production. Location l
ON
l. LocationID = pi1. LocationID
INNER join Production. ProductReview pr
ON
pr. ProductID = p. ProductID

Переместив курсор в раздел select ассистент покажет подсказку для выбора полей, которые будут включены в выборку, из таблиц, перечисленных в разделе from. Такой же принцип в любом разделе запроса (where, group by, order by).

Кроме информации о типе поля, для полей, составляющие первичный ключ отображается иконка в виде желтого ключика, зеленый ключик – поля внешнего ключа, молния – по полю построен индекс.
В списке доступны и другие объекты из текущей БД других БД сервера. Если выбрать поле из таблицы, которая отсутствует в разделе from, то она автоматические будет добавлена в раздел from. Остается только дописать необходимые условия связи.

  • локальные переменные;
  • временные таблицы;
  • постоянные таблицы;
  • представления;
  • процедуры;
  • функции;
  • синонимы;
  • схемы;
  • базы данных;
  • встроенные функции.

Все зависит от контекста вызова помощника. Так, если написать конструкцию insert Production.Product то при вызове помощника можно выбрать нужные поля таблицы, для которой пишется оператор insert.

Но удобнее воспользоваться помощником в момент написания самого оператора. После того, как я написал оператор insert помощник предлагает мне выбрать объект БД.

После того, как я выберу нужную таблицу, автоматически получу вот такой код:

Похожим образом получается и с оператором update. Автоматически генерируется код при аналогичной последовательности ввода:

UPDATE Production. Location
SET
— LocationID = ? — this column value is auto-generated
Name = ?,
CostRate = ?,
Availability = ?,
ModifiedDate = ?

Можно даже объявить переменные на основе структуры таблицы. Набираю declare и выбираю таблицу Location, в результате формируется код:

DECLARE
@LocationID SMALLINT ,
@Name name,
@CostRate SMALLMONEY ,
@Availability DECIMAL ( 8 , 2 ) ,
@ModifiedDate DATETIME

Построение вызова процедуры или функции.

Даже те объекты, которые создаются или объявляются в коде, становятся доступным в окне помощника. Учитывается создания временных таблиц, объявление переменных, в том числе табличных.


Если по коду я встречу переменную, то зажав клавишу Ctrl и кликнув по этой переменной, я перемещусь в место, где это переменная была объявлена. Но проще подвести курсор к этой переменой для получения всплывающей подсказки, в которой будет указан тип переменой. Для таблицы будет отображена ее структура и ссылки для получения скрипта на создание, быстрого просмотра содержимого и получения дополнительной информации. Системные
Для процедуры – список параметров, и т.п. для других объектов.



Для встроенных функций всплывающая подсказка с кратким описанием функции. А помощник поможет при вводе параметров.

Заключение

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

Что нужно знать, чтобы стать администратором БД?

Я — сисадмин с некоторым опытом. И сложилось так, что никогда не сталкивался с базами данных. Я помню теорию реляционных СУБД, могу сделать в Access достаточно сложную БД.

Но я абсолютно без понятия, как работать с другими базами(MySQL, PostreSQL, Oracle и т.д.), что входит в обязанности администратора БД, таких БД. Когда последний раз искал работу, несколько хороших мест запоролось, именно из-за того, что не было никакого опыта с MySQL. Посоветуйте, что почитать.

  • Вопрос задан более трёх лет назад
  • 14532 просмотра

Комментировать
Решения вопроса 0
Ответы на вопрос 6
System engineer and PostgreSQL DBA

последние полгода работаю postgresql dba, а вырос как раз из linux admin’а на все руки.
как я стал dba,
1. на предыдущей должности постоянно работал с postgresql (администрирование, репликации, балансировка, пуллинг, бэкапы, миграции налету между мажо. и прочее. чем больше ситуаций, тем больше опыта.
2. помимо этого я хорошо изучал внутренности linux и его ядра (спасибо gentoo), память, процесы, и пр. Очень помогла книга «Ядро Linux» авторы Бовет и Чезатти.
3. также не напоследнем месте стоит опыт в анализе производительности (почитайте Брендана Грега), особенно когда нет всяких мониторингов и т.п. а что тормозит нужно выяснить прямо сейчас.
4. ну и заводите знакомства LinkedIn, Хабр. общайтесь напрямую с людьми, посещайте конференции, подписывайте на специализирвоанные блоги/RSS (PostgreSQL Planet например у постгрес)
5. конкретно по постгресу могу порекомендовать такие книги
S.Riggs, H.Krosing, PostgreSQL 9 Administration Cookbook PACKT 2010
Z.Boszormenyi H..J.Schonig PostgreSQL Replication PACKT 2013
G.Smith PostgreSQL 9 0 High Performance PACKT 2013

Ответ написан более трёх лет назад
Комментировать
Нравится 5 Комментировать

Ну, вообще у каждой БД есть своя документация достаточно большая,
например для постгреса www.postgresql.org/docs/9.3/static/index.html
И там чаще всего есть глава «администрирование»:
www.postgresql.org/docs/9.3/static/admin.html
Вот как раз это и нужно знать.

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

PS. К слову сказать, искал как-то раз админа постгреса на 150к. Никого! Тишина, благодать, все вокруг дизайнеры и программисты.

Ответ написан более трёх лет назад
Нравится 3 2 комментария
Никита @Nikobraz Автор вопроса

Я заметил, что на рынке труда появляются вакансии админовБД, за нереальные деньги для обычного сисадмина. Чем вообще занимается админБД? Можете пару реальных задач привести? Из Вашей ссылки я правильно понял, установка СУБД, создание БД, мониторинг и оптимизация производительности, бэкапы?

@Nikobraz отвечу так: админ БД — он как менеджер проекта: хрен знает, зачем нужен, пока не поработаешь с грамотным специалистом.

Ну, примерно как всю жизнь писать код в notepad и ворчать: «да зачем мне эти ваши IDE, мороки только с ними. «. А потом как-то раз попробовать IDE — ухты, удобно!

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

Что же касается оплаты — ну, данные обычно дороже кода стоят 🙂

Работаю сисадмином занимаюсь в основном Оракл более 10 лет. Во первых надо хотя бы на уровне пользователя знать Unix like системы. То есть уметь настроить, систему без графики и понимать как она работает (распределение памяти, IO система). Системы RHEL, Solaris, HP-UX. Из всех прослушенных курсов по оракл, больше всего знаний я получил на «SQL & PLSQL Fundamentals», правда слушал его в 2003 году еще по 8i, начните изучение этого. Курсы «Администрирование БД» мне были безполезны, возможно слушал не вовремя. После основ SQL изучите распределение памяти, 11g может это делать сам, но знать необходимо. И обятельно изучить backup/recovery. А такие вещи как disaster recovery/perfomace tunning если будете работать DBA, изучите так как необходимость в этом очень часто и стандартного решения нет.

Ответ написан более трёх лет назад
Нравится 3 2 комментария
Никита @Nikobraz Автор вопроса

Спасибо за развернутый, но лаконичный ответ. Осталось только до специфичных ОС добраться. Красношапка и Соляра бесплатные бывают? Вместо RHEL допустим Фидору помучить можно, а с Solaris какая-то чехарда была года 4 назад.

Вместо RHEL скорее центос или OEL( так как репозитории открытые в него можно превратить Centos). Так как версии разные. Solaris, HPUX в небольших компаниях вряд ли встретите, я описал то с чем пришлось сталкнуться мне работая в нескольких компаниях. Сейчас достаточно много работаю с фирмами используюшими Оракл по всей России, но большенство из них в качестве ОС используют Windows. Так как толкового админа unix like систем найти не могут или не выгодно.

5 вопросов на собеседовании по SQL Server DBA (с примерами ответов)

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

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

Чего ожидать от собеседования на должность DBA SQL-сервера

Администратор базы данных отвечает за ряд задач, связанных с данными и их хранением. В динамично развивающейся бизнес-среде, использующей большой объем различных типов данных, квалифицированные администраторы баз данных играют жизненно важную роль в общем успехе компании. На собеседовании на должность SQL DBA можно ожидать несколько вопросов, проверяющих ваши навыки и опыт. Форматы вопросов включают:

  • Знание основ баз данных
  • Навыки SQL
  • Инфраструктура
  • Разработка баз данных
  • Открытые вопросы

5 распространенных вопросов и ответов на собеседовании по SQL server DBA

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

1. Какие типы репликации поддерживает SQL-сервер?

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

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

2. Как устранить проблему производительности SQL Server??

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

Пример: По моему опыту, лучше всего иметь инструменты мониторинга производительности до возникновения проблем, которые могут потребовать мониторинга. Например, когда я работал DBA в ChemCal Corp, я устранял неполадки по мере их возникновения. Чтобы решить эту задачу, я внедрил программное обеспечение для мониторинга, которое эскалировало проблемы и определяло их приоритетность по степени серьезности. Благодаря предоставленным инструментам мониторинга уровня видимости я мог наблюдать за работой системы даже тогда, когда все шло гладко. Это помогло мне быть лучше подготовленной к проблемам и к тому, как с ними справляться.

3. Что такое блокировка и как с ней лучше всего бороться?

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

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

4. Что такое DBCC?

Интервьюер может спросить вас о важных концепциях администратора базы данных, таких как команды консоли базы данных (DBCC). Это позволяет интервьюеру оценить уровень вашего знакомства с этими ключевыми понятиями. Кратко объясните, что такое DBCC и как вы используете его в своей работе.

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

5. Какие модели восстановления вы можете использовать в SQL server?

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

Пример: Существует три типа моделей восстановления. Полное восстановление — это наиболее полная модель восстановления, поскольку она полностью регистрирует все операции базы данных в файле транзакций, что позволяет восстанавливать данные в любой момент времени. Bulked — это аналогичный процесс, но он часто исключает некоторые операции, такие как ‘SELECT INTO’ и ‘BULK INSERT.’ Наконец, простая модель восстановления позволяет сэкономить место в журнале восстановления, но ограничивает возможности восстановления информации в базе данных.

Советы по прохождению собеседования на должность администратора баз данных SQL server

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

  • Приведите практические примеры. Отвечая на вопросы специалиста по найму, ищите возможность упомянуть те области вашей предыдущей работы или учебы, которые относятся к данному вопросу. Предложив практический пример вашего знакомства с концепцией и того, как вы работали в прошлом, вы можете показать свою ценность как сотрудника.
  • Потренируйтесь с другом. Если возможно, работайте с другим человеком при отработке ответов на собеседовании, попросив его притвориться интервьюером. Это позволит им дать ценную обратную связь по поводу ваших ответов и манеры поведения.
  • Слушайте внимательно. Уделяйте пристальное внимание вопросам, которые задает вам интервьюер, и любым реакциям на ваши ответы. Это может помочь вам определить ключевую информацию, например, важные для них элементы, которые вы можете использовать в последующих ответах для улучшения качества ваших ответов.
  • Сохраняйте положительные отзывы о других людях. При обсуждении людей, с которыми вы работали, например, бывших коллег или руководителей, старайтесь использовать позитивные формулировки. Ваш потенциальный работодатель может воспринять то, как вы отзываетесь о своих бывших работодателях, как то, как, по его мнению, вы будете отзываться о них после ухода из организации, поэтому полезно сохранять позитивный настрой.
  • Приоритет — быть честным. Хотя часто полезно давать положительные ответы о своей работе, старайтесь, чтобы все ответы были точными. Работодатель может проверить фактами ваши утверждения во время собеседования, особенно на конкурентных или высокооплачиваемых должностях, поэтому очень важно, чтобы информация, которой вы поделитесь, была правдивой и поддавалась проверке.

Ключевые слова:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *