Changes between Version 11 and Version 12 of ReportsProcedures
- Timestamp:
- 09/26/25 19:00:26 (3 weeks ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ReportsProcedures
v11 v12 46 46 {{{ 47 47 npm run db:reports 48 49 ги создава датотеките: 50 51 backend/proofs/top_spenders.json 52 53 backend/proofs/class_utilization.json 54 55 backend/proofs/training_pop_monthly.json 48 56 }}} 49 57 {{{ … … 134 142 ---- 135 143 136 == 4) EXPLAIN/ANALYZE ( за индекси) ==137 Г енерираме JSON планови:144 == 4) EXPLAIN/ANALYZE (доказ за индекси) == 145 Ги генерираме плановите: 138 146 {{{ 139 147 npm run db:explain 140 148 }}} 141 **A)** За листање на настани, очекуваме користење на составниот индекс `(date,time)`:142 - Датотека: `backend/proofs/events_explain.json`143 - Конзолата печати „Index Scan / Bitmap“ јазли ако ги има.144 149 145 **B)** За броење на резервации по час, очекуваме `idx_class_date_time` и `idx_ubc_class`: 146 - Датотека: `backend/proofs/class_bookings_explain.json` 150 *Напомена:* Поради мал сет, за демонстрација користевме и „forced“ планови со `enable_seqscan=off`. Фајлови: 151 - `backend/proofs/events_explain_forced.json` 152 - `backend/proofs/class_bookings_explain_forced.json` 147 153 154 === A) Настани по датум/време – составен индекс (date,time) === 155 Фајл: `backend/proofs/events_explain_forced.json` 148 156 149 {{{ 157 Очекуван извадок (Index Scan преку **idx_event_date_time**): 158 {{{json 150 159 { 151 "Plan": { 152 "Node Type": "Index Scan", 153 "Parallel Aware": false, 154 "Async Capable": false, 155 "Scan Direction": "Forward", 156 "Index Name": "idx_event_date_time", 157 ... 160 "Node Type": "Index Scan", 161 "Index Name": "idx_event_date_time", 162 "Relation Name": "Event", 163 "Alias": "Event", 164 "Index Cond": "(date >= CURRENT_DATE)" 158 165 } 159 166 }}} 160 {{{ 167 168 === B) Резервации по час – два индекса === 169 Фајл: `backend/proofs/class_bookings_explain_forced.json` 170 171 1) Индекс врз Class за датум: 172 {{{json 161 173 { 162 "Node Type": "Index Scan", 163 "Parent Relationship": "Outer", 164 "Parallel Aware": false, 165 "Async Capable": false, 166 "Scan Direction": "Forward", 167 "Index Name": "idx_class_date_time", 168 ... 174 "Node Type": "Index Scan", 175 "Index Name": "idx_class_date_time", 176 "Relation Name": "Class", 177 "Alias": "c", 178 "Index Cond": "(date >= CURRENT_DATE)" 169 179 } 170 180 }}} 181 182 2) Индекс врз User_Booked_Class за поврзување по class_id: 183 {{{json 184 { 185 "Node Type": "Index Scan", 186 "Index Name": "idx_ubc_class", 187 "Relation Name": "User_Booked_Class", 188 "Alias": "ubc", 189 "Index Cond": "(class_id = c.class_id)" 190 } 191 }}}