The rows are gone but the table is the same size and scans are just as slow. Here is why, and two ways to fix it.
Foreign Keys Without Indexes: Finding and Fixing Slow Deletes
Find foreign keys without indexes, inspect parent-delete plans, and choose leading child-table keys that support relationship checks.
Point-in-Time Restore: Getting Back Rows Deleted by Accident
Plan a point-in-time restore after an accidental DELETE, preserve the log chain, recover a separate copy, and return reviewed rows.
Edge Constraints: Controlling Which Nodes a Graph Edge Connects
An edge table with no rules accepts nonsense links. Add an edge constraint, watch the bad edge fail, and see what the constraint still does not check.
Commenting Out Code: Testing Safely in SSMS
Commenting Out Code is the quickest way to switch off part of a script while you test the rest. This post covers the SSMS shortcuts, testing one WHERE filter at a time, the trap of GO inside a block comment, and a safety note to leave above a DELETE.
Delete Duplicate Records in SQL Server: SQL in Sixty Seconds #036
To delete duplicate records safely, look at them first. The tests here find the duplicates, preview the rows that will go, delete all but the newest copy inside one transaction and add a unique index so they cannot return. Every query ran on SQL Server 2025.
Walking Foreign Key Chains to Find a Safe Delete Order
Map foreign key chains from a parent table with a recursive catalog query, then list deepest children first and flag cascade rules.







