From c6f8ee1df0ac64088de74728dbf9457a86da9ed7 Mon Sep 17 00:00:00 2001 From: michaelj Date: Sat, 7 Mar 2026 09:51:07 +0000 Subject: [PATCH] feat(perf): replace sqlalchmey.inspect with direct probe Profiling shows using sqlalchemy.inspect to probe table existence is 3x more expensive (750ms locally) than a direct SQL probe (250ms). --- orchestrator/metastore/sqlstore.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/orchestrator/metastore/sqlstore.py b/orchestrator/metastore/sqlstore.py index a2b6de28..3f5fc801 100644 --- a/orchestrator/metastore/sqlstore.py +++ b/orchestrator/metastore/sqlstore.py @@ -66,10 +66,20 @@ def __new__(cls, project_context: ProjectContext) -> "SQLResourceStore": f"Using cached table existence check result: tables_exist={tables_exist}" ) else: - # Network query: check if tables exist + # Use a direct SQL query rather than sqlalchemy.inspect() to avoid + # the Inspector's internal connection overhead. log.debug("Checking if 'resources' table exists (network query)...") - inspector = sqlalchemy.inspect(engine) - tables_exist = inspector.has_table("resources") + if project_context.metadataStore.scheme == "sqlite": + existence_query = sqlalchemy.text( + "SELECT 1 FROM sqlite_master WHERE type='table' AND name='resources'" + ) + else: + existence_query = sqlalchemy.text( + "SELECT 1 FROM information_schema.tables" + " WHERE table_schema = DATABASE() AND table_name = 'resources' LIMIT 1" + ) + with engine.connect() as conn: + tables_exist = conn.execute(existence_query).fetchone() is not None log.debug(f"Table existence check complete: tables_exist={tables_exist}") # Cache the result _tables_exist_cache[cache_key] = tables_exist