SQL Server Check

File growth settings for tempdb

This is one of many SQL Server checks performed by our free sp_Check tools.

Learn More About Our sp_check Tools

Checks Performed

ID
Check
4005
tempdb database files with < 8 MB growth

What’s the issue?

Tempdb is the system database used for sorts, hash joins, temporary tables, table variables, version store activity, and many internal operations. Because tempdb is critical to instance-wide performance, its file configuration deserves particular attention, especially the autogrowth settings and the relative sizing of its data files.

This finding flags tempdb file configurations that violate one or more accepted best practices: tempdb data files with uneven growth rates, tempdb database files configured with percentage-based growth, or tempdb database files configured with fixed growth smaller than 64 MB. Each of these conditions can produce performance problems even when tempdb appears to be working normally.

Why is this a problem?

Uneven growth rates across tempdb data files cause the files to drift out of equal size as autogrowth events accumulate. SQL Server uses a proportional fill algorithm to distribute writes across data files, so unequal files receive unequal activity, which defeats the purpose of having multiple tempdb files in the first place. The original goal of reducing PAGELATCH contention on allocation pages depends on all files being roughly equal in size, and divergent growth rates undermine that.

Percentage-based growth makes the problem worse over time. As a tempdb file grows larger, each subsequent percentage-based growth event is larger than the last, taking more time and producing increasingly imbalanced files. The unpredictable growth size also makes it harder to plan disk space, since the next growth could be small or very large depending on the current file size.

Growth increments smaller than 64 MB cause frequent autogrowth events, each of which briefly pauses tempdb activity while the file is extended. On busy instances, frequent small growths can produce noticeable query stalls and elevated wait times. Combined with Instant File Initialization not being enabled (a separate finding), small growth events become particularly disruptive because each growth must zero out the new space.

These conditions often coexist because they share a common root cause: tempdb was deployed with default settings or with settings inherited from older guidance, and never revisited. The defaults predate modern hardware and modern guidance, and the conditions surface only as performance problems on busy instances where they compound with other tempdb-related issues.

What should you do about this?

Fix uneven file sizes by setting all data files to the same size and growth configuration. Note that tempdb file changes typically require a SQL Server service restart to take full effect, so plan the change for a maintenance window.

Convert percentage-based growth to fixed growth by setting the same FILEGROWTH value in MB across all data files. A starting point of 256 MB or 512 MB is acceptable for many environments, with larger values for instances that handle very heavy tempdb workloads. Ensure all files use the same value so they grow consistently.

Increase any growth value smaller than 64 MB to at least 64 MB, with 256 MB or 512 MB being more typical recommendations for production instances. The change reduces the frequency of growth events and produces more predictable behavior. Pair this with proper initial sizing of tempdb (filling most of the dedicated tempdb drive) so autogrowth is rare in practice.

Confirm that Instant File Initialization is enabled (covered separately), since it dramatically reduces the impact of any data file growth that does occur, and if possible place the tempdb files on fast, dedicated storage.

Read more…

tempdb Database – SQL Server | Microsoft Learn

Type

Performance

Importance

Low

sp_Checks