wiki:QueryOptimization

Version 1 (modified by 231267, 13 days ago) ( diff )

--

Оптимизација на прашалници и погледи

Членови на тим:

  • Aлександар Тодороски 231153
  • Антонио Трајковски 231156
  • Вељко Аџиќ 231267

Поглед 1: season_standing

Овој поглед ни дава за секој тим број на натпревари, вкупно поени, и вкупно поени на противникот во секоја сезона и секој натпревар. Примарен случај кога ќе се користи погледот е при излистување на податоци за томовите во одредена сезона.

Иницијално време за извршување трае повеќе од 5 минути (беше прекинато извршувањето), што е неприфатливо за апликацијата.

Најбавните операции се Full Scan, сортирање и агрегација:

Со индексирање сортирање може да се подобри, но во овој поглед подредуваме според агрегација SUM, што нема да помогне. Индексирање на табелата duel ќе помогне бидејќи на неа се прави Full Scan.

Со додавање на индекс се намалува времето на извршување на 4s 18ms.

Поглед 2: monthly_income_for_club

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

Извршување на квери со погледот трае 11s 397ms.

Во споредба од претходното, ова е доста побрзо без оптимизација, но пак може да се забрза. Според квери планот можеме да ги видиме 3-те табели каде се извршува Full Scan.

Со овие индексирање на тие 3 табели можеме да добиеме време на извршување 20ms.

Со овие индексирање на тие 3 табели можеме да добиеме време на извршување 20ms.

Поглед 3: upcoming_duels

Погледот upcoming_duels содржи информации за идно закажани дуели, датумот и времето на дуелот, имиња на тимовите, спортот, име, капацитет и држава на локацијата каде се изигрува, и името на натпревар (доколку има).

Иницијално времен на извршување е 31s 773ms. Ова време е иницијално подобрено од индексирање од поглед 1.

Сепак овој поглед главно филтрира дуели според start_time, кој не е опфатен од претходниот индекс. Затоа во планот пак се извршува Full Scan на табелата.

[Image(analysis_V3.png)]]

Креирање на нов индекс каде прво се индексира start_time, ќе ги подобри перформансите.

Со индексирање кверито се извршува за 10s 696ms.

Поглед 4: free_locations

...

Attachments (37)

Note: See TracWiki for help on using the wiki.