analyze_vacuum_requirements
Analyze PostgreSQL database vacuum requirements to detect bloat and generate maintenance recommendations for optimal performance.
Instructions
Comprehensive vacuum analysis with maintenance recommendations and bloat detection
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- Core handler implementing the vacuum analysis logic: gathers summary statistics, analyzes table bloat, autovacuum configuration, vacuum performance, generates maintenance and configuration recommendations, identifies critical issues, and formats the results as text.async def analyze_vacuum_requirements(self) -> str: """Perform comprehensive vacuum analysis and return structured results.""" try: logger.info("Starting comprehensive vacuum analysis...") analysis_results = { "summary": {}, "bloat_analysis": {}, "autovacuum_analysis": {}, "vacuum_performance": {}, "maintenance_recommendations": [], "critical_issues": [], "configuration_recommendations": [], } # Get basic statistics await self._get_vacuum_summary(analysis_results) # Analyze table bloat await self._analyze_table_bloat(analysis_results) # Analyze autovacuum configuration await self._analyze_autovacuum_config(analysis_results) # Analyze vacuum performance await self._analyze_vacuum_performance(analysis_results) # Generate maintenance recommendations await self._generate_maintenance_recommendations(analysis_results) # Check for critical issues await self._identify_critical_issues(analysis_results) # Generate configuration recommendations await self._generate_configuration_recommendations(analysis_results) logger.info("Vacuum analysis completed successfully") return self._format_as_text(analysis_results) except Exception as e: logger.error(f"Error in vacuum analysis: {e}") error_result = { "error": f"Vacuum analysis failed: {e!s}", "summary": {}, "bloat_analysis": {}, "autovacuum_analysis": {}, "vacuum_performance": {}, "maintenance_recommendations": [], "critical_issues": [], "configuration_recommendations": [], } return self._format_as_text(error_result)
- src/postgres_mcp_pro_plus/server.py:729-744 (registration)MCP tool registration and top-level handler for 'analyze_vacuum_requirements'. Instantiates VacuumAnalysisTool and delegates to its analyze_vacuum_requirements method, handling errors and formatting the response.@mcp.tool(description="Comprehensive vacuum analysis with maintenance recommendations and bloat detection") async def analyze_vacuum_requirements() -> ResponseType: """Analyze database vacuum requirements with comprehensive recommendations for maintenance.""" try: sql_driver = await get_sql_driver() vacuum_tool = VacuumAnalysisTool(sql_driver) # Perform comprehensive vacuum analysis result = await vacuum_tool.analyze_vacuum_requirements() return format_text_response(result) except Exception as e: logger.error(f"Error analyzing vacuum requirements: {e}") return format_error_response(str(e))