Query Optimization
View 1: Live offers for customer
- Примарен случај на употреба на овој поглед е за добивање на моменталните активни понуди за еден корисник при побарување на такси.
- Примарен филтер за овој поглед е атрибутот customer_id во релацијата offer
- Иницијално време на извршување на погледот е 1s и 533ms
Ова време е задоволително (помало од 3 секунди), па затоа не е потребно да се извршува оптимизирање на прашалникот.
- Нема потреба од правење на план за извршување поради тоа што времето е задоволително.
- Иницијалното време за insert и update во табелата offer е:
- Нема потреба да се преуреди прашалникот
- Времето на извршување на операциите останува исто
View 2: Available drivers
- Примарен случај на употреба на овој поглед е за добивање на слободните возачи во моментот за дадена компанија.
- Примарен филтер за овој поглед е атрибутот company_id во релацијата employmenthistory.
- Иницијално време на извршување на погледот е 3s и 982ms:
Ова време не е прифатливо за нашата апликација, па затоа пристапуваме кон индексизање за оптимизација на прашалникот
- Најскапи операции се full scan на табелата ride и driver_vehicle:
- Иницијалното време на insert и update во ride и driver_vehicle е:
6.Времето потребно за извршување на прашалникот после вметнување на индекс на customerpreferences по атрибутот company_id изнесува 984ms што е прифатливо време:
- Времето потребно за извршување на insert и update во ride и driver_vehicle изнесува:
View 3: Unassigned requests
- Примарен случај на употреба овој поглед ќе се користи за добивање на недоделените барања за такси од страна на компаниите во зависност од преференците на корисниците.
- Примаре филтер би бил атрибутот company_id во customerpreference релацијата.
- Иницијалното извршување на погледот е 5s и 109ms:
Ова време е неприфатливо за апликацијата па затоа извршуваме оптимизирање со користење на индексирање.
- Најскапи операции се full scan на табелите request и customerpreference:
- Иницијалното време на insert и update на табелата requests е:
- Времето потребно за извршување на прашалникот после вметнување на индекс на customerpreferences по атрибутот company_id изнесува 702ms што е прифатливо време:
- Времето потребно за извршување на insert и update во request после индексирање:
- И покрај тоа што се справивме со full scan на табелата ride сеуште времето е незадоволително. Па затоа за подобрување на перформансите прашалникот може да се реструктуира така што ќе се користи limit и offset за имплементација на пагинација при користење на апликацијата:
Овој поглед во иднина ќе биде оптимизиран со помош на PostGIS така што ќе се земаат барања во радиус од неколку километри и бројот на редици ќе се намали, а со тоа и потребното време за извршување.
Attachments (26)
- 1.png (19.8 KB ) - added by 2 days ago.
- 2.png (32.2 KB ) - added by 2 days ago.
- 3.png (12.6 KB ) - added by 2 days ago.
- 4.png (28.5 KB ) - added by 2 days ago.
- 5.png (139.7 KB ) - added by 2 days ago.
- 6.png (24.6 KB ) - added by 2 days ago.
- 7.png (13.5 KB ) - added by 2 days ago.
- 8.png (18.7 KB ) - added by 2 days ago.
- 9.png (13.3 KB ) - added by 2 days ago.
- 10.png (13.5 KB ) - added by 2 days ago.
- 11.png (28.6 KB ) - added by 2 days ago.
- 12.png (111.9 KB ) - added by 2 days ago.
- 13.png (25.2 KB ) - added by 2 days ago.
- 14.png (13.0 KB ) - added by 2 days ago.
- 15.png (18.5 KB ) - added by 2 days ago.
- 16.png (13.7 KB ) - added by 2 days ago.
- 17.png (26.3 KB ) - added by 2 days ago.
- 18.png (69.9 KB ) - added by 2 days ago.
- 19.png (40.4 KB ) - added by 2 days ago.
- 20.png (14.1 KB ) - added by 2 days ago.
- 21.png (7.5 KB ) - added by 2 days ago.
- 22.png (26.3 KB ) - added by 2 days ago.
- 23.png (70.1 KB ) - added by 2 days ago.
- 24.png (40.5 KB ) - added by 2 days ago.
- 25.png (14.2 KB ) - added by 2 days ago.
- 26.png (29.0 KB ) - added by 2 days ago.
Download all attachments as: .zip


























