1. Trang chủ
  2. » Công Nghệ Thông Tin

Hướng dẫn học Microsoft SQL Server 2008 part 94 pdf

10 424 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 673,83 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TABLE 39-1 Start/Stop Configuration Properties AutoStart SQL Server S Configuration Manager, or Services Console -AutoStart SQL Server Agent S Configuration Manager, or Services Console

Trang 1

two digit year cutoff 1753 9999 2049 2049

The key difference between the preceding two methods to display advanced options

is that the sys.configurations catalog view only displays the configurations The

show advanced options configuration not only controls the display of advanced options through

sp_configure system stored procedure, it also controls whether these advanced options can be

changed.

Start/Stop configuration properties

The startup configuration properties, described in Table 39-1, control how SQL Server and the processes

are launched

Startup parameters

You use the startup parameters with the SQL Server services The startup parameters are passed as

parameters to the SQL Server program when the SQL Server service is started Although you can add

startup parameters from the Services console, I highly recommend using the SQL Server Configuration

Manager, shown in Figure 39-4 One of the main reasons has to do with minimizing downtime

The Configuration Manager allows you to add startup parameters with the SQL Server service still

running You can restart the service during a maintenance window and minimize downtime Also,

the Configuration Manager is the only method for a SQL Server failover clustering instance, as it is a

cluster-aware tool, whereas the Services console is not

TABLE 39-1

Start/Stop Configuration Properties

AutoStart SQL Server S Configuration Manager,

or Services Console

-AutoStart SQL Server

Agent

S Configuration Manager,

or Services Console

-AutoStart MS DTC S Services Console

-Scan for startup procs S - EXEC sp_configure ‘scan

for startup procs’

* The configuration level refers to Server, Database, or Connection.

Trang 2

FIGURE 39-4

Add startup parameters to the SQL Server service to change its behavior

To add the startup parameters in SQL Server Configuration Manager:

1 Open SQL Server Configuration Manager from Start➪ Programs ➪ Microsoft SQL Server 2008

➪ Configuration Tools ➪ SQL Server Configuration Manager

2 Click SQL Server Services under SQL Server Configuration Manager.

3 Right-click the SQL Server service (on the right-hand side) to which you want to add startup

parameters and select the Advanced tab

4 On the Advanced tab, in the Startup Parameters box, type the startup parameters separated by

semicolons (refer to Figure 39-4)

Besides the standard master database location parameters, two parameters are particularly useful:

■ -m: Starts SQL Server in single-user mode This is required to restore the master database

■ -f: Used to start up with a minimal configuration

Additional startup parameters are as follows:

■ -d: Used to include the full path of the master database file, with no spaces between thed

and the path

■ -l: Used to include the full path of the master database log file, with no spaces between thel

and the path

Trang 3

■ -e: Used to include the full path of the SQL Server error log file, with no spaces between the

eand the path

■ -c: Starts SQL Server so that it is not running as a Windows service

■ -x: Allows maximum performance by disabling monitoring features Because the monitoring features are disabled, your ability to troubleshoot performance and functional problems will be greatly reduced

■ -g: Specifies virtual memory (in MB) available to SQL Server for memory allocations within the SQL Server process, but outside the SQL Server memory pool (extended procedure dllfiles, the OLE DB providers referenced by distributed queries, and automation objects referenced in Transact-SQL statements)

■ -n: Disables logging to the Windows application log

■ -s: Used to start a named instance of SQL Server The instance name follows directly after the

s, with no spaces in between

■ -Ttrace#: Enables trace-specific flags by trace flag number Refer to the SQL Server 2008 Books Online topic ‘‘Trace Flags’’ for documented trace flags I do not recommend using trace flags for an extended period of time I usually use trace flags for troubleshooting SQL Server issues and then remove them once the issue is resolved Also, never use undocumented trace flags, as they can cause more damage, rather than assist you in solving any issue

■ -h: Assuming your hardware allows you to add physical memory without restarting the server, use this option to enable SQL Server to immediately begin using the hot-add memory This

is only available on SQL Server Enterprise Edition and can be used on 64-bit SQL Server and 32-bit SQL Server with AWE enabled

Startup stored procedures

SQL Server can be configured to scan for a startup stored procedure every time the SQL Server

starts — similar to how Microsoft DOS operating systems scan for theautoexec.batfile when they

boot up All the startup procedures need to be in the master database but there is no limit on the

number of startup procedures The key is to remember that each startup procedure will consume one

