Avast Gold Partner Kaspersky Silver Partner
Product · MSP SQL Server Health Platform

Cardinal

Know your SQL's true shape.

Was your SQL Server installed with "next-next" and then forgotten? Cardinal finds what is slowing it down without touching the server — reading metadata only — produces a 0–100 health score and gives concrete advice like "rewrite this query this way and you get ~21 minutes back per day."

0–100 SQL Health ScoreRewrites your queriesRead-only · metadata onlyClient-ready PDF
Cardinal fleet view — per-instance health score rings, risk strip and early-warning badges
Fleet view · demo data (SRV-ERP01, SRV-CRM02 …)

What is Cardinal? Cardinal is a monitoring and advisory platform that listens to Microsoft SQL Server instances and produces performance findings, prioritised recommendations and a 0–100 SQL Health Score. It is developed by Bilgi Teknoloji Danışmanlık.

The observation plane runs out-of-band: it reads metadata only (DMVs, Query Store, configuration) with a least-privilege account and never touches your user tables. Its output is a findings list, server-specific remediation T-SQL and query rewrite recommendations — in the portal and in a client-ready PDF report.

Observation plane · read-only · metadata only
Differentiator

We don't just show the problem — we write the fix

Monitoring tools say "this query is slow." Query Advisor says "write it like this" — with a before → after snippet, the reason, and a time estimate.

Before
SELECT * FROM dbo.SiparisDetay sd
JOIN dbo.Stok s ON s.StokKod = sd.StokKod
WHERE YEAR(sd.Tarih) = 2024
  AND sd.Aciklama LIKE '%iptal%'
8.2 s · 1,240 executions/day
After
SELECT sd.SiparisNo, sd.StokKod, s.StokAd
FROM dbo.SiparisDetay sd
JOIN dbo.Stok s ON s.StokKod = sd.StokKod
WHERE sd.Tarih >= '2024-01-01'
  AND sd.Tarih <  '2025-01-01'
  AND sd.Aciklama LIKE N'iptal%'
1.7 s · ~2.2 hours saved across 1,240 executions

Three separate findings combined: the leading-wildcard LIKE blocked an index seek, the date function in the WHERE clause made the column non-SARGable, and SELECT * made a covering index impossible.

14 anti-pattern detectors

Leading-wildcard LIKEFunction on column in WHEREYEAR / CONVERT / ISNULLNOT IN → NOT EXISTSScalar UDF (RBAR)CursorUPDATE / DELETE without WHERENOLOCKSELECT *+5 detectors

Static analysis. Query Advisor works on collected query text and DMV statistics; it never executes a live query plan. Every recommendation carries a confidence level (high / medium).

Query Advisor screen — before/after code recommendations for the costliest queries, with confidence level and time estimate
Query Advisor · query rewrite recommendations
SQL Health Score

Seven categories, fifty rules, one number

The score is not a blunt gate: every fix you apply moves the number. At a real customer it went 74 → 75 → 77 → 78 → 81, then 92 once the last high finding cleared.

Health score breakdown · SRV-ERP01
Wait profile100
Query efficiency100
Index health86
IO / memory75
Configuration61
Maintenance61
Security / compliance100
74baseline
772nd fix
814th fix
92last finding
  • 50 declarative rules

    Rules are data, not code (JSON). Adding a rule requires no redeployment.

  • Time-bucketed baseline

    Weekday/weekend × night/morning/afternoon/evening. It catches out-of-hours collapses such as "PLE bottomed out at 02:00" without false-alarming on normal daytime swing.

  • Early warning from score slope

    Warnings like "declining · critical in ~14 days", before the problem grows.

  • Neglect findings as first-class citizens

    Stale statistics, regressed queries, end-of-support versions, overdue backups.

Instance detail screen — health score breakdown, score history, findings by severity and remediation T-SQL scripts
Instance detail · findings and remediation T-SQL
Capabilities

What is in the observation plane?

All read-only; none of it touches your user tables.

Server-specific remediation T-SQL

Not a static template: MAXDOP is computed from core and NUMA layout, Max Server Memory from total RAM. It is never executed automatically — it ships with a "display only" badge.

Baseline, anomaly and decline risk

