Рекомендации по производительности для базы данных SQLPerformance recommendations for SQL Database

База данных SQL Azure развивается и адаптируется вместе с вашим приложением.Azure SQL Database learns and adapts with your application. Она предоставляет пользовательские рекомендации, которые позволяют максимально увеличить производительность баз данных SQL.It provides customized recommendations that enable you to maximize the performance of your SQL databases. База данных SQL постоянно оценивает и анализирует журнал использования баз данных SQL.SQL Database continuously assesses and analyzes the usage history of your SQL databases. Предоставляемые рекомендации основаны на уникальном шаблоне рабочей нагрузки базы данных и помогают повысить ее производительность.The recommendations that are provided are based on database-unique workload patterns and help improve performance.

Совет

Автоматическая настройка — рекомендуемый способ для автоматического разрешения некоторых наиболее распространенных проблем производительности баз данных.Automatic tuning is the recommended method to automatically tune some of the most common database performance issues. Анализ производительности запросов — рекомендуемый способ для решения основных потребностей мониторинга производительности Базы данных SQL в Azure.Query Performance Insights is the recommended method for basic Azure SQL Database performance monitoring needs. Аналитика SQL Azure — рекомендуемый способ для расширенного масштабного мониторинга производительности баз данных со встроенными средствами аналитики для автоматического устранения неполадок, связанных с производительностью.Azure SQL Analytics is the recommended method for advanced monitoring of database performance at scale, with built-in intelligence for automated performance troubleshooting.

Параметры рекомендаций по производительностиPerformance recommendations options

Доступные параметры рекомендации по производительности в базе данных SQL Azure:Performance recommendation options available Azure SQL Database are:

Рекомендации по производительностиPerformance recommendation Поддержка отдельной базы данных и базы данных в пулеSingle database and pooled database support Поддержка базы данных экземпляраInstance database support
Рекомендации по созданию индексов — рекомендации по созданию индексов, которые могут повысить производительность рабочей нагрузки.Create index recommendations - Recommends creation of indexes that may improve performance of your workload. YesYes НетNo
Рекомендации по удалению индексов . рекомендуется ежедневно удалять избыточные и повторяющиеся индексы, за исключением уникальных индексов и индексов, которые не использовались в течение длительного времени (> 90 дней).Drop index recommendations - Recommends removal of redundant and duplicate indexes daily, except for unique indexes, and indexes that were not used for a long time (>90 days). Обратите внимание, что эта функция несовместима с приложениями, которые используют переключения секций и подсказки индекса.Please note that this option is not compatible with applications using partition switching and index hints. Удаление неиспользуемых индексов не поддерживается для уровней обслуживания "Премиум" и "критически важный для бизнеса".Dropping unused indexes is not supported for Premium and Business Critical service tiers. YesYes НетNo
Рекомендации по параметризации запросов (Предварительная версия) . рекомендует принудительное параметризатион в случаях, когда имеется один или несколько запросов, которые постоянно перекомпилируются, но в итоге используется тот же план выполнения запроса.Parameterize queries recommendations (preview) - Recommends forced parametrization in cases when you have one or more queries that are constantly being recompiled but end up with the same query execution plan. YesYes НетNo
Рекомендации по устранению ошибок схемы (Предварительная версия) . рекомендации по исправлению схемы появляются, когда служба базы данных SQL обнаруживает аномалию в количестве ошибок SQL, связанных со схемой, которые происходят в базе данных SQL.Fix schema issues recommendations (preview) - Recommendations for schema correction appear when the SQL Database service notices an anomaly in the number of schema-related SQL errors that are happening on your SQL database. Корпорация Майкрософт в данный момент не поддерживает рекомендации по устранению ошибок схемы.Microsoft is currently deprecating "Fix schema issue" recommendations. YesYes НетNo

Рекомендации по созданию индексовCreate index recommendations

