SQL Server сохраняет наиболее часто используемые планы выполнения в кэше, поэтому их не требуется перекомпилировать при каждом выполнении запроса. Как мы можем воспользоваться этим, чтобы найти потенциальные проблемы производительности в планах выполнения? Давайте попытаемся отыскать некоторые возможности для оптимизации, используя информацию, содержащуюся в кэше планов SQL Server.
§ Совершен давно анонсированный переход на SQL Server 2017. Возможны некоторые "странности" в поведении при решении задач на платформе MSSQL. Просьба сообщать о подобных случаях.
В течение долгого времени мы использовали функцию COUNT(DISTINCT) для подсчета числа строк с уникальными значениями в столбце таблицы. В надвигающемся SQL Server 2019 есть новый способ получения оценки числа уникальных значений строки таблицы. Это делается с помощью функции APPROX_COUNT_DISTINCT(). Эта новая функция не дает точного числа строк для каждого отличного значения в таблице, а лишь возвращает приблизительное их число. Эта новая функция потребляет меньше ресурсов, чем испытанная точная функция COUNT(DISTINCT).
Когда вы сохраняете большие символьные строки или любые другие типы данных, которые вы собираетесь записать как VARCHAR или VARBINARY, имеются факторы, которые влияют на то, как эти данные хранятся внутри SQL Server. Это, в свою очередь, влияет на производительность вставки и обновления.
Что представляют собой записи? На упрощенном уровне запись - это физическое хранилище, связанное со строкой в таблице или индексе. Но не все так просто...