SQL DBA Blog: Home

  • Testing Remote Server Port Connectivity with PowerShell

    An application cannot connect to SQL Server, and before anyone goes near a configuration file there is 1 question to settle: is the port reachable from this server, or is something in the path blocking it? ⚡The short version. Run Test-NetConnection -ComputerName <server> -Port 1433. TcpTestSucceeded : True and the port is open from here,…

    Read More


  • DBA Scripts: Get Long-Running Queries

    🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Performance & Troubleshooting › Query & Performance Tuning When users report the application is slow, the first question is always the same: what is actually running right now? Not what ran an hour ago, not what the plan cache thinks is expensive on…

    Read More


  • How to Check Listening Ports on Windows

    An application cannot connect, and before you look at firewalls, DNS or logins you need one fact: is SQL Server listening on this machine, and on which port? Ask Windows which ports the sqlservr process holds, then ask SQL Server which port it bound at startup. If the two agree and the client still fails,…

    Read More


  • DBA Scripts: Get Missing Indexes

    🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Maintenance & Automation › Index Maintenance Every time SQL Server builds an execution plan that could have been improved with a better index, it makes a note of it. Those notes accumulate in memory and are queryable through the sys.dm_db_missing_index_* DMVs, and combined…

    Read More


  • Get Last Database Restore Date and Time in SQL Server

    Knowing when a database was last restored is useful during incident response, audits, and general environment validation. This is not about backup schedules or restore progress. It is one historical check that answers one question, when was this database last restored, and the query below answers it for every database on the instance. Show Last…

    Read More


  • DBA Scripts: Get Index Fragmentation Across Databases

    🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Maintenance & Automation › Index Maintenance Reports and range scans have slowed over weeks, or you have just inherited a server and need to know whether anyone has been maintaining its indexes. This lists every index at 5% fragmentation or more in every…

    Read More


  • DBA Scripts: Get User Permissions Audit

    🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Security The One Login You Actually Care About Right Now Off-boarding someone, or asked why one login can read a database it should not? Set @LoginName and run this. It returns one row for the server and one for every database the login…

    Read More


  • Deleting Rows in Batches in SQL Server

    A DELETE that removes hundreds of thousands of rows in one go is the one that fills the transaction log, locks the whole table and leaves everything else waiting. Delete in batches instead: small transactions whose log space can be reused, and a lock footprint other sessions can work around. Here is the loop, and…

    Read More


  • DBA Scripts: Get Database IO Usage

    🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Performance & Troubleshooting › Query & Performance Tuning When a SQL Server is struggling and the usual suspects (CPU, memory, blocking) come back clean, the next question is always the same: which database is hammering the disks? On a busy instance hosting ten…

    Read More


  • DBA Scripts: Get Wait Statistics

    🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Performance & Troubleshooting Every time a SQL Server session has to wait for something, a lock, a page from disk, a CPU slice, a memory grant, the engine records what it waited on and for how long. Those counters are the instance’s own…

    Read More