Друзья, доброго времени суток!

Рады видеть вас на проекте SqlCom.ru о Microsoft SQL Server. У нас вы найдёте интересные статьи, видео материалы, новости, переводы статей на русский язык и многое другое. Публикуемая здесь информация будет полезна как разработчикам баз данных (SQL Database Developer), так и администраторам баз данных (SQL Database Administrator, DBA).

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

Цель проекта - сформировать активное сообщество, с которым будет приятно не только работать, но и отдыхать. Для продвижения идеи совместного отдыха иногда устраиваем мероприятия в Москве и Петербурге.

Топ вопросов для собеседование на позицию Разработчик 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. Что такое и как устроено

Читать далее

Рубрика: Полезно и интересно | Метки: , , , | Оставить комментарий

Улучшения Оптимизатора Запросов в SQL Server 2017 (вебинар)

Улучшения Оптимизатора Запросов в SQL Server 2017

Описание:

SQL Server 2017 привносит много нового в имеющийся функционал сервера, в том числе и улучшения в обработке и оптимизации запросов. В докладе мы поговорим об улучшениях в трех основных областях:
— Адаптивная Обработка Запросов: адаптивные соединения, обратная связь по гранту памяти и выполнение с чередованием для Multistatement табличных функций.
— Хранилище запросов (Query Store): Автоматическая коррекция регрессии планов.
— Оптимизатор запросов: новые операторы плана, улучшения режима Batch, улучшенная диагностика Showplan

Докладчик: Дмитрий Пилюгин, долгое время занимался разработкой корпоративных информационных систем на базе MS SQL Server. В настоящее время работает в группе баз данных компании TNS Gallup. Ведет технический блог www.queryprocessor.com, посвященный SQL Server, периодически выступает в качестве докладчика на различных конференциях, а также активно участвует в профессиональных SQL Server сообществах, консультируя в области оптимизации запросов. Является обладателем статуса MVP по SQL Server.

Регистрация

Рубрика: События и мероприятия | Метки: | Оставить комментарий

SQL Server 2017 на Windows, Linux и Docker стал доступен

SQL Server 2017 на Windows, Linux и Docker стал доступен

02.10.2017 стал доступен SQL Server 2017.

Пробную и другие версии можно скачать по этой ссылке

Вот несколько нововведений SQL Server 2017:

  1. Поддержка контейнеров.
  2. Поддержка Python
  3. Адаптивная обработка запросов
  4. Автоматическая корректировка планов
  5. Приостановка перестройки индексов онлайн

Рубрика: Новости | Метки: | Оставить комментарий

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

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

Мы планируем увеличить активность нашего сообщества в нескольких направлениях и мы хотим чтобы эти направления выбрали вы. Для этого необходимо ответить всего на 5 простых вопроса:

Ссылка на опросник — https://docs.google.com/forms/d/e/1FAIpQLSfX0LJ4oDxE7xOtMJRP_q2XMoRS-jgwEsmjCjTQ6Z6MGHl7aA/viewform

Рубрика: Новости | Метки: | Оставить комментарий

AlwaysOn. Проблемы производительности реплики на чтение

Вырезка из статьи: SQLskills SQL101:Readable secondary performance problems

Группа доступности AlwaysOn (AG) отличный инструмент, который позволяет без дополнительных ухищрений иметь возможность чтения данных со вторичной реплики. До появление AG, мы могли воспользоваться Зеркалированием, но тогда доступ на чтение мы могли получить только через создание снимка БД, который даёт только статическую информацию на момент его создания. Реплика, доступная на чтение в AG, постоянно обновляется, что позволяет получать максимально свежие данные.

Но, тема же называется «AlwaysOn. Проблемы производительности реплики на чтение» и я хотел бы рассмотреть какую цену мы платим за такое удобство.
Читать далее

Рубрика: AlwaysOn | Метки: , | Оставить комментарий

Накопительный пакет обновлений 5 для SQL Server 2016 SP1

Накопительный пакет обновлений 5 для SQL Server 2016 SP1

Вышел накопительный пакет обновлений 5 для SQL Server 2016 SP1. Список текущих и прошлых исправлений для SQL Server 2016 можно найти здесь.

Самые интересные исправления:

  1. FIX: Performance drop when using In-Memory OLTP with Always On availability groups in SQL Server 2016
  2. FIX: Incorrect behavior when you use memory-optimized tables with «where exists» statement in SQL Server 2016
  3. FIX: Memory use with many databases greater in SQL Server 2016 than earlier versions

