====== SQL Algorithms Checklist ====== **Version:** 2.1\\ **Scope:** Stored Procedures, Views, Migrations und Query Logic über MS SQL / MySQL / SQLite. ===== MUST ===== * [ ] **Parameterization**: keine String-Konkatenation für SQL Commands; strict Typing * [ ] **Schema Assumptions** sind dokumentiert (Collation, Case Sensitivity, Null Semantics) * [ ] **Transactions** sind explizit wenn benötigt; Isolation Level ist begründet * [ ] **Idempotence**: Migrations und Setup Scripts können safe laufen (oder non-idempotence klar angeben) * [ ] **Concurrency**: Locking Behavior ist berücksichtigt (Deadlocks, Long Locks, Escalation) * [ ] **Index Strategy** ist validiert; Änderungen haben Rationale und Impact Notes * [ ] **Query Plans** sind für kritische Paths reviewed (MS SQL: Actual Plan; MySQL: EXPLAIN; SQLite: Query Plan) * [ ] **Pagination** verwendet deterministic Ordering (kein "OFFSET ohne ORDER BY") * [ ] **Date/Time** Semantics sind explizit (UTC vs Local; Time Zone Conversions) * [ ] **Error Handling** mappt DB Errors zu safe Application Errors (kein Schema Leakage) ===== SHOULD ===== * [ ] RBAR/Cursors vermeiden wo set-based Solutions verfügbar sind (außer begründet) * [ ] Bounded Result Sets verwenden; "SELECT *" in public Interfaces vermeiden * [ ] Test Datasets und Regression Queries für Edge Cases bereitstellen ===== NICE ===== * [ ] Engine-spezifische Differences dokumentieren (z.B. LIMIT/OFFSET, RETURNING Support, JSON Functions) * [ ] Performance Baselines für High-Volume Tables bereitstellen ---- //Version: 2.1 (Split)//\\ //Autor: Wolfgang van der Stille// Zurück zu [[.:start|Stack Checklists]] | [[..:start|Review Checklists]] ~~DISCUSSION:off~~