Files
foxhunt/scripts/verify_db_optimization.sh
jgrusewski 8d89fe80ff chore: Second cleanup wave - organize root directory
- Archive: 85 agent .txt files → docs/archive/agents/legacy_txt/
- Scripts: Move 110 shell scripts → scripts/ (keep deploy.sh in root)
- Models: Move 18 .safetensors → ml/models/checkpoints/training_artifacts/
- Delete: 34 directories (~33GB freed) - target/, coverage_*, test artifacts
- Build: Clean 14 build artifacts (.rlib, .o, .pid, binaries)
- Tests: Move 14 .rs files → tests/standalone/
- SQL: Move 5 files → sql/ (keep init-db*.sql for Docker)
- Wave 153: Archive to docs/archive/historical/wave153/
- Docs: Archive 9 markdown files to wave_d/reports/ and historical/

Total impact: ~34GB freed (both waves), root directory cleaned from 583 to ~40 essential files
Directory count reduced from 65 to 31 (52% reduction)
All historical data preserved in organized archive structure
2025-10-30 01:26:02 +01:00

73 lines
3.2 KiB
Bash
Executable File

#!/bin/bash
# Database Query Optimization Verification Script
# Agent 135 - 2025-10-14
DB_URL="postgresql://foxhunt:foxhunt_dev_password@localhost:5432/foxhunt"
echo "========================================"
echo "DATABASE OPTIMIZATION VERIFICATION"
echo "========================================"
echo ""
# Test 1: Check migration applied
echo "Test 1: Migration 025 Objects Created"
echo "--------------------------------------"
echo -n "Function check_model_activity_health: "
psql "$DB_URL" -tAc "SELECT COUNT(*) FROM pg_proc WHERE proname = 'check_model_activity_health';"
echo -n "Function get_ensemble_performance_summary: "
psql "$DB_URL" -tAc "SELECT COUNT(*) FROM pg_proc WHERE proname = 'get_ensemble_performance_summary';"
echo -n "Materialized view model_activity_realtime: "
psql "$DB_URL" -tAc "SELECT COUNT(*) FROM pg_matviews WHERE matviewname = 'model_activity_realtime';"
echo -n "Materialized view paper_trading_execution_summary: "
psql "$DB_URL" -tAc "SELECT COUNT(*) FROM pg_matviews WHERE matviewname = 'paper_trading_execution_summary';"
echo -n "Indexes with 'active' pattern: "
psql "$DB_URL" -tAc "SELECT COUNT(*) FROM pg_indexes WHERE indexname LIKE '%active%';"
echo ""
# Test 2: Query performance comparison
echo "Test 2: Query Performance Benchmark"
echo "------------------------------------"
echo -n "Raw table aggregation (ms): "
psql "$DB_URL" -tAc "EXPLAIN ANALYZE SELECT AVG(ensemble_confidence), AVG(disagreement_rate) FROM ensemble_predictions WHERE timestamp > NOW() - INTERVAL '1 day';" 2>&1 | grep "Execution Time" | awk '{print $3}'
echo -n "Continuous aggregate (ms): "
psql "$DB_URL" -tAc "EXPLAIN ANALYZE SELECT AVG(avg_confidence), AVG(avg_disagreement) FROM ensemble_performance_5min WHERE bucket > NOW() - INTERVAL '1 day';" 2>&1 | grep "Execution Time" | awk '{print $3}'
echo ""
# Test 3: Model activity health check
echo "Test 3: Model Activity Diagnostics"
echo "-----------------------------------"
psql "$DB_URL" -c "SELECT model_name, is_active, predictions_in_window, activity_rate_pct FROM check_model_activity_health(60);"
echo ""
# Test 4: Paper trading execution summary
echo "Test 4: Paper Trading Execution Rate"
echo "-------------------------------------"
psql "$DB_URL" -c "SELECT COUNT(*) as bucket_count, SUM(total_predictions) as total_preds, SUM(executed_orders) as total_orders, ROUND(100.0 * SUM(executed_orders) / NULLIF(SUM(total_predictions), 0), 2) as execution_rate_pct FROM paper_trading_execution_summary WHERE bucket > NOW() - INTERVAL '1 hour';"
echo ""
# Test 5: Index usage
echo "Test 5: New Index Verification"
echo "-------------------------------"
psql "$DB_URL" -c "SELECT indexname FROM pg_indexes WHERE tablename = 'ensemble_predictions' AND indexname LIKE 'idx_ensemble_predictions_%active%' ORDER BY indexname;"
echo ""
echo "========================================"
echo "VERIFICATION COMPLETE"
echo "========================================"
echo ""
echo "Expected Results:"
echo "- All object counts should be > 0"
echo "- Continuous aggregate should be <0.2ms (10x+ faster)"
echo "- All models should show 'false' for is_active (confirms NULL votes issue)"
echo "- Execution rate should be 0% (confirms Agent 123's finding)"
echo "- 4 model-specific indexes should be created"