A time-bucketed baseline catches out-of-hours collapses; the score slope estimates how long until the critical threshold.

SQL security audit — 15 rules

Whether audit is defined and actually running, sysadmin distribution, TRUSTWORTHY, public permissions, guest-enabled databases, orphan users, risky features, TDE. A configuration audit — not a network scan.

Query Store depth (2016+)

Plan regression (best → last avg duration ≥3x), duration variance (parameter sniffing), failed forced plans, a Query Store that silently dropped to READ_ONLY.

Fleet view and multi-tenancy

Many customers in one portal: lowest score on top, risk strip, early-warning and anomaly badges.

White-label PDF report

Cover and score band, executive summary, category breakdown, score history, all findings and remediation scripts. Branding is overridable — consultants deliver it under their own logo.

How It Connects

Setup, at least privilege

Two connection paths; neither has access to your user tables.

01
Connection path

Direct-connect: enter IP, user and password in the portal. For locked-down networks, a connector — outbound 443 only, mTLS; credentials never reach our server.

02
Least privilege

Only VIEW SERVER STATE, VIEW DATABASE STATE and VIEW ANY DEFINITION. Passwords are stored AES-256-GCM encrypted and never shown back.

03
Automatic scanning

Repeats every 15 minutes by default; trend and baseline accumulate over time.

04
Score and report

Findings and remediation scripts in the portal, plus a PDF report you can generate at any time.

Add-instance screen — direct-connect and connector choice, least-privilege account and AES-256-GCM privacy note
Add instance · direct-connect / connector
Sample Report

A single client-ready PDF

Cover and score band, executive summary, category breakdown, score history chart, all findings by severity with remediation scripts, and a method/scope page. The sample below was produced with demo data.

Sample PDF report page one — health score 19/100 in the risky band, findings summary and executive summary
Report p.1 · score band and executive summary
Sample PDF report findings page — each finding's impact, recommendation and auto-generated remediation T-SQL
Report p.3 · findings and remediation scripts

Download both sample reports now

Real 12-page output produced with demo data. No sign-up required.

Who It Is For

One score, four different problems answered

SMB owner / manager"The ERP has been crawling for years and nobody can say why"

A measurable score and a client-ready PDF report: the problem stops being a feeling and becomes a number.

In-house IT / sysadminA one-person IT team, not a SQL specialist

Concrete, copy-paste remediation T-SQL — auto-generated for your specific server.

ERP / software consultantThe "it's not our software" argument

Evidence: which query, how many seconds, how many executions, how much saved.

MSPMany customers, one portal

Fleet view, multi-tenancy and a white-label report you deliver under your own brand.

Cardinal Protect · opt-in add-on · coming soon / pilot programme

Protection plane — inline, between the application and SQL

Unlike the observation plane, this module sits in the query traffic path. It is therefore a separate module with a separate process and separate approval, and it must run at the customer site. It is not generally available yet — talk to us about the pilot programme.

Can stop SQL injection and privilege-escalation attempts

A security layer between the application and SQL Server; a matched query never reaches the database and the client receives an error.

It blocks nothing on first install

Shadow mode is the default: it only reports what it would have blocked. Enforcement starts only after false positives are calibrated and you approve it.

Signature-free detection — learned query shape

It learns your application's normal query skeleton; a query structure never seen before raises a signal even with no matching signature.

Rules are data, not code

Adding a new signature does not require reinstalling the system.

Query content is not stored

By default payloads are not logged, or are masked; what is retained is only the matched rule and metadata.

Outage behaviour is agreed up front

What happens if the proxy cannot reach a clean decision is chosen in writing: access first, or security first.

Protection you can verify. We do not claim the protection works — we prove it. We send real SQL injection attempts at your approved, isolated test environment and report which ones were stopped. Current coverage: 43 of 43 attack payloads blocked, zero false positives across 10 control queries. The simulation runs only with explicit written approval and only against targets flagged "isolated/test"; it will not run against a production-tagged instance even with full approval.

Positioning

What mature monitoring tools do not do

Redgate SQL Monitor, SolarWinds DPA and SentryOne are mature products; depth and enterprise references are their strength. Their gaps lie elsewhere: they are not MSP-first, there is no local billing in Türkiye, and no white-label report.

