Author: Peter Whyte
-
DBA Scripts: Generate Backup Jobs
Part of the DBA-Tools Project. A Readable Generator for Full Backups, Log Backups, and Cleanup If you’re already running Ola Hallengren’s maintenance solution, this won’t replace it, but the approach here might still be useful: a small, readable T-SQL generator that builds a backup job framework as plain sp_add_job / sp_add_jobstep DDL you can review…
Written by
-
JSON in SQL Server: OPENJSON, FOR JSON, and the Native JSON Type
SQL Server has had JSON functions since 2016, and SQL Server 2025 added a native JSON data type on top of them. Most write-ups explain the syntax; fewer show what actually differs between storing JSON as text and storing it as the native type, or when reaching for JSON in a relational database is the…
Written by
-
DBA Scripts: Generate Migration Scripts
This post has been split into a pillar and five focused posts, each generator script now has its own page with its own real bugs, Example Output, and Related Scripts, rather than five topics crammed into one long post. Start at the hub: SQL Server Migration Script Generators All five scripts, the repo links, and…
Written by
-
DBA Scripts: Run a Full SQL Server Health Check
Part of the DBA-Tools Project. Most of the 130+ scripts on this site answer one specific question, run when you already know what you’re looking for. This post is different. It’s the workflow for the moment you don’t know what to look for yet, an inherited server, an on-call page, a new instance nobody’s documented,…
Written by
-
Diagnose SQL Server’s ‘String or Binary Data Would Be Truncated’ Error
Every SQL Server developer hits this one early, and it’s usually the first real evidence that a column’s declared size doesn’t match what the application is actually sending it. Since SQL Server 2019 (with the database in a current compatibility level), the error is genuinely useful, it tells you the actual value that didn’t fit.…
Written by
-
Shrinking a SQL Server Database Causes Fragmentation: Measured, Not Just Stated
How to Shrink SQL Server Database Files in Chunks already says it plainly in its common pitfalls: shrinking causes index fragmentation, every time. That’s correct, and worth taking on faith from someone who’s had to clean up after it. It’s more useful with a real number attached. This post runs the actual before/after: a lab…
Written by
-
DBCC CHECKDB Found Corruption: What to Actually Do Next
DBCC CHECKDB reporting consistency errors is one of the few moments in this job that deserves to feel urgent. It usually also arrives with no warm-up: a query that worked yesterday throws a 5-digit error number nobody recognizes, or a scheduled DBCC CHECKDB job that’s passed silently for years suddenly doesn’t. This post reproduces a…
Written by
-
Parameter Sniffing in SQL Server: A Measured Example, Not Just the Theory
Parameter sniffing is SQL Server doing exactly what it’s supposed to do: compiling a query plan based on the actual parameter value passed in the first time it runs, then reusing that plan for later calls. That’s normally the right behavior, a plan built for the real value is usually better than a generic one.…
Written by
-
DBA Scripts: Generate Maintenance Jobs
This post has been split into a pillar and three focused posts, each generator script now has its own page with its own real bugs, Example Output, and Related Scripts, rather than three topics crammed into one long post. Start at the hub: SQL Server Maintenance Job Framework All three scripts, and the repo links,…
Written by
-
Table Variables vs Temp Tables in SQL Server: What the Optimizer Actually Sees
The usual line on table variables vs temp tables is “table variables don’t have statistics, so the optimizer assumes 1 row.” That was true once. It isn’t the whole story on a current SQL Server, and the actual gap between what the optimizer assumes and what’s really there is worth measuring rather than repeating from…
Written by
Key Links
DBA Scripts: The Complete Guide
Query and Performance Tuning
High Availability
Security
Storage and Capacity
Installation and Patching
Backups and Recovery
Blog Categories
- Backups & Recovery (5)
- DBA Scripts (147)
- High Availability (HA) (7)
- Installation & Configuration (16)
- Maintenance (4)
- Migration & Upgrades (1)
- Monitoring (6)
- Performance Tuning (5)
- Security (Encryption & Permissions) (3)
- T-SQL Fundamentals (11)
- Troubleshooting (23)
- Wait Types (235)
Latest Posts
- Compatibility Levels: What Actually Changes When You Bump It
- SQL Server Management Studio (SSMS): The Complete Guide
- SQL Server Collation: Case Sensitivity and the Cross-Database Trap
- SQL Server Isolation Levels (and When to Reach for RCSI)
- DBA Scripts: Get Database Summary
- DBA Scripts: Get Database Inventory
Blog Tags
Access (4) Always On Availability Groups (4) Auditing (7) Backups (6) Blocking (4) Blocking Locking (6) Collectors (7) Database Backups & Recovery (8) Database Backups and Recovery (5) Database Maintenance (7) DBA Tools (24) Disk Space (5) Extended Events (8) Features (6) High Availability (6) Indexes (7) Installation (7) Inventory (8) Jobs (3) Maintenance (7) Migration (15) Monitoring (27) Performance (21) Performance Troubleshooting (9) PowerShell (4) Query Behaviour (5) Security (10) SQL Agent (5) SQL Scripts (17) SQL Server Administration (10) SQL Server Configuration (7) SQL Server Errors (5) SQL Server High Availability (4) SQL Server Internals (3) SQL Server Management Studio (SSMS) (6) SQL Server Monitoring (7) SQL Server Networking (9) SQL Server Security (7) Storage and Capacity (7) T-SQL (10) Temp DB (3) Tracing (7) Transaction Logs (4) Troubleshooting (24) Windows Server (4)