База данных SQL непрерывно отслеживает выполняемые запросы и определяет индексы, которые могут повысить производительность.SQL Database continuously monitors the queries that are running and identifies the indexes that could improve performance. После того как система удостоверится в отсутствии определенного индекса, создается новая рекомендация Создание индекса.After there's enough confidence that a certain index is missing, a new Create index recommendation is created.

База данных SQL Azure определяет это, оценивая рост производительности, который со временем обеспечит индекс.Azure SQL Database builds confidence by estimating the performance gain the index would bring through time. В зависимости от предполагаемого роста производительности рекомендации классифицируются как "Высокий", "Средний" и "Низкий".Depending on the estimated performance gain, recommendations are categorized as high, medium, or low.

Индексы, созданные с помощью рекомендаций, всегда помечаются как созданные автоматически.Indexes that are created by using recommendations are always flagged as auto-created indexes. Узнать, какие индексы созданы автоматически, можно, просмотрев представление sys.indexes.You can see which indexes are auto-created by looking at the sys.indexes view. Автоматически созданные индексы не блокируют команды ALTER и RENAME.Auto-created indexes don’t block ALTER/RENAME commands.

Если вы попытаетесь удалить столбец, по которому был автоматически создан индекс, команда будет выполнена.If you try to drop the column that has an auto-created index over it, the command passes. Автоматически созданный индекс также будет удален.The auto-created index is dropped with the command as well. Обычные индексы блокируют команду ALTER или RENAME, выполняемую для индексированных столбцов.Regular indexes block the ALTER/RENAME command on columns that are indexed.

После применения рекомендации по созданию индекса база данных SQL Azure сравнивает производительность запросов с базовой производительностью.After the create index recommendation is applied, Azure SQL Database compares the performance of the queries with the baseline performance. Если новый индекс улучшит производительность, рекомендация будет отмечена как успешная и будет создан отчет о результатах.If the new index improved performance, the recommendation is flagged as successful and the impact report is available. Если индекс не повысил производительность, он автоматически отменяется.If the index didn’t improve performance, it's automatically reverted. База данных SQL использует этот процесс, чтобы гарантировать, что рекомендации улучшают производительность базы данных.SQL Database uses this process to ensure that recommendations improve database performance.

У любой рекомендации по созданию индекса есть политика отхода, которая не позволит применить рекомендацию при высоком уровне использования базы данных или пула.Any create index recommendation has a back-off policy that doesn't allow applying the recommendation if the resource usage of a database or pool is high. Эта политика учитывает такие метрики, как загрузка ЦП, операции ввода-вывода данных и журнала, а также доступный объем хранилища.The back-off policy takes into account CPU, Data IO, Log IO, and available storage.

Если ресурсы ЦП, операции ввода-вывода данных или журнала использовались более чем на 80 % за предыдущие 30 минут, рекомендация на создание индекса будет отложена.If CPU, Data IO, or Log IO is higher than 80% in the previous 30 minutes, the create index recommendation is postponed. Если после создания индекса доступный объем хранилища будет ниже 10 %, рекомендация перейдет в состояние ошибки.If the available storage will be below 10% after the index is created, the recommendation goes into an error state. Если по прошествии нескольких дней служба автонастройки снова определит, что создание индекса полезно, процесс запустится повторно.If, after a couple of days, automatic tuning still believes that the index would be beneficial, the process starts again.

Этот процесс будет повторяться, пока объем хранилища не будет достаточным для создания индекса или пока индекс не будет считаться полезным.This process repeats until there's enough available storage to create an index, or until the index isn't seen as beneficial anymore.

Рекомендации по удалению индексовDrop index recommendations

Помимо обнаружения недостающего индекса, база данных SQL постоянно анализирует производительность имеющихся индексов.Besides detecting missing indexes, SQL Database continuously analyzes the performance of existing indexes. Если индекс не используется, база данных SQL Azure порекомендует удалить его.If an index is not used, Azure SQL Database recommends dropping it. Удаление индекса рекомендуется в двух случаях:Dropping an index is recommended in two cases:

  • индекс является дубликатом другого индекса (созданного на основе того же столбца, схемы секций и фильтров);The index is a duplicate of another index (same indexed and included column, partition schema, and filters).
  • индекс не использовался в течение длительного времени (93 дня).The index hasn't been used for a prolonged period (93 days).

