| 1 | == Креирање на индекси == |
| 2 | |
| 3 | Овој поглед служи со цел бизнисите да имаат преглед на најпродаваните производи за одреден месец и година. Ваквиот поглед би се користел од страна на корисниците кои што ја имаат улогата на BUSINESS_ADMIN во нашиот систем. Поради тоа што правиме поврзување на повеќе табели, потребно е да креираме и неколку индекси со што прашалниците кои би се извршувале врз погледот “[top_items_in_order_for_business]” имаат подобри перформанси. |
| 4 | |
| 5 | ---- |
| 6 | |
| 7 | За таа цел ги креираме следните индекси: |
| 8 | |
| 9 | [[Image(created_indexes.png)]] |
| 10 | |
| 11 | Креираните индекси претставуваат индекс од тип 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). |
| 12 | |
| 13 | • Слика 1 – View |
| 14 | • Слика 2 – Execution-time-before-indexing-query1 |
| 15 | • Слика 3 – Еxecution-plan-before-indexing-query1 |
| 16 | • Слика 4 – Execution-time-before-indexing-query2 |
| 17 | • Слика 5 – Execution-plan-before-indexing-query2 |
| 18 | • Слика 6 – Execution-time-after-indexing-query1 |
| 19 | • Слика 7 – Execution-plan-after-indexing-query1 |
| 20 | • Слика 8 - Execution-time-after-indexing-query2 |
| 21 | • Слика 9 - Execution-plan-after-indexing-query2 |
| 22 | |
| 23 | ---- |
| 24 | |
| 25 | [[Image(top_items_in_order_for_business_create_view.png)]] |
| 26 | |
| 27 | [[Image(1_view_query_1_execution_plan_before_indexing.png)]] |
| 28 | |
| 29 | [[Image(1_view_query_1_execution_time_before_indexing.png)]] |
| 30 | |
| 31 | [[Image(1_view_query_2_execution_plan-before_indexing.png)]] |
| 32 | |
| 33 | [[Image(1_view_query_2_execution_time_before_indexing.png)]] |
| 34 | |
| 35 | |
| 36 | [[Image(1_view_query_1_execution_time_after_indexing.png)]] |
| 37 | |
| 38 | [[Image(1_view_query_1_execution_plan_after_indexing.png)]] |
| 39 | |
| 40 | [[Image(1_view_query_2_execution_time_after_indexing.png)]] |
| 41 | |
| 42 | [[Image(1_view_query_2_execution_plan_after_indexing.png)]] |
| 43 | |
| 44 | |
| 45 | == Дополнителни погледи == |
| 46 | |
| 47 | [[Image(user_favourite_businesses_view.png)]] |
| 48 | |
| 49 | ---- |
| 50 | |
| 51 | Преку ваквиот поглед би можеле да ги добиеме омилените бизниси од кој што купувал корисникот според тоа колку потрошил кај самиот бизнис. |
| 52 | Затоа што перформансите на прашалниците кои се поврзани со овој поглед се прилично добри околу (400 ms) немаме креирано некои дополнителни индекси. Но доколку перформансите ослабнат потенцијални индекси би биле: |
| 53 | |
| 54 | [[Image(view_2_query_1_potential_indexes.png)]] |
| 55 | |
| 56 | --- |
| 57 | |
| 58 | Исто така битно е да се знае дека иако со креирање на соодветни индекси ги подобрување перформансите за читање на податоците од базата со самото нивно креирање зафаќаме и повеќе простор на дискот. Затоа треба да бидеме претпазливи кога додаваме нови индекси поради тоа што се намалуваат перформансите при креирање, промена и бришење на редови од табела во која што имаме индекси. |
| 59 | |
| 60 | |
| 61 | |
| 62 | |
| 63 | |
| 64 | |
| 65 | |