== Креирање на индекси == Овој поглед служи со цел бизнисите да имаат преглед на најпродаваните производи за одреден месец и година. Ваквиот поглед би се користел од страна на корисниците кои што ја имаат улогата на BUSINESS_ADMIN во нашиот систем. Поради тоа што правиме поврзување на повеќе табели, потребно е да креираме и неколку индекси со што прашалниците кои би се извршувале врз погледот “[top_items_in_order_for_business]” имаат подобри перформанси. ---- За таа цел ги креираме следните индекси: [[Image(created_indexes.png)]] Креираните индекси претставуваат индекс од тип B-tree. Подолу може да ги видиме планот на извршување и самото време на извршување на два прашалници кои би биле чести во нашата апликација и нивните перформанси пред и по додавање на индексите. Поради тоа што нашата база содржи милионски број на податоци, кога ги извршуваме прашалниците, времето на извршување изнесува 5,3 секунди и 3.7 секунди (слика 2 – Execution-time-before-indexing и слика 5 – Execution-time-before-indexing), додека по додавањето на индексите времето изнесува 3.5 секунди и 2.5 секунди (слика 8 – Execution-time-after-indexing и слика 10 – execution-time-after-indexing). • Слика 1 – View • Слика 2 – Execution-time-before-indexing-query1 • Слика 3 – Еxecution-plan-before-indexing-query1 • Слика 4 – Execution-time-before-indexing-query2 • Слика 5 – Execution-plan-before-indexing-query2 • Слика 6 – Execution-time-after-indexing-query1 • Слика 7 – Execution-plan-after-indexing-query1 • Слика 8 - Execution-time-after-indexing-query2 • Слика 9 - Execution-plan-after-indexing-query2 ---- [[Image(top_items_in_order_for_business_create_view.png)]] [[Image(1_view_query_1_execution_plan_before_indexing.png)]] [[Image(1_view_query_1_execution_time_before_indexing.png)]] [[Image(1_view_query_2_execution_plan-before_indexing.png)]] [[Image(1_view_query_2_execution_time_before_indexing.png)]] [[Image(1_view_query_1_execution_time_after_indexing.png)]] [[Image(1_view_query_1_execution_plan_after_indexing.png)]] [[Image(1_view_query_2_execution_time_after_indexing.png)]] [[Image(1_view_query_2_execution_plan_after_indexing.png)]] == Дополнителни погледи == [[Image(user_favourite_businesses_view.png)]] ---- Преку ваквиот поглед би можеле да ги добиеме омилените бизниси од кој што купувал корисникот според тоа колку потрошил кај самиот бизнис. Затоа што перформансите на прашалниците кои се поврзани со овој поглед се прилично добри околу (400 ms) немаме креирано некои дополнителни индекси. Но доколку перформансите ослабнат потенцијални индекси би биле: [[Image(view_2_query_1_potential_indexes.png)]] --- Исто така битно е да се знае дека иако со креирање на соодветни индекси ги подобрување перформансите за читање на податоците од базата со самото нивно креирање зафаќаме и повеќе простор на дискот. Затоа треба да бидеме претпазливи кога додаваме нови индекси поради тоа што се намалуваат перформансите при креирање, промена и бришење на редови од табела во која што имаме индекси.