wiki:QueryOptimization

Version 5 (modified by 231014, 9 days ago) ( diff )

--

QueryOptimization

Оптимизација

Индекси и оптимизација на прашалници.pdf

Проект: WIMS

  • Андреј Арсовски 231170
  • Мартина Ивановска 231014
  • Мила Спасевска 231046

View 1: view_current_warehouse_stock

Опис: Shows current stock per warehouse, product, and/or variant.

  1. Примарен филтер за погледот view_current_warehouse_stock ќе биде според warehouse_id, а може да се филтрира и според product_id и variant_id.
  2. Ќе биде употребувано од страна на вработените кога сакаат да направат увид во состојбата на одреден warehouse, одреден продукт или конкретна варијанта.
  3. Иницијално време за извршување на овој поглед за секој warehouse за секој продукт е доста долго околу 13 секунди поради тоа што е потребен full scan за сите редови во inventory. Но ова не може да се оптимизира поради неопходен seq scan.
  4. Иницијално време за извршување:
    • По warehouse: 1.8 секунди (прифатливо)
    • По продукт: 2.8 секунди (прифатливо)
    • По варијанта: 0.3 секунди (прифатливо)
  5. Во продолжение следуваат планови и времиња на извршување.


View 2: view_products_by_category

Опис: Lists all products grouped by their categories.

  1. Примарен филтер е main_category_id, а може да се филтрира и според product_id.
  2. Ќе биде употребувано од страна на вработени или клиенти кога сакаат да разгледуваат продукти кои се дел од одбрана категорија.
  3. Иницијално време за извршување е околу 350 ms.
  4. Иницијално време за извршување:
    • По category_id: 1.8 секунди (прифатливо)
    • По product_id: 350 ms (прифатливо)
  5. Во продолжение следуваат планови и времиња на извршување.

View 3: view_variants_per_product

Опис: Shows all variants for each product with detailed variant information.

  1. Примарен филтер е product_id.
  2. Ќе биде употребувано од страна на вработени или клиенти кога сакаат да разгледуваат конкретни варијанти од одреден тип на продукти.
  3. Иницијално време за извршување е околу 400 ms.
  4. Иницијално време за извршување по product_id е 430 ms (прифатливо).
  5. Во продолжение следуваат планови и времиња на извршување.

View 4: view_inventory_summary

Опис: View inventory stock for a given product_variant.

  1. Примарен филтер е product_variant_id и available_quantity.
  2. Ќе биде употребувано од страна на вработените и менаџерите кога сакаат да проверат во колкава количина имаме одредена варијанта.
  3. Иницијално време за извршување е околу 3 секунди.
  4. Иницијално време за извршување:
    • По product_variant_id: 320 ms (прифатливо)
    • По available_quantity: 3.7 секунди (неприфатливо)
  5. Во продолжение следуваат планови и времиња на извршување.

View 5: view_employee_current_warehouse

Опис: Detailed warehouse where an employee is assigned or employees per warehouse.

  1. Примарен филтер е employee_id, а дополнително може да се филтрира по warehouse_id и employment_status.
  2. Ќе биде употребувано од страна на администратори кога сакаат да видат кои задачи ги има еден вработен или кои вработени работат во одреден warehouse.
  3. Иницијално време за извршување е околу 400 ms.
  4. Иницијално време за извршување:
    • По employee_id: 300 ms (прифатливо)
    • По warehouse_id: 350 ms (прифатливо)
  5. Во продолжение следуваат планови и времиња на извршување.

View 6: view_employee_permissions

Опис: Lists employee roles and their associated permissions.

  1. Примарен филтер е employee_id.
  2. Ќе биде употребувано од страна на администратори кога сакаат да видат кои пермисии ги има даден вработен.
  3. Иницијално време за извршување е околу 350 ms.
  4. Иницијално време за извршување по employee_id е 300 ms (прифатливо).
  5. Во продолжение следуваат планови и времиња на извршување.

View 7: view_inventory_movements_detailed

Опис: Detailed inventory movement records including bins and responsible employee.

  1. Примарен филтер е employee_id, а дополнително може да се филтрира по:
    • transaction_type
    • created_at
    • inventory_transaction_id
  2. Ќе биде употребувано од страна на администратори и warehouse менаџери за следење на движење на залихи.
  3. Иницијално време за извршување без филтрирање е 3.2 секунди.
  4. Иницијални времиња:
    • employee_id: 900 ms → 400 ms по индекс
    • transaction_type: 2.7 s (без значително подобрување)
    • created_at: 3.3 s → 1.7 s по индекс
    • inventory_transaction_id: 1 s → 300 ms по индекс
  5. Во продолжение следуваат планови и времиња на извршување.

Пред индекс

(вметни слики / EXPLAIN планови)

После индекс

(вметни слики / EXPLAIN планови)


View 8: view_variant_details

Опис: Detailed product variant view.

  1. Примарен филтер е variant_id.
  2. Ќе биде употребувано од страна на вработени или клиенти кога сакаат да разгледуваат одредена продукт варијанта и сите детални податоци.
  3. Иницијално време за извршување е околу 1 секунда.
  4. Иницијално време за извршување по variant_id е 350 ms (прифатливо).
  5. Во продолжение следуваат планови и времиња на извршување.

View 9: view_category_tree

Опис: Category hierarchy.

  1. Нема примарен филтер или може да се користи category_id за детална патека на категорија.
  2. Ќе биде употребувано од страна на вработени или клиенти кога сакаат да ја разгледуваат хиерархијата на категориите.
  3. Иницијално време за извршување е околу 330 ms.
  4. Иницијално време за извршување по category_id е 350 ms (прифатливо).
  5. Во продолжение следуваат планови и времиња на извршување.

Attachments (44)

Note: See TracWiki for help on using the wiki.