| Version 7 (modified by , 11 days ago) ( diff ) |
|---|
Преглед: v_menu_drink
| Својство | Вредност |
|---|---|
| Шема | kbnteam
|
| Категорија | Мени и каталог |
| Поврзани индекси | Примарни и уникатни клучеви |
Опис
Ги прикажува пијалоците, нивната количина и цена, како и ресторанот.
Едноставно спојување на drink и restaurant, без агрегации.
Еден ред за секој пијалак. Менито не се ограничува според активноста на договорите.
Зависности
| Табела / преглед | Употреба |
|---|---|
kbnteam.drink | Пијалоци, количини, цени и ресторан. |
kbnteam.restaurant | Податоци за рестораните. |
Излезни колони
| Колона | Извор / пресметка | Опис |
|---|---|---|
drink_id | drink.drink_id | Идентификатор на пијалакот. |
drink_name | drink.drink_name | Назив на пијалакот. |
drink_milliliters | drink.drink_milliliters | Количина во милилитри. |
drink_price | drink.drink_price | Цена на пијалакот. |
rest_id | restaurant.rest_id | Идентификатор на ресторанот. |
rest_name | restaurant.rest_name | Назив на ресторанот. |
SQL дефиниција
CREATE OR REPLACE VIEW kbnteam.v_menu_drink AS
SELECT
d.drink_id,
d.drink_name,
d.drink_milliliters,
d.drink_price,
r.rest_id,
r.rest_name
FROM kbnteam.drink d
JOIN kbnteam.restaurant r ON r.rest_id = d.rest_id;
Индексна поддршка
drink(rest_id, drink_name) е покриен со уникатното ограничување uq_drink_restaurant_name, а restaurant(rest_id) со примарен клуч. За овој преглед нема дополнителен индекс.
Нема дополнителна CREATE INDEX наредба за овој преглед. Тековната дефиниција се потпира на основните индекси. Евиденцијата не го потврдува точниот сет индекси во двете измерени состојби.
Проверка на индексите
SELECT tablename, indexname, indexdef
FROM pg_indexes
WHERE schemaname = 'kbnteam'
AND tablename IN ('drink', 'restaurant')
ORDER BY tablename, indexname;
Тестирање на перформанси
SELECT
Времето на извршување на SELECT прашалникот е прифатливо за редовното користење на погледот. Постоечката индексна поддршка е доволна за тестираните прашалници.
INSERT и UPDATE
Тестирани се по еден INSERT и еден UPDATE врз kbnteam.drink, главната табела на погледот. Се тестира додавање пијалок и промена на неговата цена.
| Операција | Execute (ms) | Fetch (ms) | Вратени редови |
|---|---|---|---|
| INSERT | 17 | 17 | 1 |
| UPDATE | 16 | 17 | 1 |
Execute е времето на извршување прикажано во DBeaver. Fetch вредностите се преземени од дополнетата евиденција на тестирањето. Ова се клиентски времиња, изразени во милисекунди.
Двете операции се успешни и враќаат по еден ред преку RETURNING. По мерењето промените се вратени со ROLLBACK.
INSERT и UPDATE се извршуваат со прифатлива брзина. Овие мерења ја опишуваат тестираната состојба на базата и не се споредба пред и по индексирање.