worker thread while executing it To mark an existing stored procedure to execute automatically when

SQL Server starts, use thesp_procoptionsystem stored procedure as follows:

EXEC sp_procoption @ProcName = ‘ExistingSP’,

@OptionName = ‘startup’,

@OptionValue = ‘on’;

You use the samesp_procoptionsystem stored procedure to stop a stored procedure from executing

at SQL Server startup:

EXEC sp_procoption @ProcName = ‘ExistingSP’,

@OptionName = ‘startup’,

@OptionValue = ‘off’;

Although you can individually mark a stored procedure for automatic execution at SQL Server startup,

you can further control the execution of all the startup stored procedures by using thescan for

startup procsconfiguration option If this option is set to 1, SQL Server scans for and runs all

stored procedures marked for automatic execution at startup The default value of this option is 0,

Trang 4

which skips automatic execution of startup stored procedures Thescan for startup procs

configuration option is automatically set to 1 when you executesp_procoptionto mark the first

stored procedure for automatic execution, and is set to 0 when you unmark the last stored procedure

for automatic execution The following code can be used to skip automatic execution for all startup

stored procedures:

EXEC sp_configure ‘scan for startup procs’, 0;

RECONFIGURE;

Memory-configuration properties

SQL Server can either dynamically request memory from the operating system or consume a fixed

amount of memory These settings can be configured on the SQL Server Properties Memory tab, shown

in Figure 39-5, or from code by means of thesp_configurestored procedure

FIGURE 39-5

Memory tab of Management Studio’s SQL Server Properties dialog

The memory-configuration properties, listed in Table 39-2, control how SQL Server uses and allocates

memory

Trang 5

TABLE 39-2

Memory-Configuration Properties

Dynamic Memory

Minimum

S Management Studio EXEC sp_configure ‘min server

memory’

Dynamic Memory

Maximum

S Management Studio EXEC sp_configure ‘max server

memory’

Fixed Memory Size S Management Studio EXEC sp_configure ‘min server

memory’and EXEC sp_configure

‘max server memory’

Minimum Query Memory S Management Studio EXEC sp_configure ‘min memory

per query’

Query Wait S Management Studio EXEC sp_configure ‘query

wait’

AWE Enabled S Management Studio EXEC sp_configure ‘AWE

Enabled’

Index Create Memory S Management Studio EXEC sp_configure ‘index

create memory’

* The configuration level refers to Server, Database, or Connection.

The configuration options set working set size , open objects , and locks are still present in the sp_configure stored procedure, but their functionality is unavailable in Microsoft SQL Server 2008 These options have no effect Do not use them in new development work,

as they may be removed in future SQL Server versions.

Dynamic memory

If SQL Server is set to use memory dynamically, then SQL Server’s memory can grow or be reduced as

needed within the minimum and maximum constraints based on the physical memory available and the

workload The goal is to have enough memory available while avoiding Windows needing to swap pages

from memory to the virtual-memory support file (pagefile.sys)

The minimum-memory property prohibits SQL Server from reducing memory below a certain point and

hurting performance, but it does not guarantee that SQL Server will immediately allocate the minimum

amount of memory at startup The minimum simply means that once SQL Server memory has reached

that point, it will not reduce memory below it

The maximum-memory setting prevents SQL Server from growing to the point where it contends with

the operating system, or other applications, for memory If the maximum is set too low, then

perfor-mance will suffer

Multiple SQL Server instances do not cooperate when requiring memory In servers with multiple

instances, it’s highly possible for two busy instances to contend for memory and for one to become

Trang 6

memory-starved Reducing the maximum-memory property for each instance can prevent this from

happening

From T-SQL code, the minimum- and maximum-memory properties are set by means of the

sp_configuresystem stored procedure It’s an advanced option, so it can be changed only if the

show advanced optionsproperty is on:

EXEC sp_configure ‘show advanced options’, 1;

RECONFIGURE;

The show advanced options property needs to be enabled only if it is not already turned

on Once it is turned on, you can change the advanced options and then reset it to the

default value of 0.

The following code sets the min-memory configuration to 1GB:

EXEC sp_configure ‘min server memory’, 1024;

RECONFIGURE;

Result:

Configuration option ‘min server memory (MB)’

changed from 0 to 1024

Run the RECONFIGURE statement to install

This code sets the max-memory configuration to 4GB:

EXEC sp_configure ‘max server memory’, 4096;

RECONFIGURE;

Result:

Configuration option ‘max server memory (MB)’

changed from 2147483647 to 4096

