= Фаза 3: Оптимизација на прашалници и погледи = Во оваа фаза е направена детална EXPLAIN ANALYZE анализа пред и по оптимизацијата, како и додавање на B-Tree индекси и рефакторирање на прашалниците. Целокупниот процес со плановите за извршување е документиран. Целосната документација со EXPLAIN ANALYZE резултатите (PDF) може да се преземе овде: * [attachment:Optimizacija_upita_i_pogleda.pdf Документација за оптимизација (симни тука)] == Анализа и оптимизација: new_event_ticket_sales_status == * '''Пред оптимизација:''' Извршувањето траеше '''~38.7 секунди''' (38712 ms) поради Sequential Scan на милиони записи и прелевање на сортирањето на диск (Disk Spill). * '''Оптимизација:''' Додадени се B-Tree индекси на надворешните клучеви (`idx_ticket_event_valid`) и применета е техниката Pre-aggregated Join (со користење на CTE за рано групирање пред спојување со големи табели). * '''По оптимизација:''' Времето на извршување е намалено на '''5.4 ms''', што е забрзување од над 99%. == Анализа и оптимизација: new_user_ticket_history == * '''Пред оптимизација:''' Времето на извршување изнесуваше огромни '''~138.2 секунди''' поради "Hash Batches" проблем и I/O тесно грло при спојување на табели од 8.9 и 5 милиони редици во меморија. * '''Оптимизација:''' Креирани се индексите `idx_reservation_user` и `idx_ticket_reservation`. * '''По оптимизација:''' При филтрирање за конкретен корисник, базата успешно користи Nested Loop операција, спуштајќи го времето на извршување на '''7.5 ms'''. == Општа оптимизација == За останатите погледи, додадени се индекси на надворешните клучеви (`idx_venue_city`, `idx_parking_venue`, `idx_staff_event`, итн.), што овозможува инстант пребарувања за помалку од 10 милисекунди.