Производительность SQL Server имеет решающее значение для работы платформы данных. В этой статье рассказывается о том, как SQL Server 2019 может помочь вам повысить производительность запросов, не меняя ничего в приложении. Это достаточно объемная статья со множеством примеров, так что наберитесь терпения и налейте свой любимый кофе.
Почему используется термин «интеллектуальная настройка производительности»?
Самое главное в этой статье - это ответ на вопрос, каким образом новые возможности в SQL Server 2019 могут принести вам пользу или решить определенную задачу либо проблему. Тема, касающаяся повышения производительности, включает способы, которые могут помочь вам повысить производительность ваших рабочих приложений, часто без необходимости каких-либо изменений в этих приложениях или связанных с ними запросах.
В сентябре 2018 года я готовился к презентации на конференции Microsoft Ignite в Орландо (штат Флорида). До этого момента все знали о наших планах относительно SQL vNext только в общих чертах. У меня и моего коллеги Амита Банерджи (Amit Banerjee) была задача продемонстрировать запуск SQL Server 2019 Preview на Ignite. Когда мы работали над стендом для демонстрации, мы знали, что нам предстоит продемонстрировать наше новое достижение - улучшенную производительность. У Амита появилась идея нового термина «Интеллектуальная база данных». Идея заключалась в том, что SQL Server предоставляет новые, ранее недоступные возможности, которые включают в себя интеллектуальные средства для поиска, адаптации и представления обобщенных аналитических данных.
Я использовал тот же термин, перенеся акцент на производительность, назвав это интеллектуальной настройкой производительности. Под этим термином мы объединяем следующие улучшения в SQL Server 2019:
- интеллектуальная обработка запросов;
- упрощенное профилирование запросов;
- база данных в памяти;
- конфликт вставки на последней странице.
Каждая из этих новых возможностей использует встроенный интеллектуальный механизм SQL Server, помогающий повысить производительность ваших систем, во многих случаях позволяя обойтись без каких-либо изменений. В ряде случаев SQL Server дает вам представление о производительности запросов на таком уровне, который ранее был недоступен. В других ситуациях SQL Server включает встроенные возможности для автоматического использования преимуществ новых аппаратных средств.
Вы можете рассматривать эту статью как собрание мелких разделов. Я решил объединить всю информацию в одной статье, потому что хотел продемонстрировать все возможности в полном объеме и показать интеллектуальную настройку производительности в SQL Server 2019.
В каждом разделе статьи перечислены предварительные условия для запуска каждого из примеров. В самом общем случае вам понадобится:
- установленный экземпляр SQL Server 2019 в Windows или Linux;
- SQL Server Management Studio (SSMS) 0 или более поздняя версия;
- Azure Data Studio (на любой ОС; минимальная версия, с которой вы сможете выполнить все примеры: 1.7.0).
Во многих приведенных примерах для просмотра планов выполнения запросов используется SSMS; но, просматривая и выполняя эти примеры, вы также можете использовать Azure Data Studio (вам просто нужно просмотреть XML-текст плана), используя новое расширение SentryOne Plan Explorer. Подробную информацию об этом расширении вы найдете по ссылке.
Теперь приступим к рассмотрению первой глобальной темы нашего исследования, рассмотрим как организована Интеллектуальная обработка запросов в MS SQL Server 2019.