Рекомендации по удалению индексов также проходят проверку после применения.Drop index recommendations also go through the verification after implementation. Если производительность повысилась, будет создан отчет о результатах.If the performance improves, the impact report is available. Если производительность снизилась, будет выполнен откат рекомендации.If performance degrades, the recommendation is reverted.

Рекомендации по параметризации запросов (Предварительная версия)Parameterize queries recommendations (preview)

Рекомендации по параметризации запросов появляются при наличии одного или нескольких запросов, которые постоянно перекомпилируются, но в результате для них создается одинаковый план выполнения запроса.Parameterize queries recommendations appear when you have one or more queries that are constantly being recompiled but end up with the same query execution plan. Это дает возможность применить принудительную параметризацию,This condition creates an opportunity to apply forced parameterization. которая позволит кэшировать планы запросов и повторно использовать их в будущем, повышая производительность и снижая использование ресурсов.Forced parameterization, in turn, allows query plans to be cached and reused in the future, which improves performance and reduces resource usage.

Каждый запрос, отправленный в SQL Server, сначала должен быть скомпилирован для формирования плана выполнения.Every query that's issued against SQL Server initially needs to be compiled to generate an execution plan. Каждый создаваемый план добавляется в кэш плановEach generated plan is added to the plan cache. и может быть использован повторно при последующем выполнении этого запроса, устраняя необходимость в дополнительной компиляции.Subsequent executions of the same query can reuse this plan from the cache, which eliminates the need for additional compilation.

Запросы, которые содержат непараметризованные значения, могут привести к снижению производительности, так как для каждого такого запроса с различными значениями параметров план выполнения компилируется заново.Queries with non-parameterized values can lead to performance overhead because the execution plan is recompiled each time the non-parameterized values are different. Во многих случаях для одинаковых запросов с отличными значениями параметров создаются одинаковые планы выполнения,In many cases, the same queries with different parameter values generate the same execution plans. но эти планы по-прежнему добавляются в кэш планов по отдельности.These plans, however, are still separately added to the plan cache.

Этот процесс перекомпиляции планов операций использует ресурсы базы данных, увеличивает длительность запроса и переполняет кэш планов,The process of recompiling execution plans uses database resources, increases the query duration time, and overflows the plan cache. что приводит к исключению планов из него.These events, in turn, cause plans to be evicted from the cache. Такое поведение SQL Server можно изменить, задав параметр принудительной параметризации для базы данных.This SQL Server behavior can be altered by setting the forced parameterization option on the database.

Чтобы было проще оценить влияние этой рекомендации, вам будет предоставлено сравнение фактического и предполагаемого потребления ресурсов ЦП (после применения рекомендации).To help you estimate the impact of this recommendation, you are provided with a comparison between the actual CPU usage and the projected CPU usage (as if the recommendation were applied). Эта рекомендация позволяет сэкономить ресурсы ЦП.This recommendation can help you gain CPU savings. Она также может помочь уменьшить длительность запроса и переполнение кэша планов, а это означает, что в кэше может оставаться больше планов, которые можно повторно использовать.It can also help you decrease query duration and overhead for the plan cache, which means that more of the plans can stay in the cache and be reused. Вы можете быстро применить эту рекомендацию, выбрав команду Применить.You can apply this recommendation quickly by selecting the Apply command.

Через несколько минут после применения этой рекомендации для вашей базы будет принудительно включена параметризацияAfter you apply this recommendation, it enables forced parameterization within minutes on your database. и запущен мониторинг, который длится примерно 24 часа.It starts the monitoring process, which lasts for approximately 24 hours. По истечении этого периода будет создан отчет о проверке,After this period, you can see the validation report. содержащий информацию об использовании ресурсов ЦП для базы данных за 24 часа до и через 24 часа после применения рекомендации.This report shows the CPU usage of your database 24 hours before and after the recommendation has been applied. Помощник по базам данных SQL имеет механизм безопасности, который автоматически отменит примененную рекомендацию, если будет обнаружено снижение производительности.SQL Database Advisor has a safety mechanism that automatically reverts the applied recommendation if performance regression has been detected.

