# Volume Discovery Report — Work Orders **Fase:** 0 — Gate Fase 1 **Data:** 2026-06-24 **Ambiente:** Local dev (Docker) + queries para staging/prod --- ## 1. Objetivo Definir tier S/M/L/XL antes de índices e estratégia de search (Fase 4). **Sem premissa de volume.** --- ## 2. Queries obrigatórias Executar em staging ou produção read-only: ```sql -- Total WOs SELECT COUNT(*) AS TotalWorkOrders FROM workOrders WHERE IsDeleted IS NULL OR IsDeleted = 0; -- WOs por semana (ISO) — p95 WITH WeeklyCounts AS ( SELECT DATEPART(iso_week, ScheduledDate) AS IsoWeek, YEAR(ScheduledDate) AS IsoYear, COUNT(*) AS Cnt FROM workOrders WHERE ScheduledDate IS NOT NULL AND (IsDeleted IS NULL OR IsDeleted = 0) GROUP BY DATEPART(iso_week, ScheduledDate), YEAR(ScheduledDate) ) SELECT MAX(Cnt) AS P95ProxyMaxPerWeek, AVG(Cnt * 1.0) AS AvgPerWeek FROM WeeklyCounts; -- Unscheduled (não terminal) SELECT COUNT(*) AS UnscheduledCount FROM workOrders WHERE ScheduledDate IS NULL AND (IsDeleted IS NULL OR IsDeleted = 0) AND Status NOT IN ('Completed', 'Complete', 'Cancelled', 'Canceled'); -- Crescimento mensal SELECT YEAR(CreatedDate) AS Y, MONTH(CreatedDate) AS M, COUNT(*) AS Cnt FROM workOrders WHERE CreatedDate IS NOT NULL GROUP BY YEAR(CreatedDate), MONTH(CreatedDate) ORDER BY Y DESC, M DESC; ``` --- ## 3. Resultados | Métrica | Local Docker (dev) | Staging | Produção | |---------|-------------------|---------|----------| | Total WOs | *executar após seed* | _pendente acesso_ | _pendente acesso_ | | WOs/semana p95 | — | _pendente_ | _pendente_ | | Unscheduled | — | _pendente_ | _pendente_ | | Crescimento mensal | — | _pendente_ | _pendente_ | **Nota:** Ambiente local inicia vazio. Tier provisório para desenvolvimento: **S** (< 25k). Confirmar com query em staging antes do GO Fase 1. --- ## 4. Classificação tier (§10.2 roadmap) | Tier | Total WOs | Listagem semanal | Advanced search | |------|-----------|------------------|-----------------| | **S** | < 25k | Índices simples | SQL filtros compostos | | **M** | 25k–250k | Índices covering | Paginação obrigatória | | **L** | 250k–1M | Read model candidato | Full-text | | **XL** | > 1M | Materialized view | Search dedicado (ARB) | **Tier definido para Fase 1:** **S (provisório dev)** — revisar ao obter métricas staging. --- ## 5. Impacto Fase 0–1 - Fases 1–3: índices conservadores compatíveis com qualquer tier. - Fase 4: implementação search conforme tier confirmado + load test. --- ## 6. Script local ```powershell ./scripts/setup-local-db.ps1 # Executar queries acima via sqlcmd ou DBCode contra localhost:1433 ``` **Gate:** Preencher coluna Staging/Produção antes do GO Fase 1.