The Platform

One causal entity graph. Four AI engines. Built for enterprise engineering teams who need answers, not dashboards.

⬡ Platform overview → ◯ Four engines → ▶ How it works → → Start free trial →

What we solve

Applicare enables teams to observe, automate, and resolve incidents faster across every stack.

★ Customer stories → → Try it free → ◯ Platform overview →
Learn
Blog
Engineering insights & deep dives
Webinars
Live sessions & on-demand recordings
Case Studies
Proven results across industries
White Papers
Research, architecture guides & reports
Customer Stories
Real teams, real outcomes
Product News
What’s new in Applicare
Adopt & Grow
Applicare University
Free courses for Applicare engineers
Learning Center
Every video lesson, searchable in one place
Documentation
Guides, APIs & integration docs
About Arcturus
Our mission, story & team
Partners
SI, MSP & technology partners
Community
Slack, GitHub & developer forum
Support
Helpdesk & customer portal
Downloads
Ops Vault
Datasheets, runbooks & toolkits
Featured Case Studies
AeroMexico
Digital ticketing · MTTR 4.5h → 11min
Leading Private Bank
MTTR 3.2h → 18min · first month
Mediclinic
Audit prep 11 weeks → 18 days
NTT DATA
80% on-call page reduction
Danube Group
94% SLO compliance
ONP
0 violations at last audit
Seygen
78% downtime reduction · GxP compliance
Insurance Tech Platform
67% P1 reduction · $2.4M saved
IIS & Server Availability
100% SLA report accuracy
Health Check Offering
4.2x ROI · 48hr delivery
Bank of Muscat
99.95% core banking uptime
Aster Hospitals
Deeper IIS application visibility
By Industry
Financial Services
Airlines & Transport
Healthcare
Government
Retail & E-Commerce
Home
ArcIn AI
Login Book a Demo
White Paper · Database Observability

Database Observability
at Enterprise Scale.

N+1 queries, connection pool exhaustion, replication lag, and cost — a field guide to the database failure modes that page engineers, and how each one is traced back to the exact query, service, and code path.

<30s
Query-to-root-cause timeProduct capability
100%
Query plans captured, no DB-side agentsProduct capability
65%
DB-related incident reductionIllustrative example

1. The Database Is Rarely the Root Cause — It's the Messenger

When an application slows down, the database is usually the first thing that gets blamed, and the last thing that's actually at fault on its own. A database doing exactly what it was asked to do — just being asked to do it 47 times when once would have sufficed, or being asked by a connection pool that's already at its limit — looks identical, from the database's point of view, to a database with a real performance problem. The signal that distinguishes the two is entirely on the application side: which service issued the query, through which code path, and why.

This paper walks through the database failure modes that most often page an engineer — N+1 query patterns, connection pool exhaustion, and replication lag — and the application-side context needed to actually resolve each one, not just observe that it happened.

2. Failure Mode One: The N+1 Query

An N+1 pattern happens when code that should issue one query with a join instead issues one query to fetch a list, then loops and issues one additional query per item in that list — N+1 queries where one or a handful would do. It's one of the most common sources of database load in ORM-backed applications, and one of the hardest to see from the database side alone: each individual query looks fast and unremarkable. What's wrong is the volume, and volume is invisible without knowing which application code path is generating it.

Query performance intelligence surfaces exactly that: N+1 patterns, missing indexes, and lock contention, each tied to the specific ORM method that issued the query — not just the SQL text.

3. A Walkthrough: 47 SELECTs/Request in checkout-svc

The following is a representative walkthrough of how an N+1 pattern surfaces end to end, in the order an engineer would actually see it:

