Database
 sql >> база данни >  >> RDS >> Database

Автоматична настройка на Azure SQL база данни

Microsoft наскоро обяви невероятна нова функция – автоматична настройка в Azure SQL база данни. Честно казано, аз съм напълно впечатлен от тази функция, защото инженерите на Microsoft са използвали изтънчено изкуствен интелект в настройката на производителността на SQL Azure. Целта е да се наблюдава базата данни на Azure SQL и да се изпращат тези наблюдения до вградената разузнавателна услуга, която генерира някои препоръки. Те могат да се прилагат в непиковите часове. Тази функция също така опрости работата на администраторите на бази данни; те не трябва да се тревожат за производителността на базата данни на SQL Azure сега.

Има ключов момент за автоматичната настройка на SQL Azure в документацията на MSDN „Автоматичната настройка се учи хоризонтално от всички бази данни на Azure чрез изкуствен интелект и динамично подобрява своите действия за настройка“. Това означава, че алгоритъмът на изкуствения интелект научава огромен опит от различни бази данни на SQL Azure. Поради тази причина тези препоръки ще бъдат надеждни. Функцията за автоматична настройка също може да отмени препоръките и да се коригира.

Друга интересна опция за тази функция са известията. Microsoft повишава доверието в тази функция, като казва, че е внедрена в някои компании. Може би този подход може да бъде малко утопичен, но в бъдеще изкуственият интелект ще получи много отговорности на администраторите на бази данни. Следователно броят на задачите за администраторите на бази данни ще бъде намален.

За да тествам тази функция, създадох две таблици на Azure SQL и ги попълних с някои данни. След като генерирах тези тестови данни, изпълних много заявки, които се нуждаеха от същите неклъстерирани индекси. Когато разгледах прогнозния план за изпълнение на заявка, установих, че той предлага неклъстериран индекс. Приблизително след 30 часа автоматичната настройка на Azure SQL генерира препоръка за създаване на индекс. За това време на изчакване Microsoft отбелязва, че „База данни Azure SQL трябва да наблюдава дейностите поне за един ден, за да идентифицира някои препоръки“. Този индекс за препоръки за настройка е същият като липсващия индекс. Когато автоматичната настройка се опита да изпълни скрипта, възникна грешка поради ограниченото дисково пространство.

/*
Missing Index Details from SQLQuery1.sql - xxxx.database.windows.net.Adventureworks (esat.erkec)
The Query Processor estimates that implementing the following index could improve the query cost by 99.6269%.
*/

/*
USE [Adventureworks]
GO
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[Salesd] ([SalesOrderID])

GO
*/

Опциите за автоматична настройка са както следва:

  • Създаване на индекс който идентифицира автоматичното създаване на индекс, което може да повлияе на производителността.
  • Индекс на отпадане който идентифицира неизползвани или излишни индекси.
  • Force Last Plan Good който дефинира планове за SQL заявки, които са по-лоши от предишните. Тази функция се отнася до автоматичната корекция на плана в SQL Server 2017.

Как да активирате автоматичната настройка на Azure SQL

Заявките за Azure Portal или T-SQL позволяват активиране на опции за автоматична настройка. Тази функция може да активира едновременно автоматична настройка на нива на сървър или база данни. Нивото на базата данни може да наследи тези опции от нивото на сървъра.

Сега ще се свържем с Azure Portal и ще намерим SQL сървъри.

След това намерете опции за автоматична настройка.

На тази екранна снимка можем да променим и приложим опциите за автоматична настройка на ниво сървър и в настройката по подразбиране. Всички бази данни се наследяват от ниво сървър. Въпреки това можем да променим тази опция и на ниво база данни.

Опцията Current State определя текущото състояние на опцията за автоматична настройка. Microsoft предлага да управлява тази функция на ниво сървър, защото нейните настройки могат да бъдат приложени към всички бази данни.

Сега ще разгледаме опциите за автоматична настройка на ниво база данни. Можем да намерим тези опции в SQL бази данни.

