Настройка на производителността в SQL
Настройка на производителността на SQLе маратон, а не спринт. Предотвратяването на влошаване на производителността се свежда до последователна дългосрочна настройка. В момента, в който производителността започне да изостава, вашите потребители ще забележат.
Настройката на производителността ви помага да избегнете трагедията на недоволните клиенти и да предоставите по-добро потребителско изживяване. В тази статия ще разгледаме какво Настройка на производителността на SQL е и някои области, с които трябва да сте наясно, когато се опитвате да подобрите производителността на вашия сървър, включително:
- Използване на SQL инструмент за наблюдение за наблюдение на производителността
- Подобряване на индексите
- Блокировки на SQL Server
- Намаляване на времето за изпълнение на заявката
Какво е SQL Performance Tuning?
Настройката на производителността на SQL е процес наподобряване на производителността на SQL изрази. Искате да сте сигурни, че SQL изразите се изпълняват възможно най-бързо. Бързите и ефективни отчети заемат по-малко хардуерни ресурси и се представят по-добре. За разлика от това, неоптимизирано неефективно изявление ще отнеме повече време за завършване и ще заеме повече изчислителна мощност.
Неефективното използване на изчислителната мощност означава, че базата данни ще отнеме повече време, за да отговори на потребителските заявки. На практика това означава, че когато потребителят взаимодейства с интерфейса, времето за отговор ще бъде по-дълго, тъй като базата данни се опитва да намери необходимата информация. Мрежовите администратори и разработчиците редовно използват настройка на производителността, за да подобрят производителността на базата данни и да поддържат първокласно потребителско изживяване.
Какво причинява лоша производителност на SQL Server?
Има много причини, поради които един SQL сървър може да работи бавно. Фактори от бавни заявки до тесни места в производителността, конкуренция за виртуализирани ресурси и хардуерни ограничения допринасят за ниската производителност. Намирането на първопричината за бавен сървър обаче е сложно поради големия списък от потенциални виновници.
През повечето време лошата производителност е свързана с лошо написани заявки и индексиране, което прави неефективно използване на ресурсите, а не с хардуерни ограничения. За съжаление може да бъде трудно да се установи какво причинява проблема без значителна инвестиция на време и усилия.
За да ускорите диагностичния процес на откриване на проблеми с производителността на SQL, препоръчително е да използвате инструмент за наблюдение на производителността. Мониторът на база данни ще ви позволи да погледнете по-задълбочено в причината за лошата производителност и ще осигури по-добро изживяване на крайния потребител за вашите клиенти.
Използвайте SQL Performance Monitor, за да наблюдавате производителността и да идентифицирате тесните места в SQL
SolarWinds Database Performance Analyzer (БЕЗПЛАТНА ПРОБНА ВЕРСИЯ)
Инструментите за наблюдение на базата данни са от съществено значение за управлението на производителността на SQL, защото ви позволяват да определите първопричината за неефективността. Инструменти за наблюдение катоАнализатор на ефективността на базата данни SolarWindsса идеални за идентифициране на често срещани проблеми като тесни места в SQL и подчертаване на причината за проблема.
SolarWinds Database Performance Analyzer Стартирайте 14-дневен БЕЗПЛАТЕН пробен период
Тесните места в SQL са един от най-разпространените проблеми, с които ще се сблъскате, когато управлявате бази данни. Това, което прави тесните места трудни е, че има различни начини, по които те могат да бъдат проявени. Има четири вида тесни места, които могат да повлияят на производителността на сървъра:памет,диск,процесор, имрежасебе си.
Управлението на тесните места става още по-трудно, ако имате няколко активни тесни места едновременно. Например, ако имате ограничени дискови ресурси и памет, вероятно ще намерите и по-високо използване на процесора.
SolarWinds Database Performance Analyzer ви помага да идентифицирате основната причина за активните тесни места. на платформатаSQL анализатор на производителносттаизползва данни затипове чакане,SQL изрази,дейности други, за да наблюдавате ефективността в реално време. Можете също така да видите типовете/събитията на изчакване, които стоят зад тесните места.
За обща настройка на производителността имате също различни насоки, които да ви помогнат да настроите изрази. Например има „Най-лошо представящите се SQL изразиизглед. Разполагайки с тази информация, можете да започнете да правите осезаеми промени в стратегията си за настройка на производителността и да подобрите опита на вашите крайни потребители.
Настройка за намаляване на времето за изпълнение на заявката
Както беше обсъдено по-горе,време на изпълнение на заявкатае важно съображение, когато се опитвате да поддържате производителността на SQL, колкото по-дълго се изпълнява заявка, толкова повече ресурси трябва да използва хардуерът, за да обработи заявката. Намаляването на времето за изпълнение на заявката ще ви позволи да извлечете повече от вашия хардуер и ще поддържа по-добра производителност на базата данни.
Има три основни фактора, които увеличават времето за изпълнение на заявката:масаразмер,се присъединява, иагрегации. Ако дадена заявка трябва да взаимодейства с таблица, която има твърде много редове, тогава софтуерът ще трябва да работи повече, за да обработи тази заявка. По същия начин, ако вашето запитванесе присъединяваняколко таблици заедно, това ще се отрази на производителността. По подобен начин заявките, които използват агрегати за генериране на резултат, също изискват повече ресурси.
Важно е да се отбележи, че времето за изпълнение на заявка също може да бъде увеличено, ако много други потребители изпълняват заявки по едно и също време. Всяка заявка заема хардуерни ресурси. Като следствие, колкото повече заявки базата данни се опитва да обработи, толкова по-бавно ще бъде времето за изпълнение.
Ако искате да подобрите производителността и да намалите времето за изпълнение на заявката, тогава намаляването на размера на таблицата е едно от най-простите неща, които можете да направите. По същия начин, когато правите заявка за времева рамка, дръжте прозореца възможно най-тесен. Например, ако трябва да измервате данни от база данни за определен период от време, изберете кратка времева рамка като 24-часов период, така че хардуерът да не трябва да обработва толкова много данни.
Друго нещо, което можете да направите, е да надстроите паметта си. Ако не разполагате с наличните изчислителни ресурси за управление на голяма база данни, настройката няма да е достатъчна, за да осигури добра производителност. Надграждането на паметта помага да сте сигурни, че разполагате с повече ресурси.
Свързана публикация: Най-добрите програми за създаване на SQL заявки
Блокировки на SQL Server
Блокировките са друг проблем с производителността, който мрежовите администратори и разработчиците трябва да управляват. Безизходица е къдедва процеса се конкурират за достъп до ресурс. Двата процеса се блокират взаимно, така че нито един от тях няма достъп до ресурса. С други думи, блокиране е циклична зависимост, причинена от кода на приложението.
За да елиминира блокиране на сървъра, администраторът трябва да прекрати един от процесите. SQL Server има aмениджър на заключванекойто автоматично търси блокирания на всеки пет секунди.
Когато SQL Server открие блокиране, той избира транзакция за затваряне. Чрез спиране на една от транзакциите блокировката се премахва, така че другият процес може да получи достъп до ресурса, който първоначално е бил блокиран.
SQL Server избира кой процес да се изключи въз основа на приоритета на блокиране. Приоритетът на блокиране може да бъде зададен от потребителя със следната команда:
SET DEADLOCK_PRIORITY LOW;
Има четири нива на приоритет;НИСКО,НОРМАЛНО,ВИСОКО,<числови> . LOW има стойност -5, NORMAL има стойност 0, а HIGH има стойност 5.
SQL сървърът прекратява процеса с най-ниското ниво на приоритет на блокиране. Така че, ако сте въвели командата LOW, за да присвоите нисък приоритет на процес и другият процес е имал приоритет Нормален или ВИСОК, процесът с НИСЪК приоритет ще бъде прекратен.
Важно е да се отбележи, че разрешаването на задънени блокировки надхвърля приоритетните секции на безизходни блокировки. Блокировките могат да бъдат невероятно сложен проблем за разрешаване (особено ако трябва да преминете през кода на приложението с помощта на разработчик!).
Подобрете индексите
Индексите са полезен инструмент на ваше разположение за повишаване на ефективността на заявките. Индексът е структура от данни, която можете да използвате за по-бързо извличане на информация от базата данни. За да използвате индекси за повишаване на производителността, искате да: използвате много индекси в таблиците, избягвате индекси, които често се актуализират, и използвайтенеклъстърирани индексиза намаляване на времето за изпълнение на заявката.
За да помогнете в процеса на проектиране на индекс, можете да използватеSQL Profilerза идентифициране на заявки с по-ниска производителност.SQL Profilerще ви каже броя на операциите за четене и запис, необходими за завършване на заявка и колко време отнема завършването на заявката. Заредете програмата за профилиране на отдалечен компютър и намерете заявки, които отнемат много време за изпълнение. Тези заявки ще бъдат тези, които искате да коригирате, докато времето за изпълнение намалее.
Като алтернатива можете да използватеСъветник за настройка на индексада препоръча индекси, които да използвате.Помощник за настройкае софтуерен съветник за SQL, който ви предоставя препоръки въз основа на това, което искате да постигнете. Можете да използвате изходните данни, които сте получили сSQL Profilerда доставятСъветник за настройка на индексас информация за наблюдение. Наблюдавайте времето за изпълнение на заявките и следете за неефективни операции.
Едно докосване на SQL настройка на ден предпазва от лоша производителност
Очакванията за ефективност на потребителите са по-непростими от всякога. Необходимо е само малко забавяне, за да изпратите потребителите да тичат към хълмовете.Проактивнонастройката на SQL базите данни е необходима, за да се елиминира забавянето и да се осигури отзивчивото изживяване, което съвременните потребители изискват.
Въпреки че наблюдението на производителността на SQL е непрекъснат процес, един от най-добрите начини да започнете е с помощта на aплатформа за наблюдение на бази данни. Софтуер за наблюдение на бази данни ще осигури повече видимост и ще ви насочи към конкретни проблеми, които да подобрите.
От този момент нататък има 101 начина за подобряване на ефективността на заявките. Ако сте нов в SQL, опитайте се да не се разочаровате и да се съсредоточите върху извършването на едно малко подобрение наведнъж. Ако започнете с основите, като намаляване на размерите на масите, за да изградите увереността си, можете да започнете да предприемате по-сложни стъпки по-нататък.
Често задавани въпроси за настройка на производителността на SQL
Как можем да направим настройка на производителността в SQL?
Ето четири съвета за настройка на производителността на SQL:
- Използвайте SQL инструмент за наблюдение, за да наблюдавате производителността
- Подобрете индексите
- Предотвратете блокиране на ресурси
- Намалете времето за изпълнение на заявката
Как да направя моята SQL заявка да работи по-бързо?
Опитайте тези четири стъпки, за да накарате SQL заявките да се изпълняват по-бързо:
- Разширете паметта на сървъра
- Преградни маси
- Премахнете външните съединения
- Реорганизирайте обединенията, за да филтрирате първо повечето записи
- Уверете се, че обединява индекси на удари
- Премахнете заместващите знаци в списъка с колони
Какво е настройка на производителността на базата данни?
Настройката на производителността на базата данни включва подобряване на обекта на базата данни чрез изследване на индекси, изгледи и нормализиране на таблици. SQL заявките трябва да бъдат написани по начин, който прави оптимално използване на структурите на бази данни, като например индекси.