wiki:DriverLunchTimersIndex

Version 1 (modified by 185022, 2 weeks ago) ( diff )

--

Индекс: v_driver_lunch_timers_index

Датотека indexes/v_driver_lunch_timers_index.sql
Шема kbnteam
Поврзани прегледи v_driver_lunch_timers, v_company_users

Опис

Три индекси за поддршка на прегледот v_driver_lunch_timers. Таргетираат: распоред по ден од неделата, JOIN на возачи по ресторан и JOIN на договори по ресторан и компанија.

DDL

-- indexes/v_driver_lunch_timers_index.sql
CREATE INDEX IF NOT EXISTS idx_lunch_time_weekday_contract_id
ON kbnteam.lunch_time (lunch_weekday, contract_id);

CREATE INDEX IF NOT EXISTS idx_driver_rest_id
ON kbnteam.driver (rest_id);

CREATE INDEX IF NOT EXISTS idx_contract_rest_id_company_id
ON kbnteam.contract (rest_id, company_id);

Поддржани прегледи

Индекс Прегледи Цел
idx_lunch_time_weekday_contract_id v_driver_lunch_timers WHERE lunch_weekday = ?; JOIN lunch_timecontract
idx_driver_rest_id v_driver_lunch_timers, v_driver_deliveries, v_company_users JOIN driver ON drv.rest_id = r.rest_id
idx_contract_rest_id_company_id v_driver_lunch_timers JOIN contract по rest_id (complement на idx_contract_company_id_rest_id)

Колонски план

Индекс Колона 1 Колона 2 Причина
idx_lunch_time_weekday_contract_id lunch_weekday (leading) contract_id Филтрирање по ден; JOIN со contract по contract_id
idx_driver_rest_id rest_id JOIN driver.rest_id = restaurant.rest_id
idx_contract_rest_id_company_id rest_id (leading) company_id JOIN contract по rest_id наместо по company_id

Верификација

SELECT indexname, indexdef
FROM pg_indexes
WHERE schemaname = 'kbnteam'
  AND indexname IN (
      'idx_lunch_time_weekday_contract_id',
      'idx_driver_rest_id',
      'idx_contract_rest_id_company_id'
  );

Напомена — idx_contract_rest_id_company_id наспрема idx_contract_company_id_rest_id

Индекс Leading колона Цел
idx_contract_company_id_rest_id company_id Прашалници и JOIN по компанија → ресторан (дефиниран во v_contracts_revenue_index.sql)
idx_contract_rest_id_company_id rest_id Прашалници и JOIN по ресторан → компанија (овој индекс)

Двата постојат паралелно за да ги поддржат различните насоки на JOIN во различните прегледи.

Note: See TracWiki for help on using the wiki.