wiki:CompanyBillingOverviewIndex

Version 5 (modified by 223235, 11 days ago) ( diff )

--

Индекси: v_company_billing_overview_index

Својство Вредност
Шема kbnteam
Област Фактурирање
Главен преглед v_company_billing_overview

Опис

Индексите го поддржуваат пристапот до податоците за фактурирање. Се поставуваат врз изворните табели и можат да се користат од повеќе прегледи.

invoice(comp_order_id) има уникатен индекс. За пребарувањето и агрегациите се користат заедничките индекси за нарачки и договори; не е потребен посебен индекс само на contract(company_id).

DDL

Овој преглед ги користи основните и заедничките индекси наведени подолу. Нема посебна дополнителна дефиниција на индекс само за него.

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

Индекс Прегледи Намена
idx_company_order_company_id v_orders_full, v_driver_deliveries, v_reviews_full, v_contracts_revenue, v_company_billing_overview Пронаоѓање компаниски нарачки по компанија.
idx_customer_order_comp_order_id v_orders_full, v_driver_deliveries, v_reviews_full, v_contracts_revenue, v_company_billing_overview Пронаоѓање клиентски нарачки по компаниска нарачка.
idx_contract_company_id_rest_id v_contracts_revenue, v_company_billing_overview, v_driver_lunch_timers Пребарување договори по компанија и ресторан и групирање по компанија.

Заеднички индекси

Индекс Поврзана документација
idx_company_order_company_id Индекси за нарачки и достави
idx_customer_order_comp_order_id Индекси за нарачки и достави
idx_contract_company_id_rest_id Индекси за договори и приходи

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

Индекс Табела Прва колона Следни колони Намена
idx_company_order_company_id company_order company_id — Пронаоѓање компаниски нарачки по компанија.
idx_customer_order_comp_order_id customer_order comp_order_id — Пронаоѓање клиентски нарачки по компаниска нарачка.
idx_contract_company_id_rest_id contract company_id rest_id Пребарување договори по компанија и ресторан и групирање по компанија.

Првата колона го определува вообичаениот почеток на пребарувањето со составен индекс. Присуството на други колони не значи дека индексот ги содржи сите податоци потребни за прегледот.

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

SELECT tablename, indexname, indexdef
FROM pg_indexes
WHERE schemaname = 'kbnteam'
  AND indexname IN (
    'idx_company_order_company_id',
    'idx_customer_order_comp_order_id',
    'idx_contract_company_id_rest_id'
)
ORDER BY tablename, indexname;

Проверката ги прикажува имињата и дефинициите. IF NOT EXISTS спречува повторно креирање под исто име, но не проверува дали постојната дефиниција е еднаква на наведената.

Влијание врз перформансите

Изборот меѓу секвенцијално читање, индексно читање и други планови зависи од обемот на податоците, селективноста на филтрите и статистиките. Индексите не гарантираат забрзување или отстранување на сортирањата и спојувањата. Плановите и времињата се утврдуваат со мерење.

Договорите се бројат одделно, додека бројот и износот на клиентските нарачки се пресметуваат во главниот преглед. Индексите не ги складираат пресметаните износи.

Тестирање на перформанси

Резултатите се однесуваат на v_company_billing_overview и неговата главна табела invoice.

SELECT

Времето на извршување на SELECT прашалникот е прифатливо за редовното користење на погледот. Постоечката индексна поддршка е доволна за тестираните прашалници.

INSERT и UPDATE

Тестирани се по еден INSERT и еден UPDATE врз kbnteam.invoice, главната табела на погледот. Се тестира додавање фактура и промена на поврзаната компаниска нарачка.

Операција Execute (ms) Fetch (ms) Вратени редови
INSERT 14 13 1
UPDATE 16 14 1

Execute е времето на извршување прикажано во DBeaver. Fetch вредностите се преземени од дополнетата евиденција на тестирањето. Ова се клиентски времиња, изразени во милисекунди.

Двете операции се успешни и враќаат по еден ред преку RETURNING. По мерењето промените се вратени со ROLLBACK.

INSERT и UPDATE се извршуваат со прифатлива брзина. Овие мерења ја опишуваат тестираната состојба на базата и не се споредба пред и по индексирање.

Резултатите се за целите прашалници, а не за одделниот придонес на секој индекс.

Note: See TracWiki for help on using the wiki.