Run the RECONFIGURE statement to install

Fixed memory

Instead of dynamically consuming memory, SQL Server may be configured to request a fixed amount of

memory from the operating system To set a fixed amount of memory from code, set the minimum- and

maximum-memory properties to the same value The following code sets the SQL Server memory to a

fixed memory of 6144MB:

EXEC sp_configure ‘show advanced options’, 1;

RECONFIGURE;

EXEC sp_configure ‘min server memory’, 6144;

RECONFIGURE;

EXEC sp_configure ‘max server memory’, 6144;

RECONFIGURE;

Although calculating memory cost, polling the environment, and requesting memory may seem as if they

would require overhead, you aren’t likely to see any performance gains from switching from dynamic to

fixed memory The primary purpose of using fixed memory is to configure a dedicated SQL Server

com-puter to use a fixed amount of memory after the value is reached

Trang 7

Minimum query memory

At times, the SQL Server team amazes me with the level of detailed control it passes to DBAs SQL

Server will allocate the required memory for each query as needed.The min memory per query

option sets the minimum threshold for the memory (in KB) used by each query While increasing this

property to a value higher than the default 1MB may provide slightly better performance for some

queries, there is no reason to override SQL Server automatic memory control and risk causing a memory

shortage If you insist on doing so, however, here’s how — the following code increases the minimum

query memory to 2MB:

EXEC sp_configure ‘show advanced options’, 1;

RECONFIGURE;

EXEC sp_configure ‘min memory per query’, 2048;

RECONFIGURE;

Query wait

If the memory is unavailable to execute a large query, SQL Server will wait for the estimated amount of

time necessary to execute the query times 25 and then time out

Usually, you don’t need to change thequery waittime, but if you have a valid reason to change this

option, you can either use Management Studio or TSQL-code In Management Studio, set thequery

waitoption by entering the value in the ‘‘query wait’’ box in the Server Properties Advanced tab (refer

to Figure 39-9 later in this chapter)

The following code specifies that every query will either start executing within 20 seconds or time out:

EXEC sp_configure ‘show advanced options’, 1;

RECONFIGURE;

EXEC sp_configure ‘query wait’, 20;

RECONFIGURE;

Note that to revert to the default wait time of the estimated execution time times 25, you must specify

the query wait time as -1

AWE enabled

On 32-bit operating systems, SQL Server is normally restricted to the standard 2GB physical-memory

limit (or 3GB if the/3GBswitch is used inboot.ini) On 64-bit operating systems, theawe enabled

option is ignored even though it is present in thesp_configurestored procedure

SQL Server x86 Standard, Enterprise, and Developer Editions, when running on Windows Server 2003

or 2008 Enterprise or Datacenter Editions, can use up to 64GB of physical memory if SQL Server is

configured to address the Address Windowing Extensions (AWE) API The AWE-enabled property turns

on AWE memory addressing within SQL Server:

EXEC sp_configure ‘show advanced options’, 1;

RECONFIGURE;

EXEC sp_configure ‘awe enabled’, 1;

RECONFIGURE;

Trang 8

The Windows privilege LOCK PAGES IN MEMORY must be granted to the SQL Server service

account before enabling awe A system administrator can use the Windows Group Policy

tool ( gpedit msc ) to enable this privilege for the SQL Server service account.

The SQL Server instance must be restarted in order for the awe enabled option to take

effect If the awe enabled option is configured successfully, then the SQL Server error log

file will include an ‘‘Address Windowing Extensions enabled’’ message when the SQL Server restarts.

Index create memory

The amount of memory SQL Server uses to perform sorts when creating an index is generally

self-configuring However, you can control it by usingsp_configureto hard-code a certain memory

footprint (in KB) for index creation For example, the following code sets the memory used to create an

index to 8MB:

EXEC sp_configure ‘show advanced options’, 1;

RECONFIGURE;

EXEC sp_configure ‘index create memory’, 8096;

RECONFIGURE;

Processor-configuration properties

You can use the processor-configuration properties (listed in Table 39-3) to control how SQL Server

uses multi-processor computers

TABLE 39-3

Processor-Configuration Properties

Processors Used S Management Studio EXEC sp_configure

‘affinity mask’

Maximum Worker Threads S Management Studio EXEC sp_configure ‘max

worker threads’

Boost SQL Server Priority on

Windows

S Management Studio EXEC sp_configure

‘priority boost’

Use Windows NT Fibers S Management Studio EXEC sp_configure

‘lightweight pooling’

