= Query Optimization == View1: Baggage Details 1. Примарното филтрирање на погледот !BaggageDetails ќе биде според id на картата (ticketId). 2. Примарен случај на употреба ќе биде пребарување на статусот (локацијата) на одреден багаж (кој припаѓа на одреден патник или е на одреден лет). 3. Иницијалното време за извршување на погледот е 1s 524ms. [[Image(img30.jpg)]] [[Image(img31.jpg)]] Ова не е прифатливо време за апликацијата, па затоа пристапуваме кон индексирање. 4. Најбавните операции се full scan на табелите baggage и baggageStatus. 5. Времето изминато во извршување на операциите insert и update изнесувa [[Image(img34.jpg)]] [[Image(img35.jpg)]] Креирање на индекс во табелата baggage на ticketId [[Image(img36.jpg)]] 6. Времето изминато во извршување на query-то со индекси изнесува 705ms, и тоа е прифатливо време. [[Image(img37.jpg)]] [[Image(img38.jpg)]] 7. Времето изминато во извршување на операциите insert и update по индексирање изнесува: [[Image(img41.jpg)]] [[Image(img42.jpg)]] == View2: Airplane Availability 1. Примарното филтрирање на погледот !AirplaneAvailability ќе биде според местото на последната дестинација на авионот (!LastFlightDestination). 2. Примарен случај на употреба ќе биде пребарување на авион којшто се наоѓа на потребната локација. 3. Иницијалното време на извршување на погледот е 1min 20s 558ms [[Image(img45.jpg)]] [[Image(img46.jpg)]] Ова не е прифатливо време за апликацијата, па затоа пристапуваме кон индексирање. 4. Најбавните операции се full scan на табелата flight 5. Времето изминато во извршување на операциите insert и update пред индексирање изнесува: [[Image(img49.jpg)]] [[Image(img50.jpg)]] Креирање на композитен индекс на табелата flight на аirplaneId и departure [[Image(img51.jpg)]] 6. Времето изминато во извршување на query-то со индекси изнесува 477ms, и тоа е прифатливо време. [[Image(img52.jpg)]] [[Image(img55.jpg)]] 7. Времето изминато во извршување на операциите insert и update по индексирање изнесува: [[Image(img56.jpg)]] [[Image(img57.jpg)]] == View3: Cargo Details 1. Примарното филтрирање на погледот !CargoDetails ќе биде според id на летот (flightId). 2. Примарен случај на употреба ќе биде приказ на тоа кој багаж припаѓа на патниците, а кој е дополнителен багаж на летот. 3. Иницијалното време на извршување на погледот е 2s 518ms. [[Image(img60.jpg)]] [[Image(img61.jpg)]] Ова не е прифатливо време за апликацијата, па затоа пристапуваме кон индексирање. 4. Најбавните операции се full scan на табелите baggage, ticket и additionalCargo. 5. Времето изминато во извршување на операциите insert и update во табелите additionalCargo и baggage изнесувa: [[Image(img64.jpg)]] [[Image(img65.jpg)]] [[Image(img66.jpg)]] [[Image(img67.jpg)]] Креираме индекс на табелата ticket на flightId [[Image(img68.jpg)]] 6. Времето изминато во извршување на query-то со индекси изнесува 1s 862ms, и тоа може да се каже дека е прифатливо време (бидејќи табелите содржат 10 милиони записи). [[Image(img69.jpg)]] [[Image(img72.jpg)]] 7. Времето изминато во извршување на операциите insert и update по индексирање изнесува: [[Image(img73.jpg)]] [[Image(img74.jpg)]] [[Image(img75.jpg)]] [[Image(img76.jpg)]] == View4: Certification Expiry Status 1. Примарното филтрирање на погледот !CertificationExpiryStatus ќе биде според id на вработениот (employeeId). 2. Примарен случај на употреба ќе биде статусот на сертификатите на вработен во авиокомпанијата. 3. Иницијалното време на извршување на погледот е 519ms. [[Image(img79.jpg)]] [[Image(img80.jpg)]] [[Image(img81.jpg)]] [[Image(img82.jpg)]] [[Image(img85.jpg)]] [[Image(img86.jpg)]] [[Image(img89.jpg)]] [[Image(img90.jpg)]] [[Image(img91.jpg)]] [[Image(img94.jpg)]] [[Image(img95.jpg)]] [[Image(img96.jpg)]] [[Image(img97.jpg)]] [[Image(img100.jpg)]] [[Image(img101.jpg)]]