Most importantly: they do not recommend how to rewrite the query. They say "this query is slow", not "write it like this." Cardinal is built exactly on that gap.

Who is it for?

Businesses running an ERPIT teams without a DBAERP and software consultantsMSPs and managed service providersMulti-instance SQL estates
Cardinal fleet view in dark mode — score colours are preserved
Dark mode · same screen

Are you an ERP or software consultant?

When your client's SQL Server slows down, proving the cause falls to you. Let's talk about our partner model, where you deliver the Cardinal report under your own brand.

Fact Sheet

Cardinal — key facts

Product nameCardinal — MSP SQL Server health platform
CategoryMicrosoft SQL Server monitoring and advisory platform
Output0–100 SQL Health Score · query rewrite recommendations · remediation T-SQL · client-ready PDF report
Score components7 categories (wait profile, query efficiency, index health, IO/memory, configuration, maintenance, security/compliance) · 50 declarative rules
Query Advisor14 anti-pattern detectors · static analysis (never runs a live plan) · before → after with time estimate
Security audit15 rules · configuration audit (not a network scan) · read at least privilege
Access methodDirect-connect or connector (outbound 443 only, mTLS) · only VIEW SERVER STATE / VIEW DATABASE STATE / VIEW ANY DEFINITION · no user-table access
Scan frequencyEvery 15 minutes by default · trend and baseline accumulate over time
Supported versionsSQL Server 2016 and later (Standard, Enterprise, Express) · reachable cloud SQL instances
HostingSaaS (default) or on-prem tier · portal port 31433 · passwords AES-256-GCM
Who uses itBusinesses running an ERP · IT teams without a DBA · ERP and software consultants · MSPs
DeveloperBilgi Teknoloji Danışmanlık — Istanbul, Türkiye
Frequently Asked Questions

Common questions about Cardinal

No. The observation plane needs no agent; it connects with a least-privilege SQL account (only VIEW SERVER STATE, VIEW DATABASE STATE and VIEW ANY DEFINITION) and has no access to your user tables. For locked-down networks there is a lightweight connector using outbound 443 only, in which case your credentials never reach our server.
The score is a weighted composite of 7 categories: wait profile, query efficiency, index health, IO/memory, configuration, maintenance and security/compliance. Behind it run 50 declarative rules; because rules are data rather than code, adding one needs no redeployment. Each finding's contribution to the score is itemised in the report.
Query Advisor performs static analysis on collected query text and DMV statistics — it never executes a live plan. It has 14 anti-pattern detectors (leading-wildcard LIKE, function on a column in WHERE, NOT IN, scalar UDF, cursor, SELECT * and others). The output is a before → after snippet with a time estimate. A measured example at a real customer: 8.2 s → 1.7 s, roughly 2.2 hours saved across 1,240 executions.
No. Remediation T-SQL is computed for your specific server (MAXDOP from core and NUMA layout, Max Server Memory from total RAM) but is never executed automatically. It appears in the portal and the report with a "display only" badge; the decision to apply is yours.
Yes. The PDF report is built to be client-ready: cover and score band, executive summary, category breakdown, score history, all findings by severity, and remediation scripts. Branding is overridable, so consultants can deliver it under their own logo.
No. The 15 security rules in the observation plane are a configuration audit: whether SQL Audit is defined and actually running, sysadmin distribution, TRUSTWORTHY, excess public permissions, guest-enabled databases, orphan users, logins with password policy off, unencrypted client connections, risky features (CLR/OLE/xp_cmdshell), default trace, TDE. All are read at least privilege — no sysadmin required. No network or port scanning takes place.
SQL Server 2016 and later, across Standard, Enterprise and Express editions. Query Store-based deep analysis (plan regression, duration variance, failed forced plans) applies to 2016 and above. Reachable cloud SQL instances can also be connected directly.
The observation plane runs out-of-band and samples system views; scans repeat every 15 minutes by default. It adds no measurable load.
By default in the environment we manage (SaaS). For customers in regulated or isolated networks there is an on-prem option. The portal's default port is 31433. SQL passwords are stored AES-256-GCM encrypted and are never shown back.
SQL Health Scan

See your score, then decide

We run a scan on a single instance and produce your health score and first findings.