Skip to content

Query console & runners

Run ad-hoc SQL, CQL, and MongoDB queries, analyze execution plans — read-only by default, every run audited.

SQL & CQL

For relational engines plus Cassandra (CQL) and Elasticsearch SQL, the console runs statements inside a read-only guard by default; toggle writes on explicitly. Results paginate, sensitive columns are masked unless you hold view:unmasked, and every run lands in the audit log. A per-engine "Samples" dropdown loads read-only starter queries so you can see the expected syntax and get going fast, and an "Export" button downloads the loaded rows to CSV or JSON (masked-safe, with a spreadsheet formula-injection guard).

Analyse with AI

Bring your own AI provider — Anthropic (Claude), OpenAI, Google (Gemini), xAI (Grok), or any OpenAI-compatible endpoint (Custom) — configured by an admin in Settings → AI (API keys are stored AES-256-GCM encrypted and never shown again; available models are auto-discovered from your key). The "Analyse with AI" button — in the console or one click from a long-running query in the Query Monitor — sends the statement and, where supported, its EXPLAIN plan to the model and streams back a plain-language explanation, the performance concerns it identifies, and concrete fixes including suggested CREATE INDEX statements — which are extracted into a one-click Copy / Use (load into the editor) list. A Stop button cancels a long generation. Works across engines, shows the provider/model used, and every analysis is audited. AI output is advisory — verify before applying to production.

Explain & optimize

On PostgreSQL, MySQL/MariaDB, SQL Server, Oracle, and IBM Db2, "Explain" analyzes a statement’s execution plan without running it — the engine plans, nothing executes. You get the plan as an indented cost/row tree plus actionable optimization hints:

  • Sequential/full table scans with a filter and no supporting index → add an index on the filtered column(s).
  • Indexes that exist but weren’t chosen, expensive sorts/hashes that may spill to disk, and large nested-loop joins.
  • A one-line summary with the estimated total cost, so you can rank queries at a glance. Every Explain is audited.
  • NoSQL too: MongoDB’s runner explains via .explain("queryPlanner") — flagging collection scans (COLLSCAN) and non-index-backed sorts — and Elasticsearch SQL translates to the native query DSL (_sql/translate), flagging match_all full scans and scripted/wildcard queries. Both plan only, never executing.

MongoDB runner

MongoDB is NoSQL, so it gets its own runner with two modes:

  • Shell — mongosh-style statements like db.users.find({ active: true }).sort({ createdAt: -1 }).limit(20), plus aggregate, countDocuments, and distinct.
  • Builder — pick a collection and operation (find / aggregate / count / distinct) and fill in JSON filter, projection, sort, and limit.
  • Read-only by default; write operations require turning the guard off. Redis has no query surface and shows a clear notice instead.

Try it yourself

Open the console and put this into practice.

Open the console