wiki:ContractsRevenueIndex

Индекс: 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 е специфичен за овој преглед. Ги забрзува агрегациите по компанија и ресторан и е особено корисен при извршување на финансиски извештаи за конкретна компанија.

Last modified 2 weeks ago Last modified on 05/10/26 14:43:14
Note: See TracWiki for help on using the wiki.