Както можете да видите, можем да зададем опции за автоматична настройка за индивидуална база данни и да променим опциите за наследяване.

Екранната снимка по-горе идентифицира следните опции:

  • Състоянието на Force Plan е „ВКЛЮЧЕНО“ и се наследява от нивото на сървъра, чието състояние е „ВКЛ.“.
  • Състоянието за създаване на индекс е „ИЗКЛЮЧЕНО“ и се наследява от ниво сървър. Състоянието му е „ИЗКЛЮЧЕНО“.
  • Състоянието на Drop Index е „ON“ и тази опция е зададена само за тази база данни. Нивото на сървъра не е важно за тази настройка.

Можем да активираме автоматична настройка чрез T-SQL:

ALTER DATABASE current SET AUTOMATIC_TUNING 
(FORCE_LAST_GOOD_PLAN = ON, CREATE_INDEX = DEFAULT, DROP_INDEX)

На тази стъпка ще разгледаме препоръките за автоматична настройка, разположени под менюто на SQL Server.

Освен това, препоръки за автоматична настройка могат да бъдат намерени под менюто на базата данни.

Препоръките за настройка имат различни състояния:

  • Предстоящо: Командата за прилагане на препоръка е получена и е насрочена за изпълнение.
  • Изпълнение: Препоръката се прилага.
  • Потвърждаване: Препоръката е приложена успешно и услугата измерва ползите.
  • Успех: Препоръката е приложена успешно и ползите са измерени.
  • Грешка: Възникна грешка по време на процеса на прилагане на препоръката. Това може да е преходен проблем или промяна на схемата в таблицата и скриптът вече не е валиден.
  • Връщане: Препоръката беше приложена, но беше счетена за неизпълнена и автоматично се отменя.
  • Възстановено: Препоръката беше отменена.

Когато автоматичното настройване създаде препоръка, която ще се намира под раздела Препоръки, състоянието ще бъде изчакващо. Когато състоянието на препоръката за настройка се изпълнява, напредък, успех или грешка, то ще бъде показано в раздела История на настройките. В същото време sys.dm_db_tuning_recommendations може да върне информация за препоръка за автоматична настройка.

SELECT name, 
    JSON_VALUE(state, '$.currentValue') as script,
    JSON_VALUE(details, '$.implementationDetails.script') as script,
		
      details.* 
FROM sys.dm_db_tuning_recommendations
    CROSS APPLY OPENJSON(details, '$.createIndexDetails')
                WITH (  indexName VARCHAR(100) '$.indexName',
                        indexType VARCHAR(100) '$.indexType',
                        table_name VARCHAR(100) '$.table') as details

Когато щракнем върху Препоръка, можем да намерим някои подробности относно препоръката за настройка.

Можем да получим много полезна информация относно препоръките за настройка и да генерираме скрипт на тази функция.

Подробностите, които скриптът ще върне, са както следва:

  • Въздействие дефинира приоритетно ниво на препоръка за настройка.
  • Необходимо е дисково пространство определя потреблението на съхранение.
  • Тип индекс определя кой тип индекс ще създаде.

Заключения

Според мен автоматичната настройка на SQL Azure е функция от ново поколение, защото Microsoft започва да използва алгоритми за изкуствен интелект в препоръките за настройка. В същото време тази функция може да доведе до следните въпроси:

  • Кога трябва да имам тази препоръка за настройка?
  • Полезна ли е тази препоръка за настройка? Ако не е полезно, кога трябва да върна тази препоръка за настройка?

В резултат на това автоматичната настройка на SQL Azure предлага футуристичен подход.

Препратки

Автоматична настройка в Azure SQL база данни

Настройка на производителността в Azure SQL база данни

Изкуственият интелект настройва Azure SQL бази данни


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Оценка на кардиналността:Комбиниране на статистика на плътността

  2. SQL Always On Availability Groups:Компютърни обекти

  3. Денормализация:кога, защо и как

  4. Тенденции в ScyllaDB – Как потребителите внедряват базата данни с големи данни в реално време

  5. Модели на данни