Оценка кардинальности «Cardinality estimation» (CE) — это процесс, используемый оптимизатором запросов для оценки количества строк, возвращаемых запросом или частью запроса. Эти оценки основаны на двух базовых вещах: статистике данных и наборе допущений (assumptions), известных как модель. Модель определяет, как мы интерпретируем статистику и данные, поступающие из разных частей выражения, поэтому для любого заданного набора статистических данных разные модели приведут к разным оценкам кардинальности.
29.5.23
25.5.23
SQL Server Cardinality Estimation: статистики по нескольким столбцам
Автор Liwei Yin
Опубликовано 01.11.2022
В статье SQL Server Cardinality Estimation: несколько статистик по одному столбцу рассказывалось о том, как SQL Server вычисляет статистику по одному столбцу. Сегодня поговорим о статистике по нескольким столбцам.
Ниже следует пример, и в этом примере используется OLTP база данных AdventureWorks2019.
SQL Server Cardinality Estimation: несколько статистик по одному столбцу
Автор Liwei Yin
Опубликовано 06.09.2021
Оптимизатор SQL Server оценивает запросы на основе затрат ресурсов. Для каждого конкретного запроса SQL Server создает план на основе оценки числа возвращаемых из таблицы строк. Именно поэтому понимание того, как SQL Server вычисляет предполагаемое число возвращаемых строк помогает находить и устранять неоптимальные элементы плана запроса. Эта статья начинает серию рассказов о SQL Server Cardinality Estimation (SQL Server CE) старых и новых версий.
24.5.23
10 точек защиты SQL Server
По материалам статьи Brian Knight "10 Steps to Securing your SQL Server"Перевод: Сергея Снисаренко (2002г.)
Введение
Защита SQL Server довольно трудная задача, но весьма необходимая. Эта статья призвана заострить внимание на сравнительно простых способах защиты SQL Server. Хотя предлагаемые рекомендации позволят Вам избежать ряда наиболее распространённых проблем защиты SQL Server - Вы не должны полностью полагаться на эти рекомендации и ни в коем случае не отказываться от постоянного аудита и корректировок вашего плана безопасности. Ниже представлены рекомендации по защите десяти основных точек безопасности SQL Server.
Некоторые из "хинтов" настройки SQL Server
По материалам статьи Raghu Donepudi: Some "Hints" for Mastering SQL Tuning
Перевод Алексея Сафонова
У нас с женой недавно родился ребенок. В родильной палате врачи установили на живот моей жене несколько датчиков за тем, чтобы следить за пульсом ребенка, кровяным давлением, свертыванием крови и т.д. Каждые несколько часов акушер снимал показания приборов за разные интервалы времени. Все то время, что я, нетерпеливо вглядываясь в монитор, пытался разглядеть там положительные результаты, я удивлялся, насколько быстро система получает данные и отображает их на экране дисплея. Те поисковые запросы, которые она использовала, должны были быть очень хорошо оптимизированы. Этот случай из жизни вдохновил меня на написание этой статьи.
23.5.23
Новое в SQL Server 2022: Accelerated Database Recovery (ADR)
Оригинал: Accelerated Database Recovery enhancements in SQL Server 2022
Мы рады сообщить, что в SQL Server 2022 достигнуты серьёзные успехи в ускорении восстановления базы данных (ADR). Это еще больше повышает доступность и масштабируемость баз данных, в первую очередь направлено на облегчение очистки и управления хранилищем версий - Persistent Version Store (PVS).
18.5.23
Новое в SQL Server 2022: параметр AUTO_DROP для статистики
Автор: Daniel Calbimonte
В SQL Server 2022 добавилась новая функция для статистики — AUTO_DROP. В этой статье мы расскажем, что она даёт и как её включать и выключать. Также будут представлены несколько примеров и показаны некоторые распространенные ошибки и способы их решения. Для демонстрационных примеров в этой статье мы будем использовать следующее:
Установленный SQL Server 2022
Развёрнута база данных AdventureWorks
Установлена SSMS
Что такое статистики в SQL Server?
Статистики — это объекты, содержащие информацию о распределении значений данных. SQL Server использует эту информацию при выборе плана исполнения запроса. Обновление статистики часто может повысить производительность запросов SQL Server. Как и наоборот, если статистика неактуальна, это может стать причиной снижения производительность запроса к таблице, где она устарела. Поэтому обновление устаревшей статистики является важной задачей обслуживания базы данных.
12.5.23
Накопительный пакет обновления 4 для SQL Server 2022 RTM - KB5026717
Analysis Services — версия продукта: 16.0.43.211, версия файла: 2022.160.43.211
Описание: KB5026717
26.4.23
Новое в SQL Server 2022: работа с time series (временные ряды)
Данные временных рядов — это набор значений, упорядоченных так, как они появляются и поступают для обработки. В отличие от транзакционных данных SQL Server, которые не зависят от времени и могут часто обновляться, данные временных рядов обычно записываются один раз и, если обновляются, то крайне редко.
Вот несколько примеров данных временных рядов: цены на акции, телеметрия от датчиков, счётчики производительности SQL Server (например, утилизация ЦПУ, памяти, устройств ввода-вывода и сети).
25.4.23
Tips for DBA: sp_create_plan_guide позволяет администратору менять план запроса
Эта процедура описана в электронной документации в разделе, посвящённом производительности запроса. Её назначение сводится к тому, что бы, цитирую: Эта процедура может использоваться, когда нельзя или не нужно напрямую менять текст запроса. Руководства планов полезны, когда небольшое подмножество запросов в приложении базы данных стороннего разработчика выполняются не так, как ожидается.
Tips for DBA: Searching unused indexes
Этот запрос возвращает список индексов, которые никогда не использовались в планах исполнения запросов, и показывает число изменений на страницах каждого такого индекса. Вы можете найти не только индексы, которые лежат в базе данных мёртвым грузом, но и те индексы, которые за счёт большого числа изменений приносят только вред (в виде затрат на изменения значений ключей индекса).
Tips for DBA: Missing indexes recommendations
Ниже представлен сценарий, который позволяет получить рекомендации по индексам, которых в обозримом прошлом недоставало базе данных, в контексте которой этот сценарий исполняется. Учтите, что сценарий в целях наглядности был упрощён, поэтому результирующие команды по созданию индексов, наверняка, будут содержать ошибки, т.к. тут не учитывается возможность отсутствия не относящихся к предикатам эквивалентности колонок, а также колонок, которые в индексе будут присоединёнными. Впрочем, эти ошибки легко устранимы, просто поищите лишние запятые перед запуском сценария, а также не забудьте удалить пустые инструкции INCLUDE.