Рекомендации по устранению ошибок схемы (предварительная версия)Fix schema issues recommendations (preview)

Важно!

Корпорация Майкрософт в данный момент не поддерживает рекомендации по устранению ошибок схемы.Microsoft is currently deprecating "Fix schema issue" recommendations. Мы рекомендуем использовать Intelligent Insights для мониторинга проблем с производительностью базы данных, включая проблемы схемы, которые рассматривались ранее в рекомендациях по устранению ошибки схемы.We recommend that you use Intelligent Insights to monitor your database performance issues, including schema issues that the "Fix schema issue" recommendations previously covered.

Рекомендации по устранению ошибок схемы появляются, когда служба базы данных SQL обнаруживает аномальное количество относящихся к схеме ошибок SQL, которые возникают в вашей базе данных SQL.Fix schema issues recommendations appear when the SQL Database service notices an anomaly in the number of schema-related SQL errors that are happening on your SQL database. Эта рекомендация обычно появляется, когда в базе данных возникает несколько связанных со схемой ошибок (недопустимое имя столбца, недопустимое имя объекта и т. д.) в течение часа.This recommendation typically appears when your database encounters multiple schema-related errors (invalid column name, invalid object name, and so on) within an hour.

"Ошибки схемы" относятся к классу синтаксических ошибок в SQL Server.“Schema issues” are a class of syntax errors in SQL Server. Они происходят, когда определение запроса SQL и определение схемы базы данных не согласованы.They occur when the definition of the SQL query and the definition of the database schema aren't aligned. Например, один из столбцов, ожидаемых запросом, может отсутствовать в целевой таблице или наоборот.For example, one of the columns that's expected by the query might be missing in the target table or vice-versa.

Рекомендация по устранению ошибок схемы появляется, когда служба "База данных SQL Azure" обнаруживает аномальное количество относящихся к схеме ошибок SQL, которые возникают в базе данных SQL.The “Fix schema issue” recommendation appears when the Azure SQL Database service notices an anomaly in the number of schema-related SQL errors that are happening on your SQL database. В следующей таблице показаны ошибки, которые относятся к схеме.The following table shows the errors that are related to schema issues:

Код ошибки SQLSQL error code СообщениеMessage
201201 Процедура или функция " " ожидает параметр " ", который не был указан.Procedure or function '' expects parameter '', which was not supplied.
207207 Недопустимое имя столбца "*".Invalid column name '*'.
208208 Недопустимое имя объекта "*".Invalid object name '*'.
213213 Имя столбца или число предоставленных значений не соответствует определению таблицы.Column name or number of supplied values does not match table definition.
28122812 Не удалось найти хранимую процедуру "*".Could not find stored procedure '*'.
81448144 Для процедуры или функции * указано слишком много аргументов.Procedure or function * has too many arguments specified.

Пользовательские приложенияCustom applications

Разработчики могут рассмотреть возможность разработки пользовательских приложений, используя рекомендации по повышению производительности для базы данных SQL Azure.Developers might consider developing custom applications using performance recommendations for Azure SQL Database. Все рекомендации, перечисленные на портале для базы данных, можно получить с помощью API Get-азсклдатабасерекоммендедактион .All recommendations listed in the portal for a database can be accessed through Get-AzSqlDatabaseRecommendedAction API.

Дополнительная информацияNext steps

Отслеживайте рекомендации и продолжайте применять их для повышения производительности.Monitor your recommendations and continue to apply them to refine performance. Рабочие нагрузки базы данных являются динамическими и меняются непрерывно.Database workloads are dynamic and change continuously. Помощник по работе с базами данных SQL продолжает отслеживать работу и давать рекомендации, которые могут повысить производительность базы данных.SQL Database Advisor continues to monitor and provide recommendations that can potentially improve your database's performance.