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

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

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

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

Сжатие данных в 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 Кб. Читать далее

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

Базовая информация о сервере и БД

Базовая информация о сервере и БД

Бывают моменты когда вам необходимо начать работать с БД, о которой вы или ничего не знаете или знаете очень мало. Обычно у вас есть 2 варианта: или вы работаете очень давно и чётко понимаете что вам нужно и где это искать или начинаются поисики по интернету. Первый случай скорее всего является проверенным на множестве серверов и его можно считать более менее надёжным, а вот со вторым часто возникают вопросы. Кроме больших затратов времени, ваши поиски могут не дать полную картину и чтобы вы не тратили время в пустую, я решил помочь вам.

Олег написал интересную статью с названием «Исследуем базы данных с помощью T-SQL» (ссылка на статью). В статье вы узнаете как легко получить следующую информацию:

  1. Когда был последний backup всех БД
  2. Список всех Linked Servers
  3. Активные пользовательские соединения
  4. Где лежат файлы БД
  5. Количество записей в таблицах
  6. Активность таблиц
  7. Есть ли синонимы
  8. Какие check-ограничения, значения по-умолчанию и вычисляемые столбцы присутствуют
  9. Рекомендумые индексы для вашей системы
  10. Зависимости
  11. и т.д.

Читать далее

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

Соревнование PGHACK от AvitoTech (07.08.2017-25.05.2017)

Соревнование PGHACK от AvitoTech (07.08.2017-25.05.2017)

Бесплатная регистрация

Приглашаем опытных разработчиков и администраторов баз данных принять участие в первом в России очном соревновании по восстановлению работоспособности PostgreSQL! Как это сделать? Зарегистрироваться и пройти отборочный тур. Это 5 вопросов в регистрационной форме мероприятия. Первые 50 участников, которые правильно ответят на них, получат приглашение на финальный раунд, который будет проведен в московском офисе Avito 2 сентября. Регистрируйтесь, отвечайте на вопросы, попадайте в финал! Получите возможность лично поучаствовать в этом уникальном событии и, конечно, шанс выиграть главный приз — квадрокоптер!

Важно

Это соревнование для профессионалов в работе с базами данных PostgreSQL. Для успешного прохождения этапов желательно знать:

  • что такое MVCC;
  • как работают триггеры;
  • как PostgreSQL обеспечивает валидность данных, которые хранятся в таблице;
  • как администрировать Linux (установка программы из исходного кода, ручная сборка).

Этапы PGHACK Читать далее

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

Обязанности Администратора Баз Данных в России

Обязанности Администратора Баз Данных в России

Обязанности Администратора Баз Данных в России

Если вы ещё не в курсе, то в Российской Федерации был принят документ «Профессиональный стандарт Администратор баз данных» от 17.09.2014 № 647н. 

После прочтения этого документа, на удивление, я обнаружил что составлен он достаточно хорошо и что у тех, кто его писал, есть отличное понимание обязанностей Администратора Баз Данных. Но, конечно, не обошлось и без забавных моментов. Например, «Группа занятия» Администратора Баз Данных выглядит вот так:

Не буду комментировать этот момент, пусть каждый оценит его сам.

Рекомендую всем ознакомиться с этим документом. Документ будет полезен и работодателю, он поможет понять обязанности Администратора Баз Данных.

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

Конференция Agile,DevOps и ITIL 2017 – инструменты цифровизации (26.09.2017)

Конференция Agile,DevOps и ITIL 2017 – инструменты цифровизации

Agile,DevOps и ITIL 2017 – инструменты цифровизации

26 сентября 2017

Промокод (скидка 10%): SQLCOM

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

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

Какими должны быть инструменты поддержки этого жизненного цикла, позволяющие  выпускать в промышленную среду столько версий продуктов сколько требуется? Как создавать и эксплуатировать приложения, управляемые данными? Итеративность, обратная связь и гибкость Agile-методов обеспечивают непрерывность выпуска сервисов, а DevOps распространяет Agile на эксплуатацию. Минимизация издержек достигается средствами Lean, а с помощью ITIL строится платформа для гибких ИТ. Теоретически все это должно быть направлено на азрушение стены между бизнесом и ИТ, однако на практике возникает масса вопросов. Зачем и когда требуется DevOps и есть ли это замена ITIL, либо они работают вместе? Как успешно комбинировать практические представления ITIL с гибкостью DevOps? Станет ли DevOps ускорителем для организаций, уже инвестировавших ITIL? Какую роль в сообществе Agile, DevOps, Lean и ITIL играют специалисты по данным?

