Performance: Datenbank-Indexes für Ticket-Tabelle anlegen #75

Open
opened 2026-03-30 20:19:30 +00:00 by David · 0 comments
Collaborator

Beschreibung

Die Ticket-Tabelle hat keine Indexes auf häufig abgefragten Spalten (status, classification, created_at, odoo_id). Bei wachsender Ticketanzahl (>1000) werden Dashboard-Queries und Pipeline-Lookups langsam.

Hintergrund

Jede Dashboard-Ladung führt mehrere Filter-Queries aus (nach Status, Classification, Datum). Ohne Indexes wird ein Full Table Scan durchgeführt.

Akzeptanzkriterien

  • Index auf tickets.status
  • Index auf tickets.classification
  • Index auf tickets.created_at
  • Index auf tickets.odoo_id
  • Composite Index auf (status, classification) für Dashboard-Filter
  • Alembic-Migration erstellt
  • Test: EXPLAIN zeigt Index-Nutzung bei typischen Queries

Technische Hinweise

  • Betroffene Dateien: backend/models/ticket.py, neue Alembic-Migration
  • Ansatz: Index('ix_ticket_status', 'status') im Model oder via Migration
  • Migration nötig: ja

Aufwand: S

## Beschreibung Die Ticket-Tabelle hat keine Indexes auf häufig abgefragten Spalten (`status`, `classification`, `created_at`, `odoo_id`). Bei wachsender Ticketanzahl (>1000) werden Dashboard-Queries und Pipeline-Lookups langsam. ## Hintergrund Jede Dashboard-Ladung führt mehrere Filter-Queries aus (nach Status, Classification, Datum). Ohne Indexes wird ein Full Table Scan durchgeführt. ## Akzeptanzkriterien - [ ] Index auf `tickets.status` - [ ] Index auf `tickets.classification` - [ ] Index auf `tickets.created_at` - [ ] Index auf `tickets.odoo_id` - [ ] Composite Index auf `(status, classification)` für Dashboard-Filter - [ ] Alembic-Migration erstellt - [ ] Test: EXPLAIN zeigt Index-Nutzung bei typischen Queries ## Technische Hinweise - Betroffene Dateien: `backend/models/ticket.py`, neue Alembic-Migration - Ansatz: `Index('ix_ticket_status', 'status')` im Model oder via Migration - Migration nötig: ja ## Aufwand: S
Sign in to join this conversation.
No description provided.