Changes between Initial Version and Version 1 of ContractsRevenueIndex


Ignore:
Timestamp:
05/10/26 14:43:14 (2 weeks ago)
Author:
185022
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ContractsRevenueIndex

    v1 v1  
     1= Индекс: v_contracts_revenue_index =
     2
     3||= Датотека ||= `indexes/v_contracts_revenue_index.sql` ||
     4||= Шема ||= `kbnteam` ||
     5||= Поврзани прегледи ||= `v_contracts_revenue`, `v_company_billing_overview`, `v_orders_full`, `v_driver_deliveries` ||
     6
     7== Опис ==
     8Четири индекси за поддршка на прегледот `v_contracts_revenue`. Таргетираат CTE-то `order_restaurants` (UNION по order_meal и order_drink) и главниот SELECT за договори по компанија и ресторан.
     9
     10== DDL ==
     11{{{
     12#!sql
     13-- indexes/v_contracts_revenue_index.sql
     14CREATE INDEX IF NOT EXISTS idx_order_meal_order_id_meal_id
     15ON kbnteam.order_meal (order_id, meal_id);
     16
     17CREATE INDEX IF NOT EXISTS idx_order_drink_order_id_drink_id
     18ON kbnteam.order_drink (order_id, drink_id);
     19
     20CREATE INDEX IF NOT EXISTS idx_customer_order_comp_order_id
     21ON kbnteam.customer_order (comp_order_id);
     22
     23CREATE INDEX IF NOT EXISTS idx_contract_company_id_rest_id
     24ON kbnteam.contract (company_id, rest_id);
     25}}}
     26
     27== Поддржани прегледи ==
     28||= Индекс ||= Прегледи ||= Цел ||
     29|| `idx_order_meal_order_id_meal_id` || `v_contracts_revenue`, `v_orders_full`, `v_driver_deliveries` || CTE `order_restaurants` UNION (страна на оброци) ||
     30|| `idx_order_drink_order_id_drink_id` || `v_contracts_revenue`, `v_orders_full`, `v_driver_deliveries` || CTE `order_restaurants` UNION (страна на пијачи) ||
     31|| `idx_customer_order_comp_order_id` || `v_contracts_revenue` и повеќе | CTE `contract_metrics` JOIN со `company_order` ||
     32|| `idx_contract_company_id_rest_id` || `v_contracts_revenue`, `v_company_billing_overview` || Главен SELECT WHERE company_id; JOIN company+restaurant ||
     33
     34== Колонски план ==
     35||= Индекс ||= Колона 1 ||= Колона 2 ||= Причина ||
     36|| `idx_order_meal_order_id_meal_id` || `order_id` || `meal_id` || CTE UNION агрегација по нарачка ||
     37|| `idx_order_drink_order_id_drink_id` || `order_id` || `drink_id` || CTE UNION агрегација по нарачка ||
     38|| `idx_customer_order_comp_order_id` || `comp_order_id` || — || FK JOIN customer_order → company_order ||
     39|| `idx_contract_company_id_rest_id` || `company_id` (leading) || `rest_id` || Composite ключ за договори по компанија+ресторан ||
     40
     41== Верификација ==
     42{{{
     43#!sql
     44SELECT indexname, indexdef
     45FROM pg_indexes
     46WHERE schemaname = 'kbnteam'
     47  AND indexname IN (
     48      'idx_order_meal_order_id_meal_id',
     49      'idx_order_drink_order_id_drink_id',
     50      'idx_customer_order_comp_order_id',
     51      'idx_contract_company_id_rest_id'
     52  );
     53}}}
     54
     55== Очекувано влијание ==
     56`idx_contract_company_id_rest_id` е специфичен за овој преглед. Ги забрзува агрегациите по компанија и ресторан и е особено корисен при извршување на финансиски извештаи за конкретна компанија.