Конференция «Agile,DevOps и ITIL – инструменты цифровизации» посвящена поискам ответов на эти и многие другие вопросы, обсуждению особенностей создания платформ для гибких ИТ и анализу уже имеющегося опыта применения фреймворков, интегрирующих Agile, DevOps, Lean и ITIL.

Основные темы:

  • организация непрерывного развертывания ПО;
  • интеграция процессов проектирования, разработки и эксплуатации;
  • фреймворки: SAFe, LeSS – практический опыт;
  • Agile и управление сервисами, активами, изменениями;
  • ITIL и DevOps – вместе или врозь, контроль рисков или хаос?
  • чем чреваты ошибки Agile и DevOps?

Конференция предназначена для:

  • бизнес-руководителей и собственников предприятий;
  • аналитиков, консультантов и специалистов по данным;
  • архитекторов ИТ-систем и ИТ-директоров;
  • руководителей подразделений разработки, технических директоров и разработчиков;
  • руководителей подразделений поддержки и эксплуатации.

Участие в конференции позволит познакомиться с реальным опытом Agile-разработчиков и специалистов по данным, узнать какой должна быть архитектура ИТ, обеспечивающая сколь угодно частое изменение имеющихся приложений и выпуск новых без ущерба стабильности бизнеса; в кругу единомышленников обсудить преимущества и недостатки DevOps.

Место проведения

Отель Holiday Inn Tagansky
г. Москва, Симоновский Вал, 2

Промокод (скидка 10%): SQLCOM

Регистрация

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

Периодически долгое выполнение процедуры в SQL Server

Периодически долгое выполнение процедуры в SQL Server

Вопросы

Очень часто ко мне обращаются с вопросами типа:

  1. «Наша хранимая процедура работала хорошо, а сейчас работает плохо»
  2. «Иногда, наша хранимая процедура работает очень долго»
  3. «Скорость выполнения хранимой процедуры крайней сильно зависит от переданных в неё параметров»

Что делать

Можно использовать множество методик, чтобы понять и решить проблему:

  1. Иногда достаточно просто единоразово или на регулярной основе сбрасывать план определённый хранимой процедуры через

    Читать далее
Рубрика: Проблема-Решение | Метки: | Оставить комментарий

Встреча сообщества SqlCom (15.07.2017, Питер)

Встреча сообщества SqlCom (15.07.2017, Питер)

15.07.2017 состоялась неофициальная встреча сообщества SqlCom. На этот раз мы решили собраться узким кругом активных членов сообщества и поехать в гости к нашим коллегам из Питера (сами мы из Москвы). Поездка получилась не только интересной, но и очень продуктивной. Оффлайн общение оказалось значительно более качественным в плане обмена опытом.

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

Фото с поездки:

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

Гипотетические индексы к SQL Server

Гипотетические индексы к SQL Server

Иногда вам необходимо протестировать альтернативную стратегию индексов, но на их построение может потребоваться много времени. Есть ли другой путь? Да, мы можем использоваться тот же метод, что использует DTA (Database Tuning Advizor), что позволит сохранить нам много времени.

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

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

Научиться работать с гипотетическими индексами можно по статье — Недокументированные возможности Microsoft SQL Server: STATISTICS_ONLY, DBCC AUTOPILOT и SET AUTOPILOT

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

Новые возможности работы с вашей БД в SQL Server 2016

Новые возможности работы с вашей БД в SQL Server 2016
В продолжении темы «Что делать если у вас много баз данных, а нужно узнать активность только одной из них», хотелось бы отметить нововведения SQL Server 2016, а именно о возможности выполнения некоторых команд и установки значений для каждой базы в отдельности. Появились такие возможности как:

  • Возможность очистить процедурный кэш только для конкретной базы данных. Раньше это можно было сделать либо для всего сервера, либо для конкретного запроса по его plan handle.
  • MAXDOP – уровень параллелизма по умолчанию. 0 – будут использоваться настройки сервера. Эта настройка перебивает соответствующую на уровне сервера, однако, подсказки на уровне запросов обладают высшим приоритетом. При этом не забываем, что Resource Governor все равно всех ограничивает сверху. Подробнее о его работе вы можете прочитать тут.
  • Parameter Sniffing – включить или выключить. Выключение аналогично trace flag 4136. На уровне запроса этим можно было управлять с помощью подсказки OPTIMIZE FOR UNKNOWN.
  • Управление, какую версию Cardinality Estimator использовать (новую, появившуюся в SQL Server 2014, либо предыдущую).
  • Оптимизатор запросов со всеми последними обновлениями. Аналог trace flag 4199.

Более подробно об этом пишет Сергей Олонцев в своей статье на русском языке SQL Server 2016: Database Scoped Configuration. Крайне рекомендую к прочтению.

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