Chapter 16 - Understanding Server, Database, and Query Options![]()
![]() SQL Server 6.5 has a number of ways of being configured. Those ways are roughly broken down into the three following areas:
Defining Server OptionsSQL Server provides a number of configuration options to enable varied and different installations of the server. These options are used to customize the way SQL Server's resources are managed. The sorts of resources that are available for management are the following:
SQL Server has two sets of server configuration options available. The default or basic server options contain the normal day-to-day sorts of things that will need to be managed. The advanced server options are provided to allow tuning of things in the server not generally considered necessary. Unless you have been advised by a technical support center to specifically configure one of the advanced options, it is not recommended that you change any of the advanced options. The advanced options can be enabled by turning on the configuration option, Show Advanced Option. For detailed instructions on how to set this and any option, see the section entitled Displaying and Setting Server Options later in this chapter.
Displaying and Setting Server OptionsSQL Server provides two ways to display and set configuration options for the server. The graphical method is via SQL Server Enterprise Manager. The Transact-SQL method is by using the system-stored procedure, sp_configure.
Using SQL Enterprise ManagerSQL Enterprise Manager is a very convenient tool for the DBA to use when changing server options. The user interface makes it unnecessary to remember the syntax required for sp_configure or to know all the different options.To use the SQL Enterprise Manager to display and set server options, perform the following steps:
Using the System-Stored Procedure sp_configuresp_configure is a system-stored procedure that is provided to allow the changing of settings on the server. sp_configure is useful for writing automated scripts that update the server without user intervention.Sp_configure's syntax is as follows:
Listing 16.1sp_configure Requires Only That the Option Being Changed is Uniquely Identified
Listing 16.2Executing sp_configure Without Any Options Returns the Current Server Configuration
Understanding the RECONfigURE commandAfter executing sp_configure, the server may return the following:
Listing 16.3Some sp_configure Options Require Reconfiguration of the Server
Listing 16.4reconfigure Forces SQL Server to Adjust the Run Value of a Server Option
allow updates RA cache hit limit backup buffer size RA cache miss limit free buffers RA delay LE threshold maximum RA pre-fetches LE threshold minimum recovery interval LE threshold percent remote logon timeout logwrite sleep (ms) remote query timeout max lazywrite IO resource timeout max worker threads show advanced option nested triggers sort pages network packet size spin counter
Server Options ExplainedThe following is a comprehensive list of all the available server options. If the word advanced appears in parentheses to the right of the keyword, then this option is only available if you have turned on the configuration value, Show Advanced Options. If the word dynamic appears in parentheses to the right of the keyword, then this option can be changed without the shutting down and restarting of the server. See the section on the RECONfigURE command above for more information.In each item below, there are indications of the minimim, maximum and default values. These values indicate the range of values that the item can have, and the default value to which SQL Server is configured when first installed.
Maximum: 1 Default: 0 The allow updates configuration option allows the system catalog to be updated. If the value is set to 1 (one) then the system catalog is updateable. Stored procedures created while the system catalog is updateable will be able to update the system catalog even when this value is returned to 0 (zero).
To start the server in single-user mode, execute sqlservr m from the Win32 command prompt. Because this option can cause so much harm, it requires an additional keyword, WITH OVERRIDE, when executing the RECONfigURE command. So the following is the correct syntax to enable allow updates.
Maximum: 10 Default: 1 This configuration option allows the tuning of backups by increasing or decreasing the amount of memory available to the SQL Server for holding backup data. The numeric value corresponds to 32 2K pages. So by setting the value to 4, the server will be allocating 4 [ts] 32 [ts] 2K = 256K for backups. A larger value will help reduce backup times but will also reduce available memory for the server.
Maximum: 32 Default: 5 This configuration option controls how many NT service threads will be allocated to striped backup and load operations. Increase this value from the default of 5 when running on multiple CPU machines to improve backup and load times.
Maximum: 2147483647 Default: 100 This configuration option controls how SQL Server decides to build the results to answer a request for a cursor by a client. The value corresponds to the number of rows expected in the cursor's result set. The accuracy of the cursor threshold is largely based on the currency of the INDEX statistics on the tables for which a cursor is being built. To ensure more accurate picking of the synchronous/asynchronous cursor build, make sure that the statistics are up-to-date on the base tables. If set to 1, SQL Server will always build the cursor results synchronously, meaning that the server will attempt to build the cursor immediately upon receiving the OPEN CURSOR command. Synchronous cursor generation is usually faster for small result sets. If set to 0, SQL Server will always build the cursor results asynchronously, meaning that the server will spawn an additional thread to answer the client and it will return control to the client while still processing other client requests. For large result sets this is the preferred option because it will stop the server from being bogged down answering a single client's request for a large cursor result.
Maximum: 10000 Default: 2 This option controls the default number of megabytes to reserve for a new database being created. If the majority of the databases that are being created on a given server are greater than 2MB, it would be advisable to change this value. If the model database grows to be greater than 2MB, it will be required to adjust this value.
Maximum: 9999 Default: 0 This option controls the default language ID to be used for the server. US English is the default and is always 0 (zero). If other languages are added to the server, they will be assigned different language Ids.
Maximum: 255 Default: 52 This option controls the sort order that the server will be using. The sort order controls the way SQL Server sorts data and returns it to the client. The default is Dictionary, Case Insensitive.
Maximum: 100 Default: 0 This configuration option controls the default fill factor to use when creating indexes. The fill factor refers to how much space SQL Server will reserve in an index page for the potential growth of key values on the index. This option is overridden if a fill factor is specified when the CREATE INDEX command is executed. A fill factor of 100 will force SQL Server to fill the index pages completely and should only be used for extremely static tables whose key values never change, grow, or are inserted into. Smaller fill factor values will allow/force SQL Server to reserve space on the index page for new values that may be added to the table/index after the initial table load.
Maximum: 524288 Default: 204 This configuration option controls the amount of memory that SQL Server must maintain when lazywriting to disk. Lazywriting increases throughput because values are "written" to memory instead of disk. If this threshold is hit, then the lazy writer forces information to disk to ensure that memory pages are maintained free. If a change is made to the memory configuration option, this option is automatically adjusted to five percent of the memory value. After the server has restarted, this value may be modified manually to any value within the range specified above.
Maximum: 265003 Default: 7993 This configuration option controls the amount of buckets that SQL Server reserves for hashing (or indexing) pages of data to memory. A bucket is a logical storage area or counter that SQL Server uses to hold values that it needs to identify memory pages. SQL Server's hashing algorithm requires that a prime number of buckets be made available for use; therefore, if a non-prime value is specified, SQL Server will pick the closest prime number to it. It is unlikely that this value will require modification unless the server has more than 160MB of RAM because 8000 [ts] 2K = 160 MB. Note that the default of 7993 really refers to the closest prime to 8000.
Maximum: 100 Default: 3 This configuration option controls the number of languages that SQL Server can store in the language cache simultaneously.
Maximum: 500000 Default: 200 This configuration option controls the maximum number of page locks that SQL Server will permit a single query before escalating a set of page locks on a table to a full table lock. If the number of pages is exceeded, SQL Server will force a table lockirrespective of the LE threshold percentage configured for the table. Lock escalation is performed to improve performance on the server because of unnecessary memory being allocated to manage the individual page locks.
Maximum: 500000 Default: 20 This configuration option controls the minimum number of page locks that SQL Server will require a single query to acquire before escalating a set of page locks on a table to a full table lock. This configuration option is provided so that the LE threshold percentage will not hit on tables with small numbers of pages of data.
LE threshold percent (dynamic)Minimum: 1Maximum: 100 Default: 0 This configuration option controls the percentage of page locks to pages of data in the table, that need to be acquired on a table before SQL Server will escalate the lock to a full table lock. A value of 0 (zero), the default, will not allow SQL Server to perform lock escalation unless the lock escalation threshold maximum is reached.
Maximum: 2147483647 Default: 5000 This configuration option controls the number of locks that the SQL Server can maintain at any time. Each lock consumes 32 bytes of RAM, and so increasing this value to a large number will most likely require more RAM to be made available to the server. For example, setting this value to 20,000 will result in 20,000 * 32 bytes = 640,000 bytes or 625K of RAM consumed just by the lock manager.
Maximum: 500 Default: 0 This option controls the number of milliseconds that SQL Server will wait to write a log entry to disk if the buffer is not full. This can have dramatic performance gains on highly DML active databases because it will force SQL Server to write larger blocks of memory to the log at one time, rather than requiring it write less than full blocks to disk. A value of 1 is provided to force SQL Server to always write to disk, which should only be used on systems that are extremely concerned about media failure and are not concerned with IO throughput performance. A value of 0 (zero) will force SQL Server to delay writes to disk if, and only if, there are other users on the system in the execute phase of their requests to the server.
Maximum: 255 Default: 8 This configuration option controls the maximum number of asynchronous IO requests that the SQL Server can make to the hardware devices. This value should only be changed from the default on systems that have more than eight physical disks with database devices on them or on systems that are using disk striping to improve performance.
Maximum: 255 Default: 8 This configuration option is used to tune the writes from the lazywriter to the real IO subsystem. This value is dynamically configurable, but can only be configured up to the value of actual max async IO. It is not recommended that this value be modified unless someone in your primary support center tells you to.
Maximum: 1024 Default: 255 This configuration option controls the maximum number of threads that SQL Server will spawn to handle database operations. By default, SQL Server will spawn at least one thread for each listener service that is installed. In addition, there will be a thread spawned for database checkpointing, lazywriting, and for the read ahead manager. The checkpointing process is a process or server operation that writes dirty (or changed) pages of data that are currently cached from memory directly to disk. The lazywriting process manages cached writes to disk and allows transactions to be batched together for a single I/O to disk containing multiple items instead of writing every transaction to disk as it occurs. The rest of the threads that are available are allocated for user processes that are making requests. If the number of users is greater than the number of available threads allocated by the server (up to the maximum here configured), then SQL Server will use the available threads in a pooling fashion. The next request by a user process that is received at the server will be assigned to the first thread that becomes available after it has completed its assigned task.
Maximum: 365 Default: 0 This configuration option controls the number of days that a given backup is expected to be retained before it can be reused. If this value is other than 0 (zero), SQL Server will warn the user that they are performing a backup over an existing backup that has not expired its number of retention days. This is a useful configuration for SQL Servers that are in remote areas where a full-time administrator is not available to manage the environment and where it is likely that the user may incorrectly reuse backup tapes that should be kept for a prescribed period.
It is impossible to stop a user from using the same tape twice. However, by using the media retention configuration option, you can stop them from using the tape too quickly after a backup is made. A good setting is 7, which will stop the tape from being used more than once a week.
Maximum: 1048576 Default: 4096 This configuration option controls the maximum number of 2K pages of memory that SQL Server will consume upon startup. To fully optimize your server for use as a database server, you should allocate all available memory to the server after subtracting the minimums required by Windows NT.
To help tune the amount of memory being consumed by SQL Server, you can use the DBCC MEMUSAGE command, which will report the way that memory has been allocated on the server and will also show the top 20 data pages and stored procedures that have been executed. Listing 16.5 shows an example of the output that is displayed without the buffer page top 20 or the stored procedure top 20. Listing 16.5Using dbcc memusage to Display Information About Memory in Use on the Server
Maximum: 1 Default: 1 This configuration option controls whether triggers will nest or be executed cascaded. If set to 0 (zero), SQL Server will only execute the first trigger that fires when an update or delete action occurs.
You can use the Nested Triggers configuration to stop SQL Server from allowing a trigger to cause another trigger to execute a procedure. Turning off this option will allow you to more closely examine the behavior of triggers in your application.
Maximum: 32767 Default: 4096 This configuration option controls the server-wide maximum network packet size that is requested by a client. If the client requests a size less than the value specified in the current value, SQL Server will accept it; however, greater values than the current value will be negotiated to the maximum value specified here. This option can improve performance on networks whose base topology supports wider or larger packets than TCP/IP's default of 4096 bytes. This is especially useful if you are running over a satellite service and wish to batch large packets of data to send through the satellite packet service. This option should be adjusted to a higher value for reporting-only databases that are not acquiring any locks on the datasets because it will allow larger batches of data to be sent to the client at one time, improving network throughput.
Maximum: 32767 Default: 20 This configuration option controls the maximum number of databases that SQL Server can maintain in an open condition at any one time. It should not be arbitrarily set to a high value because each open database does consume some server memory.
Check to see that you haven't exceeded the number of open databases on the server. If you have, use sp_configure to increase the number of open databases available on the server and retry to connect.
Maximum: 2147483647 Default: 500 This configuration option controls the maximum number of objects that SQL Server can hold in memory at one time. An object can be a table page, stored procedure that is executing, or any other object in the database. Increase this value if the server ever reports that the maximum number of objects has been exceeded. Take care when assigning values to this option because it may be necessary to allocate more memory to the server due to the consumption of memory resources by the open objects configuration option.
Maximum: 1 Default: 0 This configuration option controls the priority SQL Server will run at under Windows NT. The default is 0 (zero), meaning that SQL Server will run at a normally high priority, but will allow other tasks to request high threading priority too. If set to 1 (one), SQL Server will run at the highest priority under the Windows NT scheduler. This value should be set to 1 on systems that are dedicating Windows NT to run SQL Server.
Maximum: 99 Default: 30 This configuration option controls the proportion of memory that SQL Server grabs and allocates to store the stored procedures that have most recently been executed. For systems that have large amounts of stored procedures, it may be necessary to set this value higher than 30 percent if the total amount of memory available to SQL Server is relatively low. It is recommended that this value be reduced to 10 percent or less on systems with more than 512MB of RAM. It is extremely unlikely that the amount of stored procedures in memory cache will exceed 50MB.
Maximum: 255 Default: 4 This configuration option is used to control the number of hits in the data page cache that the Read Ahead Manager makes before canceling itself and allowing the query to fetch data from the data page cache, instead of the Read Ahead Manager.
Maximum: 255 Default: 3 This configuration option controls the number of data page cache misses that are acceptable to the SQL Server before the Read Ahead Manager is started. Setting this value to 1 will cause the Read Ahead Manager to be fired for every access of a data page. This will cause terrible performance and a lot of unnecessary disk thrashing.
Maximum: 500 Default: 15 This configuration option controls the number of milliseconds that the Read Ahead Manager will delay its own execution after a request has been made.
Maximum: 1000 Default: 3 This configuration option controls the number of extents (8 [ts] 2K pages) that the Read Ahead Manager will read ahead of the currently scanning execution position.
Maximum: 255 Default: 5 This configuration option controls the number of slots per thread that SQL Server will reserve for Read Ahead processes. The number of slots multiplied by the number of allocated worker threads is the total number of concurrent read ahead activities that may be executing.
Maximum: 255 Default: 3 This configuration option controls the number of Windows NT threads that SQL Server will allocate to the Read Ahead Manager. It is recommended that this value be configured to the maximum number of concurrent users expected on the system. With the option configured in this way, SQL Server will have a Read Ahead thread available to handle each user process.
Maximum: 1 Default: 0 This configuration option controls the information that is displayed during the SQL Server startup process. If set to 0 (zero), the default, then SQL Server will only report that the database is being recovered/restored by name. If set to 1 (one), then SQL Server will report in detail the status of every transaction that was pending at the time the server was shutdown, and what activity SQL Server took to resolve it.
Maximum: 32767 Default: 5 This configuration option controls the number of minutes that SQL Server will require to recover a database in the event that there is a system failure of some kind. This option combined with the amount of activity that is occurring on the server controls the amount of time between database CHECKPOINTS. A database CHECKPOINT forces the writing of all the changes to dirty data pages from the transaction log information to disk instead of residing in the transaction log buffers (or lazywriter buffers). A CHECKPOINT can take considerable time if there has been a lot of activity on the server, but frequent checkpointing will reduce the amount of time required to restart the server because it will not have to ROLLFORWARD as much work from the transaction log.
Maximum: 1 Default: 1 This configuration option controls whether remote SQL Servers are allowed logon access to the server. If set to 0 (zero), SQL Server will deny access to remote SQL Servers.
Maximum: 2147483647 Default: 5 This configuration option controls the amount of time (in seconds) that SQL Server will wait before returning an error to the client process that was requesting the logon to a remote server. Setting this value to 0 (zero) will cause the SQL Server to wait indefinitely.
Maximum: 2147483647 Default: 0 This configuration option controls the amount of time (in seconds) that SQL Server will wait before returning an error to the client process that was requesting the execution of a query on a remote server. Setting this value to 0 (zero) will cause the SQL Server to wait indefinitely.
Maximum: 2147483647 Default: 10 This configuration option controls the amount of time (in seconds) that SQL Server will wait before returning an error to the client process required a server resource. A server resource could be access to a memory buffer, a disk IO request, a network IO request, or a log IO request. This option should be increased if a large number of logwait or bufwait timeout warnings are in the SQL Server error log.
Maximum: 1 Default: 0 This configuration option controls whether SQL Server will request that Windows NT physically allocate and lock memory to the SQL Server. The amount allocated will be equal to the number of pages in the memory configuration option [ts] 2K, plus the amount of memory requested for Tempdb, if tempdb in RAM is configured on.
Maximum: 1 Default: 1 This configuration option controls whether SQL Server will display and allow the configuration of other advanced options through sp_configure. If set to 0 (zero), SQL Server will respond that an option does not exist if an advanced option is attempted to be changed.
Before being allowed to configure an advanced option, you must first make sure that you have enabled the show advanced option using sp_configure.
Maximum: 64 Default: 0 This configuration option controls how SQL Server will operate on a Symmetric Multi-Processing server. The default configuration for a single CPU computer is 0 (zero), which means auto-configuration mode. In auto-configuration mode, SQL Server allocates N1 CPUs to SQL Server from the Windows NT service scheduler, where N is the number of CPUs detected in the server when SQL Server starts. If SQL Server is installed with Dedicated SMP Support chosen, SQL Server will set this value to 1, which means that all CPUs will be dedicated to SQL Server. If the Windows NT server is not dedicated to running SQL Server and this value is configured to the maximum number of CPUs in the box, then this will result in poor performance for any other tasks (besides SQL Server) that are executing on the box.
Maximum: 511 Default: 128 This configuration option controls the number of pages that SQL Server will reserve per user for sorting and resolving queries. This value should be closely tuned to the user requirements of the system that is executing on the SQL Server. A higher value will generally result in better performance for systems that do a lot of queries that require data to be sorted in memory. Setting this value high will cause each user to consume larger amounts of available memory and may necessitate that more memory be dedicated to SQL Server.
Maximum: 2147483647 Default: 10000 This configuration option controls the maximum number of attempts SQL Server will make to acquire a resource from the SQL Server service manager. This is an advanced option and should not be altered unless you are advised to do so by a Microsoft Service Center.
Maximum: 2044 Default: 0 This configuration option controls the amount of memory that SQL Server will reserve for tempdb in RAM. If set to 0 (zero), tempdb will reside on a physical disk device (the default for which is MASTER's device). If set to any value other than 0 (zero), tempdb will be placed in a memory chunk. This memory chunk will be contiguously allocated. If tempdb is resized through the ALTER command while it resides in memory, additional contiguous chunks of memory corresponding to the required ALTER size will be allocated to it. However, these contiguous chunks may not necessarily be next to the chunks previously allocated. It is recommended that the server be shutdown and restarted if the size of tempdb is altered.
Maximum: 32767 Default: 20 This configuration option controls the maximum number of user processes that can connect to the server at one time. The logical limit is 32767; however, it is very likely that practical limits of server hardware will be exceeded before this limit is ever achieved. There is a minimum fixed overhead for each user connection of about 40K. If this value is set to a large value it may be necessary to allocate more memory to the SQL Server.
It's possible that you are running out of available user connections on the server. Use sp_configure to increase the number of user connections to a higher value so that more concurrent users are permitted.
Maximum: 0x7fffffff Default: 0 On SMP machines, affinity mask allows a thread to be associated with a processor. This is done using a bit mask. The processors on which the processes run is represented by each bit. Decimal or hexadecimal values can be used to specify values for this setting.
Maximum: 32767 Default: 60 This value represents the number of minutes that may pass without activity for a server-to-server connection. If the value is exceeded, the non-active session will be terminated. The only exception to this is when the connection is involved in a DTC-coordinated distribution transaction.
Maximum: 1 Default: 0 This feature allows users to protect the actions of a server-to-server procedure through a DTC-coordinated distributed transaction. When set to true, it provides a DTC transaction that protects certain properties of transactions. After this option is set, new sessions will inherit the configuration setting as their default.
Maximum: 4095 Default: 0 The user options are used to set global defaults for users logging into the system. After a change is made, all new logins will be affected but existing logins will not change. Users can override these values by using the SET statement.
SYSCONfigURES has information about the available options and their defaults that the server has created. Note that the sp_configure option that you see comes from the spt_values table in the master database. Rather than relying on the formatted results returned from sp_configure, it's sometimes necessary to be able to select back (and process in a result set) the configurations available and configured on the server. In Listing 16.6, the query shows you the defaults for all the configurable options in the server. Listing 16.6 16_01.SQLQuerying the SYSCONfigURES Table to Review the Defaults.
SYSCURCONfigS stores the currently configured values that are being used by the server. In Listing 16.7 the query shows how to get the current values for each of the configurable options in the server. Using SYSCONfigURES and SYSCURCONfigS together will allow you to write your own programs to dynamically set options and report options on the server. Listing 16.7 16_02.SQLQuerying the SYSCURCONfigS Table to Review the Current Server Configurations
Defining Database OptionsSQL Server has several options available at a per database level that enable the database administrator (DBA) to configure how different databases perform/act on a given server.
Displaying and Setting Database OptionsSQL Server provides two ways to display and set configuration options for the database. The graphical method is via SQL Server Enterprise Manager. The command-line method is by using the system-stored procedure, sp_dboption.
Using SQL Enterprise ManagerTo configure a database using SQL Enterprise Manager, follow these steps:
Using sp_dboptionThe system-stored procedure sp_dboption can be used instead of the SQL Enterprise Manager to set options for the database. The syntax for sp_dboption is as follows:
database option is the name of the option being viewed/changed. Place quotation marks around the option being set if it contains any embedded spaces. database value is the new value for the option. If no parameters are supplied to sp_dboption, it will return the available parameters that can be set for any current database. In Listing 16.8, you can see sp_dboption being executed without parameters. Listing 16.8Using sp_dboption to Report All the Configurable Database Options
Listing 16.9 Seeing the set Option on a Database Using sp_dboption
Database Options ExplainedThe following is a list of all the database options that are available for configuration in user databases. In parentheses following the option name is the equivalent name that SQL Enterprise Manager uses for the option. Options without equivalent commands in SQL Enterprise Manager must be set with sp_dboption.
If the database scripts being used to create a table or set of tables have been created for an ANSI compatible database, it will be necessary to have this option turned on so that the tables generated/created behave the same way as they would on another ANSI compatible database.
If multiple databases are being used in a Primary and Secondary fashion and transaction logs are being rolled forward from one database to another, this option should be turned on. It will stop the database from rejecting further transaction logs being applied.
Databases that have currently connected or active users cannot be placed offline until those users disconnect. An offline database is not recovered when the server is restarted.
This option must be enabled if bulkcopy (BCP) operations are to be executed against a database table without indexes. However, if a table has indexes, SQL Server will always use the slow load algorithm so that it has a chance to update the indexes.
Either perform more frequent manual dumping of the transaction logs, enlarge your logs, or use Performance Monitor to run a batch file that will dump the logs when the logs are approaching a full state. For information on Performance Monitor, see Chapter 17, "Optimizing Performance"
Understanding Query OptionsSQL Server has a number of individual options that can be set while querying the database. These options control the behavior of queries when they are executed. They are also useful statistical and informational gatherers that can be helpful in diagnosing query problems, such as queries that run really slow for no apparent reason.
Displaying and Setting Database OptionsSQL Server provides two ways to display and set configuration options for a query. The graphical method is via ISQL/w or through the Query Analyzer of SQL Server Enterprise Manager. The command-line method is by using the system keyword SET.
Using ISQL/wTo use ISQL/w to set or view query options, perform the following steps:
Query Options ExplainedThe following is a list of all the query options that are configurable and what they do. In parentheses following the SET option is the equivalent in ISQL/w.
In Listing 16.10, Arithabort is used to stop a command batch from continuing with invalid data: Listing 16.10 16_03.SQLUsing the Arithabort Option
Listing 16.11 16_04.SQLUsing arithignore to Ignore Arithmetic Overflows
Listing 16.12 16_5.SQLUsing NOCOUNT to Stop the Reporting of Rows Affected by SQL
For a complete and detailed discussion on interpreting the SHOWPLAN output, refer to Chapter 23, "Understanding SHOWPLAN Output," in Microsoft's SQL Server Administrator's Companion. Fig. 16.7 - ISQL/w's graphical SHOWPLAN output can help you understand how a query is being performed.
Starting the Server in Minimal Configuration ModeMinimal configuration mode is a mode of last resort that should only be used when the server fails to start because of an invalid configuration specified with sp_configure. Minimal configuration mode starts the minimum number of services to allow the reconfiguration of the server. Minimal configuration mode is provided in SQL Server 6.0 in place of SQL Server 4.2's and Sybase's bldmaster executable. Prior to version 6.0 of SQL Server the configuration options were written to the bldmaster file and if the server was unstartable, it was necessary to edit this file manually.
A server started in minimal configuration mode has the following limitations:
Starting SQL Server in Minimal Configuration Mode from the Command lineTo start the server in minimal configuration mode from the command line, perform the following steps:
Starting SQL Server in Minimal Configuration Mode with the Services Application in Control PanelTo start the server in minimal configuration mode from using the Services application in Control Panel, perform the following steps:
Repairing a Server Started in Minimal Configuration ModeThere may be several things that you will need to do to repair a server that has needed to be started in minimal configuration mode.If you started your server in minimal configuration mode to reset a configuration, then this is what you should do:
If you started your server in minimal configuration mode because the server ran out of disk space then, this is what you should do:
From Here...In this chapter you learned how to configure your server, database, and queries to get optimal performance and to maximize your use of the server. Take a look at the following chapters for more information:
|