Changes between Version 11 and Version 12 of ReportsProcedures


Ignore:
Timestamp:
09/26/25 19:00:26 (3 weeks ago)
Author:
223075
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ReportsProcedures

    v11 v12  
    4646{{{
    4747npm run db:reports
     48
     49ги создава датотеките:
     50
     51backend/proofs/top_spenders.json
     52
     53backend/proofs/class_utilization.json
     54
     55backend/proofs/training_pop_monthly.json
    4856}}}
    4957{{{
     
    134142----
    135143
    136 == 4) EXPLAIN/ANALYZE (за индекси) ==
    137 Генерираме JSON планови:
     144== 4) EXPLAIN/ANALYZE (доказ за индекси) ==
     145Ги генерираме плановите:
    138146{{{
    139147npm run db:explain
    140148}}}
    141 **A)** За листање на настани, очекуваме користење на составниот индекс `(date,time)`:
    142 - Датотека: `backend/proofs/events_explain.json`
    143 - Конзолата печати „Index Scan / Bitmap“ јазли ако ги има.
    144149
    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`
    147153
     154=== A) Настани по датум/време – составен индекс (date,time) ===
     155Фајл: `backend/proofs/events_explain_forced.json`
    148156
    149 {{{
     157Очекуван извадок (Index Scan преку **idx_event_date_time**):
     158{{{json
    150159{
    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)"
    158165}
    159166}}}
    160 {{{
     167
     168=== B) Резервации по час – два индекса ===
     169Фајл: `backend/proofs/class_bookings_explain_forced.json`
     170
     1711) Индекс врз Class за датум:
     172{{{json
    161173{
    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)"
    169179}
    170180}}}
     181
     1822) Индекс врз 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}}}