<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SQL Server on Netdata</title><link>https://www.netdata.cloud/tags/sql-server/</link><description>Recent content in SQL Server on Netdata</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 31 Aug 2026 20:45:44 +0300</lastBuildDate><atom:link href="https://www.netdata.cloud/tags/sql-server/index.xml" rel="self" type="application/rss+xml"/><item><title>Database Performance Monitoring: 14+ DBs Supported</title><link>https://www.netdata.cloud/blog/dbm/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/blog/dbm/</guid><description>&lt;p&gt;&lt;img src="../images/dbm-hero.svg" alt="Database Performance Monitoring: Query-Level Visibility Across 14+ Databases"&gt;&lt;/p&gt;&#10;&lt;p&gt;Netdata has always collected database metrics: connections, throughput, replication lag, buffer cache hit ratios, and so on. These tell you that something is wrong, but they don&amp;rsquo;t tell you why. When your PostgreSQL response time spikes, the metric alone doesn&amp;rsquo;t tell you which query is responsible. For that, you&amp;rsquo;ve traditionally needed to SSH into the box, connect to the database, and run diagnostic queries manually. Or set up a separate database monitoring tool entirely.&lt;/p&gt;</description></item><item><title>Database Monitoring Software Without Query Languages</title><link>https://www.netdata.cloud/solutions/built-for/dbas/</link><pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/solutions/built-for/dbas/</guid><description>Netdata gives DBAs complete database visibility with per-second query performance, replication lag tracking, lock analysis, and connection pool monitoring across MySQL, PostgreSQL, SQL Server, Oracle, and MongoDB - all from one dashboard with zero configuration.</description></item><item><title>Microsoft SQL Server (MSSQL) Monitoring</title><link>https://www.netdata.cloud/monitoring-101/mssql-monitoring/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/monitoring-101/mssql-monitoring/</guid><description>&lt;h2 id="microsoft-sql-server"&gt;Microsoft SQL Server&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Microsoft_SQL_Server"&gt;Microsoft SQL Server&lt;/a&gt; is a relational database management system (RDBMS) developed by Microsoft. It is a software product that stores and retrieves data as requested by other software applications. &lt;a href="https://www.microsoft.com/en-us/sql-server/sql-server-downloads"&gt;It can run on various platforms, such as Windows, Linux, and Azure&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="monitoring-microsoft-sql-server"&gt;Monitoring Microsoft SQL Server&lt;/h2&gt;&#10;&lt;p&gt;To holistically monitor Microsoft SQL Server, you need to track various aspects of its performance, health, and availability. Some of the key metrics to monitor include system level metrics about the impact of SQL Server such as:&lt;/p&gt;</description></item><item><title>Microsoft SQL Server monitoring checklist: the signals every production instance needs</title><link>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-monitoring-checklist/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-monitoring-checklist/</guid><description>&lt;p&gt;Most SQL Server outages are not exotic. The transaction log fills because a backup job silently stopped. A sleeping session with an open transaction blocks forty other sessions until the worker pool runs dry. TempDB runs out of space and every database on the instance stalls at once. All of these are visible hours or days in advance if you collect the right signals. Most teams do not.&lt;/p&gt;&#10;&lt;p&gt;This checklist is the minimum set of signals a production SQL Server instance needs, organized so you can audit what you have today and fill the gaps. It targets standalone instances, failover cluster instances, and AlwaysOn AG deployments on-premises or on VMs. Azure SQL Database and Managed Instance share many of the same DMVs but abstract storage and resource governance differently.&lt;/p&gt;</description></item><item><title>SQL Server blocking chains: finding the head blocker before workers run out</title><link>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-blocking-chain/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-blocking-chain/</guid><description>&lt;p&gt;SQL Server is unresponsive. CPU and I/O counters are low. Connections succeed but queries hang. Timeouts and login failures follow. This is the shape of a blocking chain that has crossed into worker-thread exhaustion.&lt;/p&gt;&#10;&lt;p&gt;One session holds a lock. Conflicting sessions queue behind it, each waiting on an &lt;code&gt;LCK_M_*&lt;/code&gt; wait and each pinning a worker from SQL Server&amp;rsquo;s fixed-size pool. As the chain deepens, the worker pool drains. Once exhausted, new requests get &lt;code&gt;THREADPOOL&lt;/code&gt; waits and the instance appears down to applications, even though the OS shows &lt;code&gt;sqlservr&lt;/code&gt; healthy and storage idle.&lt;/p&gt;</description></item><item><title>SQL Server Error 18456: login failed for user, and what the state code means</title><link>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-error-18456-login-failed/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-error-18456-login-failed/</guid><description>&lt;p&gt;SQL Server Error 18456 is the universal &amp;ldquo;Login failed for user X&amp;rdquo; message. It is deliberately vague: every client, from &lt;code&gt;sqlcmd&lt;/code&gt; to the application&amp;rsquo;s connection pool, sees the same string with severity 14 and state 1. The client never learns whether the password was wrong, the login does not exist, the database is offline, or the account is disabled. That information lives only in the SQL Server error log, encoded as a state code.&lt;/p&gt;</description></item><item><title>SQL Server Error 701: there is insufficient system memory to run this query</title><link>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-error-701-insufficient-memory/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-error-701-insufficient-memory/</guid><description>&lt;p&gt;Error 701 is one of SQL Server&amp;rsquo;s bluntest messages: &amp;ldquo;There is insufficient system memory in resource pool &amp;lsquo;default&amp;rsquo; to run this query.&amp;rdquo; When it fires, the engine could not satisfy an allocation. Queries that were running fine seconds ago start failing, and the failure cascades into application timeouts, retry storms, and a flood of related errors (17890, 8645).&lt;/p&gt;&#10;&lt;p&gt;The error itself tells you very little. It does not say whether the buffer pool is starved, whether a single query is hoarding a memory grant, whether an Extended Events ring buffer has eaten 50 GB, or whether the OS is reclaiming memory from a VM balloon driver. Investigate by source.&lt;/p&gt;</description></item><item><title>SQL Server Error 823 and 824: I/O and logical consistency errors</title><link>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-error-823-824-io-errors/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-error-823-824-io-errors/</guid><description>&lt;p&gt;Errors 823 and 824 are SQL Server&amp;rsquo;s severity-24 storage integrity alarms. 823 means the operating system reported a hard failure on a file API call. 824 means the call succeeded but the page failed an internal integrity check. Both are PAGE-worthy the moment they appear; they do not self-resolve, and continued use of the affected files risks losing data that was fine minutes earlier.&lt;/p&gt;&#10;&lt;p&gt;Error 825 is the soft warning that usually precedes both: SQL Server retried a read that initially failed and eventually succeeded. The query did not fail and no connection was killed, which is why most teams do not alert on it. It is also the most reliable predictor that an 823 or 824 is coming.&lt;/p&gt;</description></item><item><title>SQL Server Error 825: read-retry succeeded and the disk is failing</title><link>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-error-825-read-retry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-error-825-read-retry/</guid><description>&lt;p&gt;Error 825 is what SQL Server writes to the error log when a disk read failed on the first attempt but succeeded on a retry (attempt 2, 3, or 4). The query completes. The application sees no failure. But the storage underneath just told you it is failing.&lt;/p&gt;&#10;&lt;p&gt;Most monitoring setups never surface Error 825. It is a severity-10 informational message, and typical SQL Server Agent alert configurations target severity 20 and above. The error sits quietly in the log until something harder arrives: an 823 (hard I/O error) or an 824 (logical consistency error). By then the page may already be unreadable.&lt;/p&gt;</description></item><item><title>SQL Server instance down: no response on port 1433 and where to look first</title><link>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-instance-down/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-instance-down/</guid><description>&lt;p&gt;Your availability probe just fired: TCP connect plus &lt;code&gt;SELECT 1&lt;/code&gt; against port 1433 has failed three or more times over at least 60 seconds. Before you restart anything, separate the two failure modes that get lumped together as &amp;ldquo;SQL Server is down&amp;rdquo;. They have different causes, different fixes, and different blast radii.&lt;/p&gt;&#10;&lt;p&gt;Mode one: no TCP connect at all. The listener is not accepting connections on 1433 (or the named instance&amp;rsquo;s dynamic port). The service is stopped, the host is down, the network path is broken, or the listener is misconfigured, commonly after an AlwaysOn failover. The engine is not there to talk to.&lt;/p&gt;</description></item><item><title>SQL Server PAGEIOLATCH waits: the buffer pool waiting on slow storage</title><link>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-pageiolatch-waits/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-pageiolatch-waits/</guid><description>&lt;p&gt;Your top wait type is &lt;code&gt;PAGEIOLATCH_SH&lt;/code&gt; or &lt;code&gt;PAGEIOLATCH_EX&lt;/code&gt;. Queries that used to be sub-50ms now take seconds. CPU may be low. There are no blocking chains. The buffer pool is waiting on disk.&lt;/p&gt;&#10;&lt;p&gt;PAGEIOLATCH waits are the direct fingerprint of physical I/O. A worker needs an 8KB data page that is not in the buffer pool, takes an in-memory latch on the buffer descriptor, and waits for storage to return the page. When the read completes, the worker continues. Sustained PAGEIOLATCH time means the engine is spending wall-clock time waiting on disk.&lt;/p&gt;</description></item><item><title>SQL Server RESOURCE_SEMAPHORE waits: queries stuck waiting for a memory grant</title><link>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-resource-semaphore-waits/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-resource-semaphore-waits/</guid><description>&lt;p&gt;RESOURCE_SEMAPHORE is the wait type SQL Server records when a worker thread cannot get a query memory grant. Before a query runs a sort, hash, or certain joins, the optimizer estimates how much workspace memory it needs and asks the grant pool for it. When the pool is exhausted, parsed-and-optimized queries sit in a queue. To the application they look hung.&lt;/p&gt;&#10;&lt;p&gt;CPU may be low. Disk I/O may be low. Buffer pool may look fine. Users report &amp;ldquo;the database is slow&amp;rdquo; and standard dashboards do not explain why. RESOURCE_SEMAPHORE only shows up clearly if you sample wait stats on a short interval and watch the Memory Grants Pending counter. Both are routinely missed.&lt;/p&gt;</description></item><item><title>SQL Server SOS_SCHEDULER_YIELD waits: CPU scheduler pressure explained</title><link>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-sos-scheduler-yield-waits/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/microsoft-sql-server/microsoft-sql-server-sos-scheduler-yield-waits/</guid><description>&lt;p&gt;When SOS_SCHEDULER_YIELD dominates &lt;code&gt;sys.dm_os_wait_stats&lt;/code&gt;, the reflex is to assume CPU pressure and start hunting for bad queries. That reflex is right about half the time. The other half, you are chasing a signal that is doing exactly what it was designed to do: recording every time a worker voluntarily yielded its 4ms quantum because other runnable workers were queued.&lt;/p&gt;&#10;&lt;p&gt;The wait type has existed in SQL Server since the SQLOS era and the 4ms quantum is fixed in every version. It cannot be tuned. What you can tune is your interpretation. A workload doing efficient set-based scans of pages already in memory will yield constantly and rack up enormous SOS_SCHEDULER_YIELD numbers without anything being wrong. A VM on an oversubscribed host reports the same wait type while the hypervisor silently steals CPU cycles SQL Server cannot see.&lt;/p&gt;</description></item><item><title>Webinar: Live Database &amp; Network Diagnostics</title><link>https://www.netdata.cloud/webinars/live-functions-database-network-monitoring/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/webinars/live-functions-database-network-monitoring/</guid><description/></item><item><title>Webinar: Real-Time Windows Server Monitoring</title><link>https://www.netdata.cloud/webinars/windows-server-monitoring/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/webinars/windows-server-monitoring/</guid><description/></item></channel></rss>