SQL SERVER – Understanding MAX_DURATION in Index Creation

SQL SERVER - Understanding MAX_DURATION in Index Creation maxduration-800x457 Creating indexes in SQL Server is a critical part of optimizing database performance. One particular option that can be specified during the index creation is MAX_DURATION. This option is especially useful when we create indexes on large tables in a production environment, where running index operations for a long duration could impact the performance of other queries. This blog post will explore this option, exploring its purpose, syntax, and usage.


MAX_DURATION Is a relational index option that you can specify when creating an index in SQL Server. It’s specifically designed for online index operations and sets the maximum time, in minutes, that an online index operation will run.

This option is particularly useful when you want to control the duration of indexing operations to avoid potential conflicts with other important database activities. For example, prolonged index operations could interfere with these scheduled tasks in a production environment with nightly database backups or ETL processes. By specifying a MAX_DURATION, you can ensure that the index operation will not overstep its allotted time.


Here’s an example of how to use the MAX_DURATION option in an index creation:

CREATE INDEX idx_EmployeeName
ON Employee (FirstName, LastName)
WITH (ONLINE = ON, MAX_DURATION = 60); -- 60 minutes

In this example, the idx_EmployeeName index is created on the Employee table, specifically on the FirstName and LastName columns. The MAX_DURATION is set to 60 minutes, meaning that if the index operation doesn’t finish within one hour, it will be rolled back.

You can further follow me on Twitter.

Reference: Pinal Dave (https://blog.sqlauthority.com)

SQL Index
Previous Post
MySQL’s Index Condition Pushdown (ICP) Optimization
Next Post

Related Posts

Leave a Reply