Number of processors for

parallel execution of queries

S Management Studio EXEC sp_configure ‘max

degree of parallelism’

Minimum query plan threshold

for parallel execution

S Management Studio EXEC sp_configure ‘cost

threshold for parallelism’

* The configuration level refers to Server, Database, or Connection.

Trang 9

The Processors tab (see Figure 39-6) of the SQL Server Properties page determines how SQL Server will

use multi-processor computers Most of these options are moot in a single-processor server

FIGURE 39-6

The Processors tab shows the processors available on the system and enables you to set how SQL

Server uses them

Processor affinity

In a multi-CPU server, the operating system can move processes to CPUs as the load requires The SQL

Server processor affinity, or the relationship between a task and a CPU, can be configured on a per-CPU

basis By enabling the affinity between SQL Server and a CPU, you make that CPU available to SQL

Server, but it is not dedicated to SQL Server Therefore, while a CPU can’t be forced to run SQL Server,

it can be segmented from SQL Server

SQL Server supports processor affinity by means of two affinity mask configuration options:affinity

mask(also referred to as CPU affinity mask) andaffinity I/O mask Theaffinity mask

con-figuration option enables you to specify which CPUs on a multi-processor computer are to be used to

run threads from SQL Server Theaffinity I/O maskconfiguration option enables you to specify

which CPUs are configured to run SQL Server threads related to I/O operations These two

configura-tion opconfigura-tions give you the ability to allocate particular CPUs for disk I/O processing and particular CPUs

for non-disk-related CPU requirements

Trang 10

The affinity mask is a bitmap whereby the rightmost bit specifies the lowest-order CPU(0), the next

rightmost bit specifies the next lowest-order CPU(1), and so on A one-byte (eight bits) mask covers 8

CPUs in a multi-processor server, a two-byte mask covers up to 16 CPUs, a three-byte mask covers up

to 24 CPUs, and a four-byte mask covers up to 32 CPUs A one bit specifies that the corresponding

CPU is allocated, and a zero bit specifies that the corresponding CPU is not allocated

When you are configuring the affinity mask option, you must use it in conjunction with the affinity I/O

mask I recommend against enabling the same CPU for both affinity mask and affinity I/O mask

configu-ration options The bit corresponding to each CPU should be one of the following:

■ 0 for both theaffinity maskandaffinity I/O maskoptions

■ 1 for theaffinity maskand 0 for theaffinity I/O maskoption

■ 0 for theaffinity maskand 1 for theaffinity I/O maskoption

For example, suppose that on an 8-CPU system you want to allocate CPUs 0, 1, 2, and 3 for processing

SQL Server threads, CPUs 4 and 5 for disk I/O processing, and CPUs 6 and 7 for other non-SQL Server

activities This means the last four bits will be one for theaffinity maskbitmap (00001111), which

is 15 in decimal, and the fifth and sixth bits will be one for theaffinity I/O mask(00110000),

which is 48 in decimal:

EXEC sp_configure ‘show advanced options’, 1;

RECONFIGURE;

EXEC sp_configure ‘affinity mask’, 15;

RECONFIGURE;

EXEC sp_configure ‘affinity I/O mask’, 48;

RECONFIGURE;

Theaffinity masksetting takes effect immediately without requiring a restart of the SQL Server

ser-vice, whereas theaffinity I/O masksetting takes effect only after restarting the SQL Server service

The default value of 0 for the affinity mask option indicates that all the processors on

the server are available for processing SQL Server threads The default value of 0 for the

affinity I/O mask option indicates that any CPUs that are eligible to process SQL Server threads are

available for disk I/O processing.

In Management Studio, processor affinity is configured by means of the check boxes in the Server

Prop-erties Processors tab (refer to Figure 39-6)

Affinity support for SQL Servers with 33 to 64 processors is available only on 64-bit SQL

Servers and requires the additional use of the affinity64 mask and affinity64 I/O mask

configuration options.

Max worker threads

SQL Server is a multi-threaded application, meaning that it can execute on multiple processors

concur-rently for increased performance Multi-threaded applications also allow more efficient use of a single

processor, because this allows another task to execute while a task waits for a process that doesn’t use

the CPU to finish The threads are designed as follows:

■ A thread for each network connection

■ A thread to handle database checkpoints

■ Multiple threads to handle user requests When SQL Server is handling a small number

of connections, a single thread is assigned to each connection However, as the number of

Ngày đăng: 04/07/2014, 09:20

TỪ KHÓA LIÊN QUAN