| Version 15 (modified by , 10 days ago) ( diff ) |
|---|
Оптимизација на прашалници и погледи
Погледите го прикажуваат менито, нарачките, доставите, рецензиите, договорите, фактурите и лојалноста на клиентите. Дополнителното индексирање е задржано за v_orders_full, v_driver_deliveries и v_contracts_revenue.
Погледи
Мени и каталог
| Поглед | Намена | Индексна поддршка |
|---|---|---|
| v_menu_meal | Ги прикажува јадењата со категорија, ресторан, состојки и алергени. | Постоечка индексна поддршка. |
| v_menu_drink | Ги прикажува пијалоците, нивната количина и цена, како и ресторанот. | Постоечка индексна поддршка. |
Нарачки и достави
| Поглед | Намена | Индексна поддршка |
|---|---|---|
| v_orders_full | Прикажува нарачки со податоци за клиентот, компанијата, статусот, доставата и нарачаните јадења и пијалоци. | v_orders_full_index |
| v_driver_deliveries | Ги прикажува доставите, доставувачите, рестораните, компаниите и поврзаните нарачки. | v_driver_deliveries_index |
Рецензии
| Поглед | Намена | Индексна поддршка |
|---|---|---|
| v_reviews_full | Ги обединува оцените за нарачки и достави, со ознака за типот на рецензијата. | Постоечка индексна поддршка. |
Договори, фактурирање и лојалност
| Поглед | Намена | Индексна поддршка |
|---|---|---|
| v_contracts_revenue | За секој договор ги прикажува бројот на компаниски и клиентски нарачки и вкупниот приход за парот компанија–ресторан. | v_contracts_revenue_index |
| v_company_billing_overview | За секоја фактура ги прикажува компанијата, доставата, бројот на клиентски нарачки, нивниот вкупен износ и бројот на договори на компанијата. | Постоечка индексна поддршка. |
| v_customer_loyalty_full_v2 | Ги прикажува клиентот, компанијата, поените, статусот и нивото на лојалност, бројот на нарачки, вкупната потрошувачка и датумот на последната нарачка. | Постоечка индексна поддршка. |
Термини за ручек
| Поглед | Намена | Индексна поддршка |
|---|---|---|
| v_driver_lunch_timers | Ги поврзува термините за ручек со договорите, компаниите, рестораните и доставувачите. | Постоечка индексна поддршка. |
Дополнително индексирање
Трите групи содржат вкупно шест дополнителни индекси врз изворните табели. Истиот индекс може да се користи од повеќе погледи; тоа не значи дека за секој од нив е додадена посебна група индекси.
| Група | Главен поглед | Табели и колони |
|---|---|---|
| v_orders_full_index | v_orders_full | company_order(company_id), customer_order(comp_order_id), order_meal(order_id, meal_id), order_drink(order_id, drink_id)
|
| v_driver_deliveries_index | v_driver_deliveries | delivery(driver_user_id, delivery_date)
|
| v_contracts_revenue_index | v_contracts_revenue | contract(company_id, rest_id)
|
За останатите шест погледи не се додава посебно дополнително индексирање. Времето на SELECT прашалниците е прифатливо за редовното користење.
Резултати од тестирањето
SELECT
| Поглед | Пред индексирање (ms) | По индексирање (ms) |
|---|---|---|
| v_orders_full | 2598 | 2591 |
| v_driver_deliveries | околу 70000 | 48236 |
| v_contracts_revenue | 2555 | 1966 |
Кај нарачките разликата е 7 ms, односно 0,3%. Кај договорите времето е пократко за 589 ms, односно 23,1%, при резултат од нула редови во двата теста.
Кај доставите споредбата е ориентациска: околу 70 секунди за 200 редови се споредуваат со вкупно 48236 ms од статистика за две наредби.
INSERT и UPDATE
Тестирани се девет табели со по еден INSERT и еден UPDATE. Сите 18 операции се успешни и враќаат по еден ред. Execute и Fetch времињата се наведени на страницата на соодветниот поглед. По мерењето промените се вратени со ROLLBACK.
Execute е времето прикажано во DBeaver, а Fetch вредностите се од дополнетата евиденција. Овие мерења не се споредба на INSERT и UPDATE пред и по индексирање.
Извештај во PDF
Attachments (1)
- Izveshtaj_indeksiranje_pogledi.pdf (660.9 KB ) - added by 11 days ago.
Download all attachments as: .zip
