This month's discount Comprehensive Database Performance Health Check · Testimonials
SQLAuthority with Pinal Dave
Home
  • Consulting
    • Health Check
  • Free Videos
  • All Articles
    • AI
    • SQL Performance
    • SQL Tips and Tricks
    • Interview Questions and Answers
    • SQL Puzzle
    • SQL Video
    • SQLAuthority News
    • Personal
  • Books
  • Consulting
Diagram titled One row, one DELETE, five places it still lives. The left panel lists the row alive: a 284 byte log record before the commit, an address at 1 colon 392 colon 0, a checkpoint writing the page, and a backup copying it out. The right panel lists what remains after the delete: the ghost record still 184 bytes, log records, the statistics histogram that names the row, deallocated pages, and every backup.

The Migration of a Row: Tagged, Followed, Found Again

September 21, 2026
Pinal Dave
SQL Tips and Tricks
Best Practices, Database, Developer, SQL Server

I followed the migration of a row through SQL Server 2025, from the first write to the grave. The log gets there before the table. The delete does not erase anything. And when the table is empty and the ghost is gone, the statistics histogram still names the row in full.

Read More
UPDATE Without WHERE, SQL in Sixty Seconds episode 211, featuring Dex and Mia.

UPDATE Without WHERE Clause: The Day Everyone Got a Raise

September 8, 2026
Pinal Dave
SQL Video
SQL in Sixty Seconds, SQL Server, SQL Transactions

An UPDATE without WHERE clause changed 8,432 salaries. When ROLLBACK can help, and how to check the affected row count before COMMIT.

Read More
SQL Server Deadlock: Build One With Your Own Hands

SQL Server Deadlock: Build One With Your Own Hands

August 4, 2026
Pinal Dave
SQL Performance
Deadlock, SQL Server

A SQL Server deadlock occurs when sessions form a cycle of dependencies and none can continue. This example lets you create the cycle, inspect it, and remove it.

Read More
A hand tying small parcels into equal bundles with vermilion string in a post office loading bay.

BULK INSERT Batch Size and ROWS_PER_BATCH

September 1, 2024
Pinal Dave
SQL Tips and Tricks
Batch, CSV, SQL Log, SQL Server, SQL Transactions

Distinguish ROWS_PER_BATCH estimates from BULK INSERT commit batches, then review logging, locks, rejected rows, and atomic loading.

Read More
A flour-dusted kitchen floor at dawn with a trail of small mouse prints from the pantry door to a crumb.

Logging Agent Jobs That Call Stored Procedures

August 15, 2024
Pinal Dave
SQL Tips and Tricks
DBA, SQL Server, SQL Server Agent, SQL Stored Procedure

Improve logging Agent jobs with procedure run records, start and end events, captured errors, step output, and history correlation.

Read More
Two hands husking corn at a market stall, stripped husks heaped aside and clean cobs in a bowl.

Cleaning Currency Strings Into decimal Values

August 1, 2024
Pinal Dave
SQL Tips and Tricks
SQL Datatype, SQL Function, SQL Server, SQL String

Convert currency strings into decimal amounts using known symbols, explicit parsing cultures, conversion checks, and rejection evidence.

Read More
A hand tying one ribbon to each blackberry bush along a lane that has at least one ripe berry.

EXISTS vs IN vs JOIN: Writing Semi-Joins

June 1, 2024
Pinal Dave
SQL Performance
SQL Joins, SQL NULL, SQL Server, SQL Sub Query

Compare EXISTS, IN, and JOIN for semi-joins, prevent duplicate customer rows, and handle NULL safely in exclusion queries.

Read More
1 2 3 4 … 425 Next
  • Books
  • Testimonials
  • Privacy Policy

© 2006 – 2026 All rights reserved. pinal @ SQLAuthority.com