- 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
73 lines
3.2 KiB
Bash
Executable File
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"
|