Индекс: v_contracts_revenue_index
| Датотека | indexes/v_contracts_revenue_index.sql
|
|---|
| Шема | kbnteam
|
|---|
| Поврзани прегледи | v_contracts_revenue, v_company_billing_overview, v_orders_full, v_driver_deliveries
|
|---|
Опис
Четири индекси за поддршка на прегледот v_contracts_revenue. Таргетираат CTE-то order_restaurants (UNION по order_meal и order_drink) и главниот SELECT за договори по компанија и ресторан.
DDL
-- indexes/v_contracts_revenue_index.sql
CREATE INDEX IF NOT EXISTS idx_order_meal_order_id_meal_id
ON kbnteam.order_meal (order_id, meal_id);
CREATE INDEX IF NOT EXISTS idx_order_drink_order_id_drink_id
ON kbnteam.order_drink (order_id, drink_id);
CREATE INDEX IF NOT EXISTS idx_customer_order_comp_order_id
ON kbnteam.customer_order (comp_order_id);
CREATE INDEX IF NOT EXISTS idx_contract_company_id_rest_id
ON kbnteam.contract (company_id, rest_id);
Поддржани прегледи
| Индекс | Прегледи | Цел
|
|---|
idx_order_meal_order_id_meal_id | v_contracts_revenue, v_orders_full, v_driver_deliveries | CTE order_restaurants UNION (страна на оброци)
|
idx_order_drink_order_id_drink_id | v_contracts_revenue, v_orders_full, v_driver_deliveries | CTE order_restaurants UNION (страна на пијачи)
|
idx_customer_order_comp_order_id | v_contracts_revenue и повеќе | CTE contract_metrics JOIN со company_order
|
idx_contract_company_id_rest_id | v_contracts_revenue, v_company_billing_overview | Главен SELECT WHERE company_id; JOIN company+restaurant
|
Колонски план
| Индекс | Колона 1 | Колона 2 | Причина
|
|---|
idx_order_meal_order_id_meal_id | order_id | meal_id | CTE UNION агрегација по нарачка
|
idx_order_drink_order_id_drink_id | order_id | drink_id | CTE UNION агрегација по нарачка
|
idx_customer_order_comp_order_id | comp_order_id | — | FK JOIN customer_order → company_order
|
idx_contract_company_id_rest_id | company_id (leading) | rest_id | Composite ключ за договори по компанија+ресторан
|
Верификација
SELECT indexname, indexdef
FROM pg_indexes
WHERE schemaname = 'kbnteam'
AND indexname IN (
'idx_order_meal_order_id_meal_id',
'idx_order_drink_order_id_drink_id',
'idx_customer_order_comp_order_id',
'idx_contract_company_id_rest_id'
);
Очекувано влијание
idx_contract_company_id_rest_id е специфичен за овој преглед. Ги забрзува агрегациите по компанија и ресторан и е особено корисен при извршување на финансиски извештаи за конкретна компанија.