Skip to content

The Dummy Programmer

Stories of daily programming

  • Home
  • My other dummy projects
  • Games
    • Space Y: An Asteroids clone
  • Services
    • What’s my user agent
    • What’s my IP address
  • About
  • Toggle search form

Sql Server Instant File Initialization

Posted on December 20, 2020December 22, 2020 By

Sql Server Instant File Initialization is a Sql Server option that, I have to admit, I didn’t know. Activating this option you can slightly improve performances when Sql Server needs to grow data files and during backup and restore of a database.

When Sql Server grows data files and transaction log files, it fills with zeros the newly allocated space. This could be a time consuming job, and especially in very busy Sql Server instances could lead to waits because no session could write to the growing file while this operation is in progress.

But, at least for data files, you can disable this behavior (sorry, transaction log files are always zeroed…).

How can you activate Instant File Initialization?

Simply follow these instructions….

First of all check the credentials under which the Sql Server service is running. So open the Windows services list and double click on “Sql Server” service.

Check Sql Server service user name

In my case the user is “NT Service\MSSQLSERVER”.

Now click Windows Key + R, to open the “Run” window, and execute “secpol.msc”.

Run secpol.msc

The “Local Security Police” windows will appear. In the left pane, select the item “Security setting\Local policies\User Right Assignment”.

On the right panel double click the item “Perform volume maintenance tasks” and add the user used to run the Sql Server service.

The following screenshot should clarify:

Add Sql Server user to the list

Here is the screenshot with the user list updated.

Sql Server user added

At this point you have to restart the Sql Server Service.

To check if Sql Server is zeroing data files, execute the following code:

dbcc traceon(3004,3605,-1) 
go 

create database TrashMe 
go 

exec sp_readerrorlog 
go 

drop database TrashMe 
go 

dbcc traceoff(3004,3605,-1) 
go

The output of the “sp_readerrorlog” should log something similar about zeroing log files:

Zeroing C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\TrashMe_log.ldf from page 0 to 1024 (0x0 to 0x800000)
Zeroing completed on C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\TrashMe_log.ldf (elapsed = 5 ms)

But you will not find any similar about data files, so you can conclude that Instant File Initialization is working. Remember that from Sql Server 2016 you can activate Instant File Initialization during setup, checking the option “Grant Perform Volume Maintenance Task to Sql Server Database Engine Service”.

Just a little note before the greetings: there is a security risk associated with instant file initialization.

I suggest you to read more at:

https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-instant-file-initialization?view=sql-server-ver15

Sql Server, Sql Server 2016

Post navigation

Previous Post: One shot secret function: what’s that?
Next Post: Migrating Google GSuite mailboxes to Microsoft Office 365

Related Posts

Sql Server add constraint WITH NOCHECK Sql Server
Search a string in stored procedures, functions and views in a SQL Server database Sql Server
Sql Server error: Cannot construct data type date, some of the arguments have values which are not valid. Sql Server
Sql Server error: A severe error occurred on the current command.  The results, if any, should be discarded. Sql Server
Merge two or more historical tables with Sql Server T-SQL – Part 2 Sql Server
The ‘Microsoft.ACE.OLEDB.12.0’ provider is not registered on the local machine Excel

Search

Related posts

  • Merge two or more historical tables with Sql Server…
  • Merge two or more historical tables with Sql Server…
  • Get SQL Server version in T-SQL
  • Zipping xlsx file correctly

Categories

  • .NET 6 (1)
  • .NET 7 (1)
  • AJAX (1)
  • Android (2)
  • Apache (4)
  • ASP.NET (9)
  • ASP.NET MVC (3)
  • Avalonia UI (1)
  • BCP (1)
  • Bitlocker (2)
  • C# (14)
  • CentOS (4)
  • ClosedXML (1)
  • CLR (1)
  • DNS (1)
  • Encryption (3)
  • Excel (2)
  • FuelPHP (3)
  • Games (2)
  • Google Chrome (1)
  • GSuite (1)
  • HTML (1)
  • Imagick (2)
  • Javascript (1)
  • Kindle (1)
  • LAMP (3)
  • Linux (7)
  • MariaDB (2)
  • Mathematics (2)
  • MySql (4)
  • NPOI (1)
  • Office 365 (1)
  • Perl (1)
  • PHP (6)
  • Programming (1)
  • Remote desktop (1)
  • SFTP (2)
  • Sockets (3)
  • Sql Server (20)
  • Sql Server 2016 (14)
  • Sql Server 2019 (1)
  • SSL (4)
  • Task scheduler (1)
  • Telerik ASP.NET AJAX (2)
  • The Dummy Programmer Chat (2)
  • Threading (5)
  • Tools (1)
  • TPL (3)
  • TypeScript (3)
  • Ubuntu (4)
  • Virtualization software (3)
  • Visual Studio (1)
  • Visual Studio Code (2)
  • VueJS (1)
  • Web fonts (1)
  • Web programming (6)
  • Windows (12)
  • Windows 10 (15)
  • Windows Forms (1)
  • Windows Server (6)

Copyright © 2024 The Dummy Programmer | Privacy Policy | Terms of use |

Powered by PressBook Masonry Dark

Manage Cookie Consent
This site doesn’t collect user personal data and doesn’t install profiling or analytical cookies, either its own or from third parties. Read our privacy policy for more info.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}