Всего было сделано 49 исправлений, вот разбивка по компонентам SQL Server:

  1. BI\Analysis Services (4 шт)
  2. BI\Reporting Services (7 шт)
  3. Integration Services\Tools (1 шт)
  4. Master Data Services\Client (2 шт)
  5. Master Data Services\Server (2 шт)
  6. SQL Engine\Backup_Restore (4 шт)
  7. SQL Engine\Column Stores (4 шт)
  8. SQL Engine\Extensibility (2 шт)
  9. SQL Engine\Extreme OLTP (2 шт)
  10. SQL Engine\High Availability and Disaster Recovery (4 шт)
  11. SQL Engine\Management Services (2 шт)
  12. SQL Engine\Metadata_Infrastructure (1 шт)
  13. SQL Engine\Polybase (2 шт)
  14. SQL Engine\Programmability (2 шт)
  15. SQL Engine\Query Execution (1 шт)
  16. SQL Engine\Query Optimizer (1 шт)
  17. SQL Engine\Replication (3 шт)
  18. SQL Engine\Spatial (1 шт)
  19. SQL Engine\SQLOS (1 шт)
  20. SQL Engine\Storage Management (1 шт)
  21. SQL Engine\Transaction Services (2 шт)
Рубрика: Полезно и интересно | Метки: | Оставить комментарий

Это мое. Блокировки, Дедлоки и прочая чепуха (видео)

Это мое. Блокировки, Дедлоки и прочая чепуха (видео)

Описание

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

Докладчик

Дмитрий Короткевич работает с SQL Server более 14 лет и специализируется в архитектуре, дизайне, разработке и оптимизации OLTP систем, обрабатывающих тысячи транзакций в секунду. Дмитрий является SQL Server MVP, а также имеет сертификации Microsoft Certified Master и Microsoft Certified Professional Developer. Автор книги «Pro SQL Server Internals».

От SqlCom.ru

Один из лучших Русскоязычных докладчиков очень доходчиков расскажет о своей любимой теме — блокировки в SQL Server. Крайне рекомендую к просмотру.

Слайды и Скрипты

Мониторинг блокировок через Event Notifications

Блог Дмитрия

Рубрика: Оптимизация (видео) | Метки: | Оставить комментарий

Вебинар введение в язык программирования R (24.08.2017)

Вебинар введение в язык программирования R (24.08.2017)

Коллеги,

24.08 в 21:00 (Мск) состоится вебинар от нашего друга и соратника Константина Таранова @ktaranov (Телеграм) c большим MSSQL бэкграундом.

Сейчас определяется через какой именно сервис будет происходить трансляция. За 30-60 до начала вебинара просьба зайти в нашу группу Телеграм и получить подробности по трансляции.

Рубрика: События и мероприятия | Оставить комментарий

Сжатие данных в SQL Server (COMPRESSION)

Сжатие данных в SQL Server (COMPRESSION)

Перевод статьи: Table and Index Compression

Сжатие данных доступно только в SQL Server Enterprise Edition, но начиная с SQL Server 2016 SP1, его добавили во все редакции. Нет так просто ответить на вопрос «будет ли польза от использования сжатия данных в конкретном случае или нет». Предлагаю рассмотреть это более детально.

Плюсы

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

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

Минусы

Сжаты могут быть только данные, которые хранятся в строках (in-row). Это означает, что длинные строки (более 8 Кб) и LOB данные (большие) не могут быть сжаты, так как они хранятся не в строках, а помещаются в специальное хранилище, а в строке остаётся ссылка на них.

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

Для каждого доступа к сжатым данным требуются дополнительные ресурсы CPU. Данные находятся в сжатом виде не только на диске, но и в памяти, по этой причине, при каждом обращении к ним, требуется распаковка. Не следует применять сжатие к очень горячим данным, так как обращение к ним будет замедляться из-за дополнительного этапа распаковки. Читать далее

Рубрика: В помощь администратору | Метки: | Оставить комментарий

Новая функция COMPRESS() в SQL Server 2016

Новая функция COMPRESS() в SQL Server 2016

Перевод статьи: The COMPRESS() TSQL Function in SQL Server 2016+

Ещё одно полезное нововведение в SQL Server 2016 — это функция COMPRESS(). Она доступна во всех редакциях и выполняет сжатие данных по средствам GZIP алгоритма (документация)

Что известно о COMPRESS()

  • Сжатые данные хранятся в VARBINARY(MAX)
  • Распаковка данных происходит с помощью функции DECOMPRESS(), которая так же получает данные в VARBINARY(MAX)
  • Вы не можете создавать индексы на колонке VARBINARY(MAX), но в некоторых случаях вы можете использовать эту колонку для фильтра в фильтрованных индексах

Давайте рассмотрим пример

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

Предположим что у нас есть таблица с полем «Заметки», поле позволяет использовать NULL, длина заметки может существенно отличается (от 0 до огромного количества символов).

Первым делом я создаю 2 таблицы, почти везде «Заметки» в значении NULL, но в 10 000 строк они имеют значение от 3 байт до 29 Кб. Читать далее

Рубрика: Полезно и интересно | Метки: , | Оставить комментарий