1
Slow query detected
A 1.8s SELECT is flagged on the orders table — above baseline for this endpoint.
orders-db
2
Database identified
The query is traced to the specific table, index path, and wait event driving the latency.
Query plan captured
3
Application service linked
The query is mapped back to the exact service that issued it — no manual correlation.
checkout-svc
4
Code path pinpointed
The class and method responsible are surfaced, down to the ORM call site.
OrderRepository
5
Root cause and fix
ArcIn explains the likely cause in plain English and recommends a specific, reviewable fix.
ArcIn-assisted
Applicare — Database Monitoring
🧠 ArcIn: N+1 in checkout-svc: OrderRepository executing 47 SELECTs/request. Fix: eager load on order_items. Expected ↓340ms p99.
Illustrative example — not a measured customer outcome

The 340ms p99 improvement figure and the 47-SELECTs count above illustrate how Applicare presents an N+1 pattern end to end. They are a representative scenario used to walk through the product's diagnostic flow, not a measured result from a specific customer deployment.

4. Failure Mode Two: Connection Pool Exhaustion

A connection pool nearing its limit is a slower-motion failure than an N+1 spike, but a more dangerous one — once a pool is exhausted, every subsequent request that needs a connection fails, regardless of whether the database itself is healthy. The useful signal isn't the pool hitting its limit; it's the saturation trend beforehand, and specifically which service is holding or leaking connections rather than releasing them.

SignalWhat it tells you
Pool utilization trendWhether the pool is approaching saturation, not just whether it already has
Per-service connection attributionWhich service is holding connections longer than expected, or leaking them
Time-to-exhaustion estimateHow much runway remains before requests start failing outright

Caught at the saturation-trend stage, a pool exhaustion incident is a configuration or code review; caught after exhaustion, it's an outage. The difference is entirely a function of how early the trend is visible.

5. Failure Mode Three: Replication Lag and HA Health

Primary/replica lag is invisible to most application-level monitoring until a user reports stale data — a write that should be immediately readable isn't, because the read hit a replica that hasn't caught up yet. Correlating replication lag and failover events directly with application read performance turns that into a signal that's visible before a user notices, tied to which read paths are actually affected rather than a database-level metric with no application context.

6. Beyond Failure: The Cost Dimension

Not every database problem is an incident. Unused indexes and over-provisioned instances don't page anyone, but they're a recurring cost, and they're easy to miss without visibility into actual 30-day usage patterns rather than provisioned capacity. Cost optimization here means rightsizing backed by actual workload data — the same query and connection telemetry used for incident response, applied to a slower-moving question.

7. What "No DB-Side Agents" Actually Means

Query plans are captured without installing an agent on the database host itself — a meaningful operational distinction for teams running managed database services (RDS, Aurora, Cloud SQL) where installing host-level software isn't an option, or for DBA teams wary of anything with write access to production database configuration. Query performance intelligence is gathered from the application and query-plan layer, not by instrumenting the database engine directly.

This matters most on managed cloud databases, where there's no host to put an agent on in the first place — and it means the database team doesn't have to approve a new piece of software running inside their database to get this visibility.

8. Coverage Across Engines

The same diagnostic model — query plan capture, application-side attribution, connection and replication health — applies across the database engines a typical enterprise stack actually runs, not just one:

  • MySQL & PostgreSQL: query plans, slow query log, replication health, InnoDB buffer pool.
  • Oracle & SQL Server: wait event analysis, execution plan regression, tablespace and license utilization.
  • MongoDB & NoSQL: collection scan detection, index utilization, oplog lag, shard balance.
  • Redis & Memcached: hit rate, eviction, memory fragmentation correlated with application performance.
  • RDS & Aurora: full cloud database monitoring with connection pool, replica lag, and cost attribution.

9. Getting Started

Because query plan capture doesn't require database-side agents, most teams see query attribution and N+1 detection within the first observation window against real production traffic. Connection pool trending and replication health baselines take a little longer to become reliable, since they depend on establishing what "normal" looks like for that specific workload — after which cost optimization recommendations follow from the same 30 days of usage data.

See query-to-root-cause tracing live
Walk through an N+1 or pool-saturation pattern on your own database.
Request a Demo →