SQL Server Science
Technical Articles for the DBA / Developer
Home » performance

Proving the Restore, Part 5: Striped Backups Are All or Nothing

2026-08-27 · by Hannah Vernon · in recovery

Large databases are often backed up across several files at once. Instead of one 800 GB file, you get eight files of about 100 GB, written in parallel:

Transact-SQL
1
2
3
4
5
6
BACKUP DATABASE [Sales]
TO   DISK = N'D:\Backups\Sales_FULL_S00.bak'
   , DISK = N'D:\Backups\Sales_FULL_S01.bak'
   , DISK = N'D:\Backups\Sales_FULL_S02.bak'
   , DISK = N'D:\Backups\Sales_FULL_S03.bak'
WITH CHECKSUM, COMPRESSION;

The motivation is throughput. Several writers…

Backup & Recovery from First Principles, Part 9: BUFFERCOUNT, MAXTRANSFERSIZE, and Friends – Benchmarked

2026-08-07 · by Hannah Vernon · in performance

The BACKUP statement has a set of tuning knobs most people never touch: BUFFERCOUNT, MAXTRANSFERSIZE, BLOCKSIZE, and striping across multiple files.[1] Advice about them tends to be folklore, so this post is numbers instead: nine…

Scalar UDFs vs Inline TVFs: Measuring the Damage

2026-07-27 · by Hannah Vernon · in performance

Scalar user-defined functions are the most natural thing in the world to write. You have a bit of logic, you wrap it in a function, you call it in your SELECT list, and your query…

Finding Eager Index Spools in the Plan Cache

2026-07-23 · by Hannah Vernon · in performance

Somewhere in your plan cache right now, there is probably a query quietly building an index every single time it runs. Not once. Every execution. It builds the index, uses it, and throws it away,…

Catching Slow File I/O with a Filtered Extended Events Session

2026-07-10 · by Hannah Vernon · in extended-events

file_read_completed and file_write_completed fire on every I/O. Filter on duration to capture only the slow ones, then shred to name the file.

Reads Are Part of the Contract: A DBA’s Guide to ORM-Generated SQL

2026-06-28 · by Hannah Vernon · in Data Architecture

In I argued that the database is a published interface, and that the way to keep it changeable is to draw a boundary: a small, deliberate set of views and procedures is the contract, and…

1 2 … 4 Next »

Search

Categories

  • AI for DBAs
  • announcements
    • events
  • basics
    • localization
  • configuration
  • Data Architecture
  • DMVs
  • documentation
  • extended-events
  • Git for DBAs
  • High Availability
  • Hot Takes
  • Internals
  • maintenance
    • patching
  • Opinion
  • performance
  • PostgreSQL
  • Professional Development
  • recovery
  • reporting
  • ROLLBACK;
  • security
    • data security
  • service broker
  • SQL Server Agent
  • statistics
  • sys
  • t-sql
    • xml
  • tools
    • data masking
    • wsus
  • troubleshooting
  • Uncategorized

Pages

  • About SQL Server Science
  • Get Better Help with a Minimal, Complete, and Verifiable Example, or MCVE
  • Privacy Policy

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.

To find out more, including how to control cookies, see here: Cookie Policy

Copyright © 2026 SQL Server Science