SQL Server Startup Parameters

SQL Server also has a few optional startup parameters that you can set to help troubleshoot your installation or make some minor performance optimizations.

  • -c Shortens SQL Server’s startup time by starting the instance independent of the Service Control Manager. Starting SQL Server independent of the Service Control Manager will keep if from running as a Windows service. I have not had the need to use this parameter so I can only guess that it could be useful for troubleshooting startup issues.
  • -f This parameter starts an instance of SQL Server with the minimal configurations and enables the sp_configure allow updates option. This parameter is very useful if a configuration option is set that disables SQL Server. You can use this parameter to start SQL Server and change the inappropriate configuration setting back to the original.
  • -g This parameter will specify the amount of virtual address space that SQL Server will leave available for memory allocations within the SQL Server process, but outside the SQL Server memory pool. What does that mean? This memory allocation outside of the SQL Server memory pool is used for loading times such as extended stored procedures, dll files, OLE DB providers referenced by queries, and automation objects reference in Transact-SQL statements. The default size of this memory is 128 MB, which is usually fine for most SQL Server installations. Keep in mind that SQL Server installations under 2 GB (SQL Server 2000 Standard Edition) or 3 GB (Enterprise Edition) will only use 128 MB no matter what size you set with the -g parameter. You can however, use this parameter to optimize the memory on installations above the 2 GB and 3 GB cutoffs. Microsoft recommends that you do not use this parameter unless you see the following error in your error log.

    WARNING: Clearing procedure cache to free contiguous memory

    However, I have used this and seen others use this parameter for errors such as:

    OLE DB provider ‘SQLOLEDB’ reported an error. The provider ran out of memory.

  • -m This parameter may be one of the most used, especially if you are studying for the SQL Server tests. The -m parameter will start SQL Server in the single user mode and enable the sp_configure allow updates configuration option. Starting SQL Server in the single user mode does not issue a CHECKPOINT command. This parameter allows you work on your system databases if you encounter a problem with one of them. If you ever have to rebuild your master database you will be familiar with this parameter.
  • -n This parameter turns off SQL Server logging its errors to the Windows application log. It is recommended that if you use this parameter you should also use the -e starup parameter, which you should be doing anyway. This is another parameter that I have not used and personally, I would not recommend turning off the Windows application logging.
  • -s This parameter is used to start a named instance of SQL Server. Without the use of this parameter, SQL Server will try to start the default instance, which may or may not be present or the one you want to start.
  • /Ttrace# Used to start a Trace Flag when you start SQL Server. This parameter is useful for general troubleshooting purposes.
  • -x This parameter will disable the keeping of the CPU time and CACHE-HIT ratio statistics. While this parameter allows maximum performance, I do not use it as the benefits of the CACHE-HIT ratio outweigh the small performance gain this parameter buys you.

Most of the time, you will not have to use these parameters but they are nice to know for that rare instance that you have system database problems or when you need to start a Trace Flag.

Copyright 2003 by Randy Dyess, All Rights Reserved


Leave a comment

Your email address will not be published.