Топ вопросов для собеседование на позицию Разработчик SQL Server

Топ вопросов для собеседование на позицию Разработчик SQL Server

Прошлая статья «Вопросы для Администраторов» получилась очень удачной и мы решили сделать новую, но на этот раз для Разработчиков SQL Server. Мы не будем разбирать все ответы, а только расскажем вам что следует изучить и какие бывают вопросы на собеседованиях.

Начнём с базовых вопросов для разработчика

  1. Агрегатные функции
  2. Индексы: виды, как организованы, различия
  3. Уровни изоляции транзакций (спрашивают 9 из 10 раз)
  4. Типы логических соединений (Inner Join, Left Join, Right Join и тд.)
  5. Триггеры
  6. Логический порядок обработки инструкции SELECT
  7. Null и как с ним работать
  8. Try/Catch
  9. Работа с SQL Profiler (старое направление, но многие спрашивают) и Extended Events
  10. Обобщённое табличное выражение (СTE)
  11. Как написать динамический SQL (exec, sp_executesql)
  12. Нормализация и денормализация БД
  13. Хинты. Чем могут помочь. Риски
  14. Курсоры.

Так же очень полезно знать

  1. Типы физических соединений (Merge Join, Hash, Nested Loop. Как работает, чем отличается)
  2. Оконные функции
  3. План запроса (Seek, Scan, Spool, Key Lookup и тд.)
  4. Секционирование. В каких случаях и для чего применяется. Как физически выглядит. Какие при этом бывают индексы
  5. Временная таблица и табличные переменные
  6. Понимание механизма распределенных транзакций
  7. Служба сервис-брокер и основные понятия
  8. Полнотекстовый поиск
  9. Виды репликаций, их особенности и сферы применения
  10. Как работает оптимизатор
  11. SQLOS. Что такое и как устроено

А теперь перейдём к конкретным вопросам

  1. Наверняка попросят написать или оптимизировать какой то запрос, спросят как-что лучше спроектировать и почему
  2. Нужно быстро удалить записи из таблицы. Как это сделать быстро?
  3. Удаление дубликатов из таблицы (несколько способов)
  4. Чем отличается count(*) от count(name)?
  5. Чем отличается decimal от float, для каких задач лучше применять каждый из этих типов?
  6. Нарастающие итоги
  7. Задачи типа gaps and islands
  8. Что делать, если у вас случилось переполнение столбца int, а вам нужно быстро продолжить работу?
  9. Дана таблица:
    CREATE TABLE dbo.call 
    ( 
    subscriber_name VARCHAR(64) NOT NULL, 
    event_date DATETIME NOT NULL, 
    event_cnt INT NOT NULL 
    )

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

  10. Как бы вы оптимизировали следующий запрос (показан полный скрипт таблицы; приведите обоснование своего выбора)?
    CREATE TABLE dbo.call 
    ( 
    id INT IDENTITY PRIMARY KEY CLUSTERED, 
    subscriber_name VARCHAR(64) NOT NULL, 
    event_date DATETIME NOT NULL, 
    subtype VARCHAR(32) NOT NULL, 
    type VARCHAR(128) NOT NULL, 
    event_cnt INT NOT NULL 
    )
    
    SELECT * 
    FROM dbo.call 
    WHERE subscriber_name = @a 
    AND event_date > @b 
    AND subtype = @c
  11. Из таблицы следующей структуры:
    CREATE partition FUNCTION pf_monthly(datetime) AS range RIGHT FOR VALUES ( 
    '20120201', '20120301', '20120401', '20120501', '20120601', '20120701', 
    '20120801', '20120901', '20121001', '20121101', '20121201')
    
    go
    
    CREATE partition scheme ps_monthly AS partition pf_monthly ALL TO ([primary])
    
    go
    
    CREATE TABLE dbo.order_detail 
    ( 
    order_id INT NOT NULL, 
    product_id INT NOT NULL, 
    customer_id INT NOT NULL, 
    purchase_date DATETIME NOT NULL, 
    amount MONEY NOT NULL 
    ) 
    ON ps_monthly(purchase_date)
    
    go
    
    CREATE CLUSTERED INDEX ix_purchase_date 
    ON dbo.order_detail(purchase_date)
    
    go

    Необходимо удалить случайно внесенные данные по клиенту с id 42, за период с мая по июнь (включительно) 2012-го года, что составляет более 80% записей за этот период. В таблице несколько миллиардов записей. Какие есть способы решения данной задачи?

  12. Система успешно работала полгода, затем неожиданно производительность серьезно деградировала. Каковы возможные проблемы, пути решения?
  13. Какое отличие(я) между delete from dbo.my_table и truncate table?
Запись опубликована в рубрике Полезно и интересно с метками , , , . Добавьте в закладки постоянную ссылку.

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

Войти с помощью: