| 26 | | ||= Преглед ||= Индекс ||= Начин на употреба || |
| 27 | | || `v_menu_meal` || `idx_meal_cat_id_meal_id` || WHERE cat_id = ? и JOIN со category || |
| 28 | | || `v_menu_meal` || `idx_meal_ingredient_meal_id_ingr_id` || CTE `meal_ingredients` — JOIN meal_ingredient по meal_id || |
| 29 | | || `v_menu_meal` || `idx_alergen_ingredient_ingr_id_alergen_id` || CTE `meal_allergens` — JOIN alergen_ingredient по ingr_id || |
| 30 | | || `v_customer_contract_meals` || Сите три || Истите CTE шаблони || |
| 31 | | || `v_customer_contract_menu` || Сите три || Посредно преку `v_customer_contract_meals` || |
| | 29 | |
| | 30 | ||= Индекс ||= Прегледи ||= Намена || |
| | 31 | || `idx_meal_cat_id_meal_id` || [wiki:MenuMealView v_menu_meal] || Пребарување јадења по категорија. || |
| | 32 | || `idx_meal_ingredient_meal_id_ingr_id` || [wiki:MenuMealView v_menu_meal] || Пристап до состојките на јадењето и групирање по meal_id. || |
| | 33 | || `idx_alergen_ingredient_ingr_id_alergen_id` || [wiki:MenuMealView v_menu_meal] || Пристап до алергените поврзани со состојката. || |
| 34 | | ||= Индекс ||= Табела ||= Колона 1 ||= Колона 2 ||= Причина || |
| 35 | | || `idx_meal_cat_id_meal_id` || `meal` || `cat_id` (leading) || `meal_id` (covering) || Го поддржува JOIN по категорија и WHERE cat_id филтер || |
| 36 | | || `idx_meal_ingredient_meal_id_ingr_id` || `meal_ingredient` || `meal_id` (leading) || `ingr_id` (covering) || CTE `meal_ingredients`: GROUP BY meal_id, JOIN ingredient по ingr_id || |
| 37 | | || `idx_alergen_ingredient_ingr_id_alergen_id` || `alergen_ingredient` || `ingr_id` (leading) || `alergen_id` (covering) || CTE `meal_allergens`: JOIN alergen_ingredient по ingr_id || |
| | 36 | |
| | 37 | ||= Индекс ||= Табела ||= Прва колона ||= Следни колони ||= Намена || |
| | 38 | || `idx_meal_cat_id_meal_id` || `meal` || `cat_id` || `meal_id` || Пребарување јадења по категорија. || |
| | 39 | || `idx_meal_ingredient_meal_id_ingr_id` || `meal_ingredient` || `meal_id` || `ingr_id` || Пристап до состојките на јадењето и групирање по meal_id. || |
| | 40 | || `idx_alergen_ingredient_ingr_id_alergen_id` || `alergen_ingredient` || `ingr_id` || `alergen_id` || Пристап до алергените поврзани со состојката. || |
| | 41 | |
| | 42 | Првата колона го определува вообичаениот почеток на пребарувањето со составен индекс. Присуството на други колони не значи дека индексот ги содржи сите податоци потребни за прегледот. |
| 46 | | 'idx_meal_cat_id_meal_id', |
| 47 | | 'idx_meal_ingredient_meal_id_ingr_id', |
| 48 | | 'idx_alergen_ingredient_ingr_id_alergen_id' |
| 49 | | ); |
| | 52 | 'idx_meal_cat_id_meal_id', |
| | 53 | 'idx_meal_ingredient_meal_id_ingr_id', |
| | 54 | 'idx_alergen_ingredient_ingr_id_alergen_id' |
| | 55 | ) |
| | 56 | ORDER BY tablename, indexname; |
| 52 | | == Очекувано влијание == |
| 53 | | Трите индекси заедно ги намалуваат Hash Join/Sort операциите во CTE агрегациите. Поголемо подобрување е видливо кога постојат многу оброци и богати листи на состојки и алергени. |
| | 59 | Проверката ги прикажува имињата и дефинициите. IF NOT EXISTS спречува повторно креирање под исто име, но не проверува дали постојната дефиниција е еднаква на наведената. |
| | 60 | |
| | 61 | == Влијание врз перформансите == |
| | 62 | |
| | 63 | Изборот меѓу секвенцијално читање, индексно читање и други планови зависи од обемот на податоците, селективноста на филтрите и статистиките. Индексите не гарантираат забрзување или отстранување на сортирањата и спојувањата. Плановите и времињата се утврдуваат со мерење. |
| | 64 | |
| | 65 | == Тестирање на перформанси == |
| | 66 | |
| | 67 | Тест прашалниците за овој преглед се наведени во [wiki:MenuMealView v_menu_meal]. |
| | 68 | |
| | 69 | === Резултати пред индексирање === |
| | 70 | |
| | 71 | ||= Прашалник ||= Execution Time (ms) ||= План / забелешки || |
| | 72 | || Тест 1: по категорија || ___ || ___ || |
| | 73 | || Тест 2: по ресторан || ___ || ___ || |
| | 74 | |
| | 75 | === Резултати по индексирање === |
| | 76 | |
| | 77 | ||= Прашалник ||= Execution Time (ms) ||= План / забелешки || |
| | 78 | || Тест 1: по категорија || ___ || ___ || |
| | 79 | || Тест 2: по ресторан || ___ || ___ || |