= Индекс: v_company_billing_overview_index = ||= Датотека ||= `indexes/v_company_billing_overview_index.sql` || ||= Шема ||= `kbnteam` || ||= Поврзани прегледи ||= `v_company_billing_overview`, `v_contracts_revenue`, `v_company_users` || == Опис == Два индекси за поддршка на прегледот `v_company_billing_overview`. `idx_contract_company_id` го поддржува CTE-то `company_contracts` (GROUP BY company_id), а `idx_customer_order_comp_order_id` го поддржува LEFT JOIN во CTE-то `invoice_totals`. == DDL == {{{ #!sql -- indexes/v_company_billing_overview_index.sql CREATE INDEX IF NOT EXISTS idx_contract_company_id ON kbnteam.contract (company_id); CREATE INDEX IF NOT EXISTS idx_customer_order_comp_order_id ON kbnteam.customer_order (comp_order_id); }}} == Поддржани прегледи == ||= Индекс ||= Прегледи ||= Цел || || `idx_contract_company_id` || `v_company_billing_overview`, `v_company_users` || CTE `company_contracts` GROUP BY company_id; JOIN contract по company_id || || `idx_customer_order_comp_order_id` || `v_company_billing_overview` и многу други || LEFT JOIN `customer_order` → `company_order` по `comp_order_id` || == Колонски план == ||= Индекс ||= Колона ||= Причина || || `idx_contract_company_id` || `company_id` || Единечна колона — GROUP BY company_id во CTE `company_contracts` || || `idx_customer_order_comp_order_id` || `comp_order_id` || FK JOIN — `customer_order.comp_order_id` → `company_order.comp_order_id` || == Разлика помеѓу `idx_contract_company_id` и `idx_contract_company_id_rest_id` == ||= Индекс ||= Дефиниран во ||= Колони ||= Употреба || || `idx_contract_company_id` || `v_company_billing_overview_index.sql` | `(company_id)` || Единечна колона — само filteri по company_id || || `idx_contract_company_id_rest_id` || `v_contracts_revenue_index.sql` || `(company_id, rest_id)` || Composite — JOIN и filter по company+restaurant || PostgreSQL може да го користи `idx_contract_company_id_rest_id` и за прашалници со само `company_id` (leading column match), така да `idx_contract_company_id` е технички редундантен кога двата постојат. Сепак, единечниот индекс е покомпактен за само-company_id скенирање. == Верификација == {{{ #!sql SELECT indexname, indexdef FROM pg_indexes WHERE schemaname = 'kbnteam' AND indexname IN ( 'idx_contract_company_id', 'idx_customer_order_comp_order_id' ); }}}