sys.dm_exec_valid_use_hints lists every USE HINT name that your SQL Server accepts. This post groups the 35 names on SQL Server 2025 and shows the compile error for a misspelled hint. It applies two hints and reads the plan to prove each one worked, then compares USE HINT with QUERYTRACEON.
JDBC and sendStringParametersAsUnicode: The Hidden Index Scan
Diagnose sendStringParametersAsUnicode conversions, align JDBC parameters with varchar indexes, and preserve required Unicode data.
SQL Puzzle – SELECT ~ 1 : Guess the Answer
SELECT ~ 1 returns -2 because the tilde is the bitwise NOT operator and flips all 32 bits of an int. This post keeps the puzzle, tests the answer on SQL Server 2025 with five data types and shows where the tilde is useful.
NOT IN With a NULL in the List Returns No Rows
See why NOT IN with a NULL returns no customers, then compare five sample rows, NOT EXISTS, an IS NOT NULL filter, and query plans.
Threads With Zero Rows in a Parallel Plan, Measured
A parallel plan can show threads with zero rows, and that is normal. This post reads the per-thread row counters of two real plans on SQL Server 2025 and shows where the empty threads come from. It also says when an empty thread points to a real problem.
Azure SQL Database Serverless: Auto-Pause and What Wakes It
Understand Azure SQL Database serverless limits, auto-pause, resume delays, and billing metrics before choosing an idle strategy.
USE HINT: Switching Off One Optimizer Rule Without Trace Flags
Apply USE HINT to one query, inspect supported names, compare optimizer behavior, and manage Query Store hints with a clear removal plan.
When Did SQL Server Last Restart? Four Ways to Check
Find SQL Server’s last restart using startup metadata, tempdb, logs, and sessions, then interpret reset counters correctly.
Top 1 and Index Scan: A Scan That Stops After One Row
Top 1 and index scan can sit in the same plan, and the scan still reads only a few pages. This post runs six queries on a table of 100,000 rows and reads their logical reads. It shows why TOP 1 reads three pages in one case and every page in another.
Cached Data Per Object in Memory: Read the Buffer Pool
Cached data per object tells you which tables and indexes fill the buffer pool. This post builds two demo tables, empties their cache and reads part of the data. A query then lists the pages, megabytes and share of each index in memory. It also explains why the view is costly on a big server.










