Changes between Version 2 and Version 3 of QueryOptimization


Ignore:
Timestamp:
06/07/26 13:40:52 (9 days ago)
Author:
231014
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • QueryOptimization

    v2 v3  
    22=== Оптимизација ===
    33[attachment:"Индекси и оптимизација на прашалници.pdf"]
     4
     5'''Проект:''' WIMS
     6
     7 * Андреј Арсовски 231170
     8 * Мартина Ивановска 231014
     9 * Мила Спасевска 231046
     10
     11----
     12
     13== View 1: view_current_warehouse_stock ==
     14
     15'''Опис:''' Shows current stock per warehouse, product, and/or variant.
     16
     17 1. Примарен филтер за погледот ''view_current_warehouse_stock'' ќе биде според ''warehouse_id'', а може да се филтрира и според ''product_id'' и ''variant_id''.
     18 1. Ќе биде употребувано од страна на вработените кога сакаат да направат увид во состојбата на одреден warehouse, одреден продукт или конкретна варијанта.
     19 1. Иницијално време за извршување на овој поглед за секој warehouse за секој продукт е доста долго околу 13 секунди поради тоа што е потребен full scan за сите редови во inventory. Но ова не може да се оптимизира поради неопходен seq scan.
     20 1. Иницијално време за извршување:
     21    * По warehouse: 1.8 секунди (прифатливо)
     22    * По продукт: 2.8 секунди (прифатливо)
     23    * По варијанта: 0.3 секунди (прифатливо)
     24 1. Во продолжение следуваат планови и времиња на извршување.
     25
     26----
     27
     28== View 2: view_products_by_category ==
     29
     30'''Опис:''' Lists all products grouped by their categories.
     31
     32 1. Примарен филтер е ''main_category_id'', а може да се филтрира и според ''product_id''.
     33 1. Ќе биде употребувано од страна на вработени или клиенти кога сакаат да разгледуваат продукти кои се дел од одбрана категорија.
     34 1. Иницијално време за извршување е околу 350 ms.
     35 1. Иницијално време за извршување:
     36    * По category_id: 1.8 секунди (прифатливо)
     37    * По product_id: 350 ms (прифатливо)
     38 1. Во продолжение следуваат планови и времиња на извршување.
     39
     40----
     41
     42== View 3: view_variants_per_product ==
     43
     44'''Опис:''' Shows all variants for each product with detailed variant information.
     45
     46 1. Примарен филтер е ''product_id''.
     47 1. Ќе биде употребувано од страна на вработени или клиенти кога сакаат да разгледуваат конкретни варијанти од одреден тип на продукти.
     48 1. Иницијално време за извршување е околу 400 ms.
     49 1. Иницијално време за извршување по ''product_id'' е 430 ms (прифатливо).
     50 1. Во продолжение следуваат планови и времиња на извршување.
     51
     52----
     53
     54== View 4: view_inventory_summary ==
     55
     56'''Опис:''' View inventory stock for a given product_variant.
     57
     58 1. Примарен филтер е ''product_variant_id'' и ''available_quantity''.
     59 1. Ќе биде употребувано од страна на вработените и менаџерите кога сакаат да проверат во колкава количина имаме одредена варијанта.
     60 1. Иницијално време за извршување е околу 3 секунди.
     61 1. Иницијално време за извршување:
     62    * По product_variant_id: 320 ms (прифатливо)
     63    * По available_quantity: 3.7 секунди (неприфатливо)
     64 1. Во продолжение следуваат планови и времиња на извршување.
     65
     66----
     67
     68== View 5: view_employee_current_warehouse ==
     69
     70'''Опис:''' Detailed warehouse where an employee is assigned or employees per warehouse.
     71
     72 1. Примарен филтер е ''employee_id'', а дополнително може да се филтрира по ''warehouse_id'' и ''employment_status''.
     73 1. Ќе биде употребувано од страна на администратори кога сакаат да видат кои задачи ги има еден вработен или кои вработени работат во одреден warehouse.
     74 1. Иницијално време за извршување е околу 400 ms.
     75 1. Иницијално време за извршување:
     76    * По employee_id: 300 ms (прифатливо)
     77    * По warehouse_id: 350 ms (прифатливо)
     78 1. Во продолжение следуваат планови и времиња на извршување.
     79
     80----
     81
     82== View 6: view_employee_permissions ==
     83
     84'''Опис:''' Lists employee roles and their associated permissions.
     85
     86 1. Примарен филтер е ''employee_id''.
     87 1. Ќе биде употребувано од страна на администратори кога сакаат да видат кои пермисии ги има даден вработен.
     88 1. Иницијално време за извршување е околу 350 ms.
     89 1. Иницијално време за извршување по ''employee_id'' е 300 ms (прифатливо).
     90 1. Во продолжение следуваат планови и времиња на извршување.
     91
     92----
     93
     94== View 7: view_inventory_movements_detailed ==
     95
     96'''Опис:''' Detailed inventory movement records including bins and responsible employee.
     97
     98 1. Примарен филтер е ''employee_id'', а дополнително може да се филтрира по:
     99    * transaction_type
     100    * created_at
     101    * inventory_transaction_id
     102 1. Ќе биде употребувано од страна на администратори и warehouse менаџери за следење на движење на залихи.
     103 1. Иницијално време за извршување без филтрирање е 3.2 секунди.
     104 1. Иницијални времиња:
     105    * employee_id: 900 ms → 400 ms по индекс
     106    * transaction_type: 2.7 s (без значително подобрување)
     107    * created_at: 3.3 s → 1.7 s по индекс
     108    * inventory_transaction_id: 1 s → 300 ms по индекс
     109 1. Во продолжение следуваат планови и времиња на извршување.
     110
     111=== Пред индекс ===
     112
     113(вметни слики / EXPLAIN планови)
     114
     115=== После индекс ===
     116
     117(вметни слики / EXPLAIN планови)
     118
     119----
     120
     121== View 8: view_variant_details ==
     122
     123'''Опис:''' Detailed product variant view.
     124
     125 1. Примарен филтер е ''variant_id''.
     126 1. Ќе биде употребувано од страна на вработени или клиенти кога сакаат да разгледуваат одредена продукт варијанта и сите детални податоци.
     127 1. Иницијално време за извршување е околу 1 секунда.
     128 1. Иницијално време за извршување по ''variant_id'' е 350 ms (прифатливо).
     129 1. Во продолжение следуваат планови и времиња на извршување.
     130
     131----
     132
     133== View 9: view_category_tree ==
     134
     135'''Опис:''' Category hierarchy.
     136
     137 1. Нема примарен филтер или може да се користи ''category_id'' за детална патека на категорија.
     138 1. Ќе биде употребувано од страна на вработени или клиенти кога сакаат да ја разгледуваат хиерархијата на категориите.
     139 1. Иницијално време за извршување е околу 330 ms.
     140 1. Иницијално време за извршување по ''category_id'' е 350 ms (прифатливо).
     141 1. Во продолжение следуваат планови и времиња на извршување.