Преглед садржаја
Неки упити троше више ресурса од других. На пример, упити који враћају велике скупове резултата и они који садрже одредбе ВХЕРЕ које нису јединствене увек захтевају ресурсе. Ниједан степен интелигенције скл база података не обавља добар посао оптимизације упита нити може елиминисати трошкове ресурса ових конструкција у поређењу са мање сложеним упитима.До истих резултата можемо доћи писањем различитих СКЛ упита. Али коришћење најбољих упита важно је када се разматрају перформансе. СКЛ подешавање је процес којим се осигурава да ће СКЛ изрази које апликација генерира бити изведени у најкраћем могућем року Ови СКЛ упити се могу оптимизирати за боље перформансе.
Технике оптимизације или СКЛ Тунинг
Затим ћемо видети неке технике оптимизације
СЛУЧАЈ 1: СКЛ упит постаје бржи ако користите имена поља него * као упит за сва поља табеле
СЕЛЕЦТ * ФРОМ цлиентс
Оптималније је уписати упит на овај начин
СЕЛЕЦТ ид, наме, аддресс ФРОМ цлиентс
СЛУЧАЈ 2: ХАВИНГ клаузула се користи за филтрирање редова након што су сви редови изабрани.
ОДАБЕРИТЕ предмет, број (ученика) број_УЧЕНИКА ОД уписаних ГДЕ предмет = 'Хемија' И предмет = 'Историја' ГРУПА ПО предмету;
Оптималније је уписати упит на овај начин
СЕЛЕЦТматерија, број (студенти) број_алумнос ИЗ уписаних ГРУПА ПО ПРЕДМЕТУ ИМАЈУЋИ предмет = 'Хемија' И предмет = 'Историја'
СЛУЧАЈ 3: Понекад можемо имати више подупита у главном упиту. Погледајмо у следећем примеру како минимизирати блок подупита у вашем упиту.
Консултујемо најстаријег и најбоље плаћеног запосленог.
ОДАБЕРИТЕ назив ОД запослених ГДЕ је плата = (ОДАБЕРИТЕ МАКС (плату) ОД запослених) И старост = (ОДАБИРИТЕ МАКС (старост) ОД запослених) И категорија = 'Електроника';
Оптималније је уписати упит на следећи начин
ИЗАБЕРИТЕ име од запослених ГДЕ (плата, старост) = (ОДАБЕРИТЕ МАКС (плата), МАКС (старост) ОД запослених) И ставка = 'Електроника';
СЛУЧАЈ 4: Коришћење оператора ЕКСИСТС, ИН и придруживања табеле на одговарајући начин у вашем упиту је важно јер су то трансакције које успоравају приступ подацима.
Генерално најспорије перформансе у Цанда упиту.
ИН је ефикасан када се већина критеријума филтера налази у подупиту.
Екист је ефикасан када се већина критеријума филтера налази у главном упиту.
Погледајмо неке примере
Изаберите * са п производа где је продуцт_ид ИН (изаберите продуцт_ид из поруџбина)
Оптималније је то написати на следећи начин
Изаберите * из производа где ПОСТОЈИ (изаберите * из поруџбина у којима је ордерс.продуцт_ид = продуцт.продуцт_ид)
Употреба постоје уместо ДИСТИНЦТ
Пример погледајте које категорије имају доступне књиге
ОДАБЕРИТЕ РАЗЛИКУ категорије.ид, категорије.категорије ИЗ категорија, књиге ГДЕ категорије.ид = књиге.идкатегорија;
Оптималније је уписати упит на следећи начин
ОДАБЕРИТЕ РАЗЛИКУ категорије.ид, категорије.категорије ИЗ категорија ГДЈЕ ПОСТОЈИ (ОДАБЕРИТЕ 'Кс' ИЗ књига ГДЕ боокс.идцатегори = цатегориес.ид);
Ово су неки савети који ће уштедети ресурсе при извршавању скл упита и тако имати и апликацију са бржим одговорима.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен