Постгрес Екплаин Цост

Postgres Ekplain Cost



Постгрес је моћан и широко коришћен систем релационих база података отвореног кода са јаком репутацијом због своје робусности, функционалности и перформанси.

Један од алата који Постгрес чине претежно јаким у перформансама је његова команда ЕКСПЛАИН која пружа детаље о плану извршавања СКЛ упита.

Шта је команда ЕКСПЛАИН?

Команда ЕКСПЛАИН приказује план извршења који ПостгреСКЛ планер генерише за дату СКЛ наредбу.







Ово укључује информације о процењеним трошковима извођења сваког корака упита. Испитивањем ових трошкова можемо разумети зашто се упит споро извршава и како га оптимизовати.



ПостгреСКЛ објасни цену

Углавном користимо команду ЕКСПЛАИН за преузимање информација о датом упиту. Команда даје неке информације о упиту.



Узмимо на пример упит који је приказан у наставку:





СЕЛЕЦТ ф.титле, ц.наме
ИЗ филма ф
ПРИДРУЖИТЕ се филм_цатегори фц ОН ф.филм_ид = фц.филм_ид
ПРИДРУЖИТЕ категорију ц ОН фц.цатегори_ид = ц.цатегори_ид;

Ако покренемо команду објашњења на претходном једноставном придруживању:

ЕКСПЛАИН СЕЛЕЦТ ф.титле, ц.наме
ИЗ филма ф
ПРИДРУЖИТЕ се филм_цатегори фц ОН ф.филм_ид = фц.филм_ид
ПРИДРУЖИТЕ категорију ц ОН фц.цатегори_ид = ц.цатегори_ид;

Требало би да добијемо излаз као што је приказано у наставку:



Можда ћете приметити да за сваки корак упита ПостгреСКЛ враћа процењену цену тог упита.

  1. стартуп_цост – Показује процењену цену иницијализације операције пре него што почне да исписује редове.
  2. тотал_цост – Укупан трошак за преузимање свих редова.
  3. Редови – Одређује процењени број редова које враћа упит.
  4. Ширина – Ово одређује просечан број бајтова свих редова које враћа операција.

Трошкови упита у ПостгреСКЛ-у се означавају у произвољним јединицама које су одређене параметрима трошкова који су постављени у конфигурацији сервера.

Кључ ових параметара је сек_паге_цост који поставља цену преузимања странице на диску која није у кешу.

Ако сте на пгАдмин-у, можете користити функцију „анализа објашњења“ да бисте добили читљивији и добро представљен дијаграм за команду објашњења. На пример:

Затим можете кликнути на сваки корак да бисте видели статистику и процењене трошкове.

Оптимизација упита на основу цене

Када оптимизујете своје упите, важно је разумети да нижа цена обично значи брже извршење. Због тога можете да измените своје упите по нижој цени.
Ево неколико фактора које треба узети у обзир:

Користите табелу Индекси – Индекси значајно смањују трошкове упита заснованих на претрази тако што одржавају структуру података која омогућава брже тражење.

Користите функције и операторе мудро – Процена трошкова за функције и оператере није увек тачна, јер стварни трошак може у великој мери зависити од специфичних података. Дакле, ограничите употребу функција и сложених оператора на минимум.

Закључак

Истражили смо концепт трошкова у команди ПостгреСКЛ АНАЛИЗЕ. Разговарали смо о томе шта значи излаз команде и како користити излазне трошкове за анализу најефикаснијег начина за покретање датог упита.