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