wiki:QueryViewsOptimization

Оптимизација на прашалници и погледи

Погледите го прикажуваат менито, нарачките, доставите, рецензиите, договорите, фактурите и лојалноста на клиентите. Дополнителното индексирање е задржано за 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

Споредба и заклучок во PDF формат​

Last modified 10 days ago Last modified on 09/16/26 11:59:08

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.