SAP ASE Reference Manual Configuration Parameters en PDF
SAP ASE Reference Manual Configuration Parameters en PDF
1 Configuration Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.1 abstract plan cache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 abstract plan dump. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3 abstract plan dynamic replace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 abstract plan load. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 abstract plan replace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
1.6 abstract plan sharing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
1.7 additional network memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.8 aggressive task stealing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
1.9 allocate max shared memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.10 allow backward scans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.11 allow nested triggers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
1.12 allow procedure grouping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.13 allow remote access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.14 allow resource limits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.15 allow sendmsg. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.16 allow sql server async i/o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.17 allow updates to system tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.18 average cap size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.19 audit queue size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.20 auditing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.21 automatic cluster takeover. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.22 bind backupserver address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.23 builtin date strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.24 caps per ccb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.25 capture compression statistics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.26 capture missing statistics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.27 check password for digit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.28 cipc large message pool size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.29 cipc regular message pool size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.30 cis bulk insert array size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
1.31 cis bulk insert batch size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.32 cis connect timeout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.33 cis cursor rows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.34 cis idle connection timeout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.35 cis packet size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
A configuration parameter is a user-definable setting that you set with sp_configure. Configuration
parameters are used for a wide range of services, from basic to specific server operations, and for
performance tuning. SAP ASE supplies default values for all configuration parameters.
For information about setting configuration parameters, or permission requirements, see System
Administration Guide: Volume 1 > Setting Configuration Parameters.
To find the maximum supported values for your platform and version of SAP ASE, see System Requirements in
the SAP ASE installation guide for your platform.
Summary Description
Status Dynamic
abstract plan load must be enabled for plan caching to take effect.
See Performance and Tuning Series: Query Processing and Abstract Plans > Creating and Using Abstract Plans.
Related Information
Enables the saving of abstract plans to the ap_stdout abstract plans group.
Summary Description
Status Dynamic
See Performance and Tuning Series: Query Processing and Abstract Plans > Creating and Using Abstract Plans.
The abstract plan dynamic replace configuration parameter will ignore the plan hint in the plan clause, and
force the query to use the plan hint in sysqueryplans.
The abstract plan dynamic replace configuration parameter supports the use of parameterized SQL
text.
For example, sysqueryplans may have a plan hint '( i_scan ind tab)' that is used for for query
select count(*) from tab.
In the following example, '( t_scan tab )' is the abstract plan hint in plan clause:
When abstract plan dynamic replace is not enabled, the query uses the '( t_scan tab )' plant hin
in plan clause.
When abstract plan dynamic replace is enabled, the query uses the '( i_scan ind tab)' plan hint
in sysqueryplans, thereby ignoring the plant hint in plan clause, and forcing the query to use the plan hint in
sysqueryplans.
See Performance and Tuning Series: Query Processing and Abstract Plans > Introduction to Abstract Plans >
Parameterized SQL Text for details on how to use abstract plan dynamic replace with parameterized
SQL text.
Status Dynamic
abstract plan replace is ignored when abstract plan dynamic replace is enabled.
See Performance and Tuning Series: Query Processing and Abstract Plans > Creating and Using Abstract Plans.
Related Information
Enables association of queries with abstract plans in the ap_stdin abstract plans group.
Summary Description
Status Dynamic
See Performance and Tuning Series: Query Processing and Abstract Plans > Creating and Using Abstract Plans.
Enables plan replacement for abstract plans in the ap_stdout abstract plans group.
Summary Description
Status Dynamic
abstract plan load must be enabled for replace mode to take effect.
abstract plan replace is ignored when abstract plan dynamic replace is enabled.
See Performance and Tuning Series: Query Processing and Abstract Plans > Creating and Using Abstract Plans.
Related Information
Summary Description
Status Dynamic
Tables of a query using a shared abstract plan must be explicitly prefixed with the owner name or belong to the
DBO user.
Sets the amount of additional memory allocated to the network memory pool.
Summary Description
Default value 0
Status Dynamic
Usage
You must increase the size of the network memory pool if you configure the max network packet size
greater than the default network packet size. SAP ASE rounds down the value you enter to the nearest 2K
value.
When a login requests a large packet size, SAP ASE verifies it has sufficient memory available to satisfy the
request. If it does not, SAP ASE finds the largest available block of memory and tries the appropriate size
(which is a multiple of default network packet size) less than the largest memory block. If that fails,
SAP ASE decreases the value of the request by the number of bytes equal to default network packet
size, if this is available. SAP ASE continues for 10 iterations, or until the size equals the value of default
network packet size, whichever comes first. On the tenth iteration, SAP ASE uses the value of the
default network packet size for the packet size.
Note
Users may be able to connect to SAP ASE with a larger packet size with additional network memory
set to zero because of system-configured overhead in the network memory pool.
If you increase max network packet size but do not increase additional network memory, SAP ASE
does not guarantee that clients who request network packet sizes larger than the default size can login at the
requested packet size.
Increasing additional network memory may improve performance for applications that transfer large
amounts of data. To determine the value for additional network memory when your applications use
larger packet sizes:
1. Estimate the number of simultaneous users who will request the large packet sizes, and the sizes their
applications will request,
2. Multiply this sum by three, since each connection needs three buffers,
3. Add two percent for overhead for 32-bit servers, or four percent for 64-bit servers, and
4. Round the value to the next highest multiple of 2048.
For example, if you estimate these simultaneous needs for larger packet sizes:
bcp 8192
Client-Library 8192
Client-Library 4096
Client-Library 4096
Total 24576
Related Information
Summary Description
Status Dynamic
Determines whether SAP ASE allocates all the memory specified by max memory at start-up, or only the
amount of memory the configuration parameter requires.
Summary Description
Status Dynamic
By setting allocate max shared memory to 0, you ensure that SAP ASE uses only the amount of shared
memory required by the current configuration, and allocates only the amount of memory required by the
configuration parameters at start-up, which is a smaller value than max memory.
If you set allocate max shared memory to 1, SAP ASE allocates all the memory specified by max memory
at start-up. If you set allocate max shared memory to 1, and if you increase max memory, SAP ASE
A successful memory allocation means that SAP ASE always has the memory required for any memory
configuration changes you make and there is no performance degradation while the server readjusts for
additional memory. However, if you do not predict memory growth accurately, and max memory is set to a
large value, you may waste total physical memory.
Related Information
Controls how the optimizer performs select queries that contain the order by...desc command.
Summary Description
Status Dynamic
● When the value is set to 1, the optimizer can access the index or table rows by following the page chain in
descending index order.
● When the value is set to 0, the optimizer selects the rows into a worktable by following the index page
pointers in ascending order, and then sorts the worktable in descending order.
The first method—performing backward scans—can speed access to tables that need results ordered by
descending column values. Some applications, however, may experience deadlocks due to backward scans. In
particular, look for increased deadlocking if you have delete or update queries that scan forward using the
same index. There may also be deadlocks due to page splits in the index.
Use print deadlock information to send messages about deadlocks to the error log. Alternatively, you
can use sp_sysmon to check for deadlocking. See the Performance and Tuning Series: Locking and
Concurrency Control.
Summary Description
Status Static
When the value is set to 1, data modifications made by triggers can fire other triggers. Set allow nested
triggers to 0 to disable nested triggers. A set option, self_recursion, controls whether the modifications
made by a trigger can cause that trigger to fire again.
Note
The multiple triggers feature does not change the behavior of the allow nested triggers configuration
parameter.
Controls the ability to group stored procedures of the same name so that they can be dropped with a single
drop procedure statement.
Summary Description
Status Dynamic
Summary Description
Status Dynamic
The default value of 1 allows SAP ASE to communicate with Backup Server.
Note
Setting the value to 0 disables server-to-server RPCs. Since SAP ASE communicates with Backup Server
via RPCs, setting this parameter to 0 makes it impossible to back up a database.
Since other system administration actions are required to enable remote servers other than Backup Server to
execute RPCs, leaving this option set to 1 does not constitute a security risk.
Summary Description
Status Static
When the value is set to 1, the server allocates internal memory for time ranges, resource limits, and internal
server alarms. The server also internally assigns applicable ranges and limits to user sessions. The output of
showplan and statistics io displays the optimizer’s cost estimate for a query. Set allow resource
limits to 0 to disable all resource limits.
Enables or disables sending messages from SAP ASE to a User Datagram Protocol (UDP) port.
Summary Description
Status Dynamic
When allow sendmsg is set to 1, any user can send messages using sp_sendmsg or syb_sendmsg.
Note
Sending messages to UDP ports is not supported on Windows.
Summary Description
Status Static
To use asynchronous disk I/O, enable it on both SAP ASE and your operating system. See your operating
system documentation for information on enabling asynchronous I/O at the operating system level.
Disk I/O always runs faster asynchronously than synchronously. This is because when SAP ASE issues an
asynchronous I/O, it does not have to wait for a response before issuing further I/Os.
Enables users with the system administrator role to make changes to the system tables and to create stored
procedures that can modify system tables.
Summary Description
Status Dynamic
A database administrator can update system tables in any tables that he or she owns if allow updates to
system tables is enabled.
Caution
Incorrect alteration of a system table can result in database corruption and loss of data. To protect
against errors that might corrupt your databases, always use begin transaction when modifying a
system table. Immediately after finishing your modifications, disable allow updates to system
tables.
Stored procedures and triggers you create while allow updates to system tables is set on can update
the system tables, even after the parameter has been set off. When you set allow updates to system
tables to on, you create a “window of vulnerability,” a period of time during which users can alter system
tables or create a stored procedure with which the system tables can be altered in the future.
Because the system tables are so critical, SAP suggests that you set this parameter to on only in highly
controlled situations. To guarantee that no other users can access SAP ASE while the system tables can be
directly updated, restart SAP ASE in single-user mode. For details, see startserver and dataserver in the
Utility Guide.
Note
The server-wide configuration option allow updates to system tables takes precedence over the
stored procedure settings for allow updates to system tables. If you do not enable allow updates
to system tables at the server level, individual stored procedure settings determine whether you can
modify system catalogs.
Summary Description
Status Static
Required role
Determines the size of an audit queue. The in-memory audit queue holds audit records generated by user
processes until the records can be processed and written to the audit trail.
Summary Description
Status Dynamic
When you configure the queue suze, there is a trade-off between performance and risk. If the queue is too
large, records can remain in it for some time. As long as records are in the queue, they are at risk of being lost
if the system fails. However, if the queue is too small, it can repeatedly become full, which affects overall
system performance; user processes that generate audit records sleep if the audit queue is full.
Following are some guidelines for determining how big your audit queue should be. You must also take into
account the amount of auditing to be performed at your site.
● The memory requirement for a single audit record is 424 bytes; however, a record can be as small as 22
bytes when it is written to a data page.
● The maximum number of audit records that can be lost in a system failure is the size of the audit queue (in
records), plus 20. After records leave the audit queue, they remain on a buffer page until they are written
to the current audit table on the disk. The pages are flushed to disk every 20 records, less if the audit
process is not constantly busy.
● In the system audit tables, the extrainfo field and fields containing names are of variable length, so audit
records that contain complete name information are generally larger.
The number of audit records that can fit on a page varies from 4 to as many as 80 or more. The memory
requirement for the default audit queue size of 100 is approximately 42K.
1.20 auditing
Summary Description
Status Dynamic
Summary Description
Status Dynamic
● 1 – allows an instance that is starting to automatically recover from an abrupt total cluster failure
● 0 – the cluster may not be able to recover from an abrupt cluster failover unless you include the --
cluster_takeover parameter.
The Cluster Edition uses quorum heartbeats and a cluster takeover algorithm to determine when cluster
takeover should be performed. This algorithm allows an instance that is starting to distinguish between an
inability to join the cluster because the cluster has crashed (in which case takeover is appropriate) and an
inability to join the cluster because the instance that is starting does not have network connectivity (in which
case takeover is not appropriate).
If you disable automatic cluster takeover (set it to 0), the Cluster Edition writes the results of the
algorithm to the error log as an advisory message and then exits.
If you enable automatic cluster takeover (set it to 1), the Cluster Edition starts as the cluster
coordinator and recovers the databases. This is guaranteed to be a safe operation in environments that have
I/O fencing enabled.
Binds the Backup Server listener address to the connection socket when performing a remote dump or load.
Summary Description
Status Dynamic
Determines whether the server interprets strings given to chronological builtins as bigdatetimes. If a string is
given as an argument in place of the chronological value, the server interprets it as a datetime value
regardless of its apparent precision.
Summary Description
Status Dynamic
Display level
Required role
This default behavior may be changed by setting the configuration parameter builtin date strings or the
set option builtin_date_strings.
Summary Description
Default value 50
Valid values 5 – 50
Status Static
Display level
Required role
Summary Description
Status Dynamic
Display level 10
Enables or disables SAP ASE to capture information about columns that have missing statistics.
Summary Description
Status Dynamic
Display level 10
Dnables or disables checking for at least one character or digit in a password. If set, this parameter does not
affect existing passwords.
Summary Description
Status Dynamic
Display level 10
Specifies the number of large message buffers allocated by CIPC at start-up time.
Summary Description
Status Static
Specifies the number of regular message buffers allocated by CIPC at start-up time.
Summary Description
Status Static
Determines the size of the array CIS internally buffers (and asks the Open Client bulk library to transfer as a
block) when performing a bulk transfer of data from one SAP ASE to another SAP ASE.
Summary Description
Default value 50
Status Dynamic
Determines how many rows from the source tables are to be bulk copied into the target table as a single batch
using select into.
Summary Description
Default value 0
Status Dynamic
If you leave cis bulk insert batch size at 0, all rows are copied as a single batch. Otherwise, after the
count of rows specified by this parameter has been copied to the target table, the server issues a bulk commit
to the target server, causing the batch to be committed.
If a normal client-generated bulk copy operation (such as that produced by the bcp utility) is received, the
client is expected to control the size of the bulk batch, and the server ignores the value of this configuration
parameter.
Summary Description
Default value 0
Status Dynamic
Specifies the cursor row count for cursor open and cursor fetch operations. Increasing this value means
more rows are fetched in one operation, which increases speed but requires more memory.
Summary Description
Default value 50
Status Dynamic
Summary Description
Default value 0
Status Dynamic
Although the number you specify is in seconds, the housekeeper task wakes up, at most , once a minute, so
idle connections may be idle for much longer than the configured value. SAP ASE does not drop idle
connections if a transaction is active on the connection, and reestablishes the connection automatically if the
user executes any command that accesses the connection.
Summary Description
Status Dynamic
The default packet size on most systems is 512 bytes, and this may be adequate for most applications.
However, larger packet sizes may result in significantly improved query performance, especially when text,
unitext, and image or bulk data is involved.
If you specify a packet size larger than the default, then the target server must be configured to allow variable-
length packet sizes, using:
If you specify a packet size on the target server that is smaller than the default, it uses the default packet size
instead of the cis packet size.
Related Information
Specifies the default method for remote procedural call (RPC) handling.
Summary Description
Status Dynamic
● 0 sets the SAP ASE site handler as the default RPC handling mechanism.
● 1 forces RPC handling to use Component Integration Service access methods.
See set cis rpc handling in the Component Integration Services Users Guide.
Controls the interval that cluster instances use to send and check the heartbeat status.
Summary Description
Default value 10
Status Dynamic
Using a lower value for cluster heartbeat interval reduces the failure detection time but increases the
risk of a false failure because of a transient problem (such as an overloaded CPU). Tuning cluster
heartbeat interval to a larger value reduces the risk of a false failure but increases the time needed to
detect a failure.
Controls the number of times an instance retries a failed cluster heartbeat before entering failure mode.
Summary Description
Default value 1
Status Dynamic
Tuning cluster heartbeat retries to a lower value reduces the time to detect failure but increases the
risk of a false failure because of a transient problem (such as an overloaded CPU). Tuning cluster
heartbeat retries to a larger value reduces the risk of a false failure but increases the time needed to
detect a failure.
Controls the number of recoverable failed instances in a shared-disk cluster. It is the maximum number of
instances that can fail simultaneously while allowing recovery to proceed concurrently with other activity.
Summary Description
Default value 1)
Status Static
Usage
If the number of failed instances exceeds the maximum number specified by the cluster redundancy level
(CRL), the cluster shuts down.
For the cluster to start, the value for cluster redundancy level must be at least one less than the value of
maximum number of instances specified in cluster.cfg or the quorum file. Thus, the cluster cannot start if
you set either of these:
● The value of maximum number of instances to a value that is equal to or less than the value of cluster
redundancy level
● The value of cluster redundancy level to a value equal to or greater than the value of maximum
number of instances
When the cluster redundancy level value increases, so does the messaging traffic, as there are multiple
copies of each lock in the cluster, and an increase in overhead required to maintain this redundancy level.
Other configuration parameters, such as number of locks or for various cache sizes need more resources
for cluster redundancy level values greater than 1, which means you must increase max memory for the
same number of locks value.
Set cluster redundancy level to 1 if the failure of multiple instances is expected to be uncommon.
Related Information
Controls the maximum amount of time an instance waits for other instances to vote during the voting period.
An instance waits only for those instances which it believes are running.
Summary Description
Default value 60
Status Dynamic
Tuning cluster vote timeout to a lower value can reduce failover time, but increases the risk that an
instance that is running is excluded from the new cluster view. Tuning cluster vote timeout to a larger
value reduces the risk that an running instance is excluded from the new cluster view, but may increase
failover time.
Determines the size of the cache that SAP ASE must keep in memory to provide defaults for nonmaterialized
columns.
Summary Description
Status Dynamic
Summary Description
Status Dynamic
Display level 10
Determines the size (in 2 KB pages) of the memory pool that SAP ASE uses to decompress a compressed
dump.
Summary Description
Default value 0
Status Dynamic
SAP ASE uses the value for compression memory size while loading a compressed dump into an archive
database.
When you set compression memory size to 0, no pool is created and a compressed dump cannot be
loaded.
See System Administration Guide: Volume 2 > Creating a Compression Memory Pool.
Summary Description
Status Dynamic
The Run Value column in sp_configure output displays only 10 characters, so the output may not display
the entire path and name of your configuration file.
Summary Description
Default value 2
Status Dynamic
Summary Description
Default value 25
Status Dynamic
Summary Description
Status Dynamic
Usage
● <estimated_pio> = 25
If your SAP ASE has sufficient memory, then all tables exist in memory, and a value of 0 for cost of a
physical io is appropriate.
If your CPU is fast enough so the value for cost of a cpu unit is not an issue, use this formula to
determine the cost of CPU, which combines 2 LIO and 25 PIO (the default values):
CPU X 100/<configuration_value>
As you increase the value for cost of a cpu unit, this formula reduces the impact of CPU on cost.
Related Information
Specifies the amount of time, in machine clock ticks (non-SAP ASE clock ticks), that SAP ASE waits before
flushing CPU usage statistics for each user from sysprocesses to syslogins, a procedure used in charge-
back accounting.
Summary Description
Status Dynamic
Usage
When a user logs in to SAP ASE, the server begins accumulating figures for CPU usage for that user process in
sysprocesses. When a user logs off SAP ASE, or when the value of cpu accounting flush interval is
exceeded, the accumulated CPU usage statistics are flushed from sysprocesses to syslogins. These
The value to which you set cpu accounting flush interval depends on the type of reporting you intend
to do. If you run reports on a monthly basis, set cpu accounting flush interval to a relatively high
value. With infrequent reporting, it is less critical that the data in syslogins be updated frequently.
However, if you perform periodic ad hoc select statements on the totcpu column in syslogins to
determine CPU usage by process, set cpu accounting flush interval to a lower value to increase the
likelihood of the data in syslogins being up-to-date when you execute your selects.
Setting cpu accounting flush interval to a low value may cause the lock manager to mistakenly
identify processes as potential deadlock victims. When the lock manager detects a deadlock, it checks the
amount of CPU time accumulated by each competing processes. The process with the lesser amount is
chosen as the deadlock victim and is terminated by the lock manager. Additionally, when cpu accounting
flush interval is set to a low value, the task handlers that store CPU usage information for processes are
initialized more frequently, thus making processes appear as if they have accumulated less CPU time than
they actually have. Because of this, the lock manager may select a process as the deadlock victim when, in
fact, that process has more accumulated CPU time than the competing process.
If you do not intend to report on CPU usage at all, set cpu accounting flush interval to its maximum
value. This reduces the number of times syslogins is updated, and reduces the number of times its pages
must be written to disk.
Together with time slice, specifies the maximum amount of time that a user process can run without
yielding the CPU before SAP ASE preempts it and terminates it with a timeslice error.
Summary Description
Status Dynamic
The units for cpu grace time are time ticks, as defined by sql server clock tick length.
When a process exceeds cpu grace time SAP ASE “infects” it by removing the process from the internal
queues. The process is killed, but SAP ASE is not affected. This prevents runaway processes from
monopolizing the CPU. If any of your user processes become infected, you may be able to temporarily fix the
problem by increasing the value of cpu grace time. However, be sure that the problem really is a process
that takes more than the current value of cpu grace time to complete, rather than a runaway process.
Related Information
Summary Description
Default value 1
Status Dynamic
Usage
A system security officer can change the current audit table, using:
where <n> is an integer that determines the new current audit table, as follows:
Note
If SAP ASE truncates the current audit table, and you have not archived the data, the table’s audit records
are lost. Be sure that the audit data is archived before using the with truncate option.
To execute sp_configure to change the current audit table, you must have the sso_role active. You can
write a threshold procedure to change the current audit table automatically.
Specifies the minimum amount of time (in milliseconds) before SAP ASE initiates a deadlock check for a
process that is waiting on a lock to be released.
Summary Description
Status Dynamic
Usage
Deadlock checking is time-consuming overhead for applications that experience no or very few deadlocks, and
the overhead grows as the percentage of lock requests that must wait for a lock also increases.
If you set deadlock checking period to a nonzero value (<n>), SAP ASE initiates a deadlock check after a
process waits at least <n> milliseconds. For example, you can make a process wait at least 700 milliseconds
for a lock before each deadlock check by entering:
If you set deadlock checking period to 0, SAP ASE initiates deadlock checking when each process begins
to wait for a lock. Any value less than the number of milliseconds in a clock tick is treated as 0.
Configuring deadlock checking period to a higher value produces longer delays before deadlocks are
detected. However, since SAP ASE grants most lock requests before this time elapses, the deadlock checking
Use sp_sysmon to determine the frequency of deadlocks in your system and the best setting for deadlock
checking period. See the Performance and Tuning Series: Monitoring SAP ASE with sp_sysmon.
Summary Description
Default value 0
Status Dynamic
If both deadlock pipe active and deadlock pipe max messages are enabled, SAP ASE collects the
text for each deadlock. Use the monDeadLock monitoring table to retrieve these deadlock messages.
Summary Description
Default value 0
Status Dynamic
The total number of messages in the monSQLText monitoring table is the value of sql text pipe max
messages times the number of engines running.
Summary Description
Default value 5
Status Dynamic
● Transaction A locks page 1007 and needs to acquire a lock on page 1009 to update the page pointers for a
page split.
● Transaction B is also inserting an index row that causes a page split, holds a lock on page 1009, and needs
to acquire a lock on page 1007.
For the transaction that surrendered its locking attempt, the index is rescanned from the root page, and the
page split operation is attempted again, up to the number of times specified by deadlock retries.
sp_sysmon reports on deadlocks and retries. See the Performance and Tuning Series: Locking and
Concurrency Control.
Specifies the number of the default character set used by the server.
Summary Description
Default value 1
Status Static
The default is set at installation, and can be changed later with the SAP installation utilities.
Sets the default number of megabytes allocated to a new user database if create database is issued
without any size parameters.
Summary Description
Default value 3 MB
Status Dynamic
A database size given in a create database statement takes precedence over the value set by this
configuration parameter.
If most of the new databases on your SAP ASE require more than one logical page size, you may want to
increase the default.
Note
If you alter the model database, also increase default database size, because the create database
command copies model to create a new user database.
Reserves space for expanding updates in data-only-locked tables, to reduce row forwarding.
Summary Description
Default value 5
Status Dynamic
An “expanding update” is any update to a data row that increases the length of the row. Data rows that allow
null values or that have variable-length columns may be subject to expanding updates. In data-only-locked
tables, expanding updates can require row forwarding if the data row increases in size so that it no longer fits
on the page.
The default value sets aside 5 percent of the available data page size for use by expanding updates. Since
2002 bytes are available for data storage on pages in data-only-locked tables, this leaves 100 bytes for
expansion. This value is applied only to pages for tables that have variable-length columns.
Setting default exp_row_size percent to 0 means that all pages are completely filled and no space is
left for expanding updates.
See the Performance and Tuning Series: Locking and Concurrency Control, create table in Reference
Manual: Commands, and sp_chattribute in Reference Manual: Procedures.
Determines how full SAP ASE makes each index page when it is creating a new index on existing data, unless
the fill factor is specified in the create index statement.
Summary Description
Default value 0
Status Dynamic
The fillfactor percentage is relevant only when the index is created. As data changes, pages are not
maintained at any particular level of fullness.
● The amount of storage space used by your data – SAP ASE redistributes the data as it creates the
clustered index.
● Performance – splitting up pages uses SAP ASE resources.
There is seldom a reason to change default fill factor percent, especially since you can override it in
the create index command.
Is the number of the language that is used to display system messages unless a user has chosen another
language from those available on the server. us_english always has an ID of NULL.
Summary Description
Default value 0
Status Dynamic
Configures the default packet size for all SAP ASE users.
Summary Description
Status Static
You can set default network packet size to any multiple of 512 bytes; values that are not even multiples
of 512 are rounded down.
Memory for all users who log in with the default packet size is allocated from the SAP ASE memory pool, as set
with total logical memory. This memory is allocated for network packets when SAP ASE is started.
Each of these buffers requires default network packet size bytes. The total amount of memory
allocated for network packets is:
For example, if you set default network packet size to 1024 bytes, and you have 50 user connections
and 20 worker processes, the amount of network memory required is:
If you increase default network packet size, you must also increase max network packet size to at
least the same size. If the value of max network packet size is greater than the value of default
network packet size, increase the value of additional network memory.
Use sp_sysmon to see how changing the default network packet size parameter affects network I/O
management and task switching. For example, try increasing default network packet size and then
checking sp_sysmon output to see how this affects bcp for large batches. See the Performance and Tuning
Series: Monitoring SAP ASE with sp_sysmon.
Related Information
Clients automatically use the SAP ASE default packet size. Use the -A flag to SAP ASE client programs to
request a large packet size.
For example:
isql -A2048
The number of the sort order that is installed as the default on the server.
Summary Description
Default value 50
Status Static
Is a string parameter that uniquely defines the default Unicode sort order installed on the server.
Summary Description
Status Static
A string parameter that defines the sort order used by the XML engine. A string parameter is used rather than
a numeric parameter to guarantee a unique ID.
Summary Description
Status Static
See XML Services in SAP Adaptive Server Enterprise > XML Support for I18N.
Summary Description
Valid values 0 to 1
Status Dynamic
When deferred name resolution is active (set to 1), deferred name resolution is applied globally to all
server connections; all procedures you create in the server are created using deferred name resolution.
Therefore, the stored procedures are created without resolving the objects referenced inside the stored
procedure, postponing object resolution processing to the execution time. See Transact-SQL Users Guide >
Using Stored Procedures.
Enables or disables character set conversion for data moving between clients and SAP ASE.
Summary Description
Status Static
By default, SAP ASE performs conversion on data moving to and from clients that use character sets that are
different than the server’s. For example, if some clients use Latin-1 (iso_1) and SAP ASE uses Roman-8
(roman8) as its default character set, data from the clients is converted to Roman-8 when being loaded into
SAP ASE. For clients using Latin-1, the data is reconverted when it is sent to the client; for clients using the
same character set as SAP ASE, the data is not converted.
By setting disable character set conversions, you can request that no conversion take place. For
example, if all clients are using a given character set, and you want SAP ASE to store all data in that character
set, set disable character set conversions to 1, and no conversion takes place.
Summary Description
Default value 1
Status Static
This is a global variable; SAP ASE does not perform any disk mirroring after this configuration parameter is set
to 1 and SAP ASE is restarted. Setting disable disk mirroring to 0 enables disk mirroring.
Summary Description
Status Dynamic
Display level 10
Disables JS Agent core dump for all platforms. When off (0), the core dump for JS Agent is enabled during
signal handling. Setting disable jsagent core dump to on (1) disables core dumps and is not
recommended.
Note
Having JS Agent core dumps enabled allows you to diagnose JS Agent crash issues. Disabling core dumps
for JS Agent is not recommended.
Controls whether SAP ASE includes trailing zeros at the end of varbinary or binary null data.
Summary Description
Status Dynamic
Specifies the initial number of disk I/O control blocks SAP ASE allocates at start-up.
Summary Description
Status Dynamic
User processes require a disk I/O control block before SAP ASE can initiate an I/O request for the process.
The memory for disk I/O control blocks is preallocated when SAP ASE starts. To minimize the chance of
running out of disk I/O structures, you should configure disk i/o structures to as high a value as your
operating system allows. See your operating system documentation for information on concurrent disk I/Os.
Use sp_sysmon to determine whether to allocate more disk I/O structures. See Performance and Tuning
Series: Monitoring SAP Adaptive Server with sp_sysmon. You can set the max async i/os per server
configuration parameter to the same value as disk i/o structures.
Specifies the number of DMA (direct memory access) objects allocated by CIPC at start-up time.
Summary Description
Status Static
Sets the amount of time, in minutes, that a distributed transaction branch can remain in the detached state.
Summary Description
Status Dynamic
Display level 10
In some X/Open XA environments, a transaction may become detached from its thread of control (usually to
become attached to a different thread of control). SAP ASE permits transactions to remain in a detached state
for the length of time specified by dtm detach timeout period. After this time has passed, SAP ASE rolls
back the detached transaction.
Sets the maximum amount of time, in seconds, that a distributed transaction branch waits for lock resources
to become available.
Summary Description
Status Dynamic
Display level 10
Configuration group
Usage
After this time has passed, SAP ASE considers the transaction to be in a deadlock situation, and rolls back the
transaction branch that triggered the deadlock. This ultimately rolls back the entire distributed transaction.
Distributed transactions may potentially deadlock themselves if they propagate a transaction to a remote
server, and in turn, the remote server propagates a transaction back to the originating server (described in the
figure below). The work of distributed transaction “dxact1” is propagated to SAP ASE 2 via “rpc1.” SAP ASE 2
then propagates the transaction back to the coordinating server via “rpc2.” “rpc2” and “dxact1” share the
same gtrid but have different branch qualifiers, so they cannot share the same transaction resources. If
“rpc2” is awaiting a lock held by “dxact1,” a deadlock situation exists.
SAP ASE cannot detect interserver deadlocks. Instead, it relies on dtm lock timeout period. In the figure
above, after dtm lock timeout period has expired, the transaction created for “rpc2” is aborted. This
causes SAP ASE 2 to report a failure in its work, and “dxact1” is ultimately aborted as well.
The value of dtm lock timeout period applies only to distributed transactions. Local transactions may
use a lock timeout period with the server-wide lock wait period parameter.
Note
SAP ASE does not use dtm lock timeout period to detect deadlocks on system tables.
Summary Description
Valid values
Status Dynamic
Determines whether SAP ASE generates a dump of data in shared memory when it encounters the conditions
specified in maximum dump conditions.
Summary Description
Status Dynamic
Note
The dump on conditions parameter is included for use only by SAP Technical Support. Do not modify it
unless you are instructed to do so by SAP Technical Support.
Determines when memory is allocated for changes to dynamic memory configuration parameters.
Summary Description
Status Dynamic
● 1 – memory is allocated only as it is needed. That is, if you change the configuration for number of user
connections from 100 to 200, the memory for each user is added only when the user connects to the
server. SAP ASE continues to add memory until it reaches the new maximum for user connections.
● 0 – all the memory required for any dynamic configuration changes is allocated immediately. That is, when
you change the number of user connections from 100 to 200, the memory required for the extra 100 user
connections is immediately allocated.
Improves performance by reducing the time spent by server connections waiting for access to the query plan
manager.
Summary Description
Status Dynamic
Once enabled, dynamic SQL plan pinning will only take effect if one of the following options is also enabled:
When a program sends a dynamic prepared SQL statement to SAP ASE, a stored procedure containing the
prepared SQL statement is created. This stored procedure is similar to a user-created stored procedure,
except that it has no system catalog entries, that is, it exists in memory only. The first time that the prepared
statement is executed, a query plan is compiled and executed. At the end of execution, the query plan is
released to the query plan manager for re-use. When the same statement is executed again, the query plan
manager is called to see if a query plan is available, and if so, the query plan manager returns the query plan to
the server connection to execute. At the end of execution, the query plan is returned to the query plan
manager.
All SAP ASE server connections can access the query plan manager to ask for available query plans as well as
to store new query plans that they have compiled and finished executing. However, only one server connection
can access the query plan manager at a time, to avoid multiple connections getting the same query plan at the
same time (only a single connection can execute a given query plan at a time). Each connection will access the
query plan manager twice for each dynamic prepared SQL statement that it executes: Once to acquire the
query plan and once to release it for reuse.
In a highly concurrent environment (many server connections running dynamic prepared SQL statements at
the same time), performance may be degraded because each connection must wait its turn to access the
query plan manager when retrieving or storing a query plan. dynamic sql plan pinning can improve
performance by reducing the time spent by server connections waiting for access to the query plan manager.
When query plan pinning is enabled, each server connection compiles a query plan for each dynamic prepared
statement that it executes and does not release it to the query plan manager for re-use. Each connection
keeps all query plans that it compiles for its own exclusive re-use, thus, avoiding the need to access to the
query plan manager on the second and subsequent executions of the same dynamic prepared SQL statement.
Because each server connection keeps its own copy of each query plan and query plans are created from the
procedure cache memory pool, this pool may need to be configured to a larger size when dynamic sql plan
pinning is enabled. Exactly how much larger the procedure cache needs to be depends upon the number of
concurrent server connections executing dynamic SQL prepared statements: In extreme environments with
small procedure cache sizes, 2-to-3 times larger may be required.
Configures the additional number of rows sent in the second and subsequent packets of a result set (subject
to the maximum packet size).
Summary Description
Status Dynamic
Ensures that all create database and alter database commands initialize databases asynchronously by
default
Summary Description
Status Dynamic
enable backupserver ha enables or disables the high availability Backup Server for the cluster.
Summary Description
Default value 1
Status Dynamic
Summary Description
Default value 0
Valid values 0, 1
Status Dynamic
Bulk insert is turned off when it is set to 0. When enable bulk inserts is set to 1, it attempts bulk insert by
caching all inserted rows if all other conditions are satisfied. When more than the eight predefined threshold
pages are inserted, it will go through bulk insert. Otherwise, normal non-bulk insert is used. The eight-page
limit cannot be reconfigured.
Summary Description
Status Static
Summary Description
Status Dynamic
Summary Description
Status Static
enable concurrent dump tran is part of the enable functionality configuration parameter
group. The default value for the parameters in this group depends on the value to which enable
Aside from the value for enable functionality group, you can ignore values of DEFAULT in the output
from sp_configure and sp_helpconfig for individual configuration parameters in the Application
Functionality group
Summary Description
Status Dynamic
Display level 10
By default, enable console logging is disabled, and after startup, SAP ASE sends no messages to the
console (the messages are still sent to the errorlog). Once enabled, enable console logging allows SAP
ASE to send messages to the console and error log at all times.
Ensures that two sequential transaction dumps do not contain duplicate pages.
Summary Description
Status Dynamic
If you execute dump transaction on a database with long running open transactions, enabling enable
delta dump tran may reduce the transaction dumps size and the amount of time required to perform the
dump.
If you issue dump transaction concurrently with a full or cumulative dump with enable delta dump
tran disabled, each transaction dump contains all records, cumulatively, since the first concurrent dump
started. However, if enable delta dump tran is enabled, duplicate records are not included in the dump,
resulting in significantly smaller transaction dump sizes.
Enables or disables the SAP ASE distributed transaction management (DTM) feature.
Summary Description
Status Static
Display level 10
When DTM is enabled, you can use SAP ASE as a resource manager in X/Open XA and MSDTC systems. You
must restart the server for this parameter to take effect. See the XA Interface Integration Guide for CICS,
Encina, and TUXEDO for more information about using SAP ASE in an X/Open XA environment. See System
Administration Guide: Volume 2 > Distributed Transaction Management for information about transactions in
MSDTC environments, and for information about SAP ASE native transaction coordination services.
Summary Description
Status Dynamic
Determines whether there are updates to the dump history file at the end of the database dump operation.
Summary Description
Status Dynamic
By default, SAP ASE updates the dump history file after every database dump.
Summary Description
Status Dynamic
You cannot set enable encrypted columns unless you have purchased, installed, and registered the
ASE_ENCRYPTION license on your server. Any attempt to set it without such licensing results in Msg. 10834:
Note
Using encrypted columns increases the logical memory used by 8198 kilobytes.
Summary Description
Status Static
Summary Description
Default value 1
Status Static
Enables or disables the changes available for specific features from SAP ASE version 15.7 and later.
Summary Description
Default value 0
Status Dynamic
● Shareable inline defaults – when enable functionality group is set to 0, SAP ASE does not create
shareable inline defaults, and does not reuse existing shareable inline defaults. The columns that share
inline defaults (before you change this configuration parameter) continue to share the defaults until the
defaults are removed.
● select for update acquiring exclusive locks
● Quoted identifiers
● Unicode noncharacters
The default value for the parameters in this group depends on the value to which enable functionality
group is set. A value of DEFAULT for the individual configuration parameters in this group—other than enable
functionality group—means they are set to the same value as enable functionality group. That is,
if you set enable functionality group to 1, a value of DEFAULT for any other configuration parameter in
the group is 1.
Aside from the value for enable functionality group, you can ignore values of DEFAULT in the output
from sp_configure and sp_helpconfig for individual configuration parameters in the Application
Functionality group.
Summary Description
Status Dynamic
That is, once this configuration is enabled, SAP ASE looks for existing shareable inline defaults having the
same value in the database belonging to the same user. If it finds an existing shareable default, SAP ASE binds
this object to the column instead of creating a new default. However, if SAP ASE does not find an existing
shareable inline default, it creates a new default
See Transact-SQL Users Guide > Defining Defaults and Rules for Data.
Note
The default value for enable inline default sharing depends on the value to which enable
functionality group is set. If you set enable functionality group to:
However, if you set enable inline default sharing to 1, it uses a value of 1 regardless of what you set
enable functionality group to.
Enables or disables SAP ASE as a companion server in an active-active high availability subsystem.
Summary Description
Status Static
Set enable ha to 2 to configure SAP ASE as a companion server in an active-passive high availability
subsystem.
SAP ASE uses SAP Failover to interact with the high availability subsystem. You must setenable ha to 1
before you run the installhasvss script (insthasv on Windows), which installs the system procedures for
SAP Failover.
Note
The license information and the run value for enable ha are independent of each other. Whether or not
you have a license for SAP Failover, the run value and the config value are set to 1 when you restart SAP
ASE. Until you have a license, you cannot run SAP Failover. If you have not installed a valid license, SAP ASE
logs an error message and does not activate the feature. See the installation guide for your platform for
information about installing license keys.
Setting enable HA to 1 or 2 does not mean that SAP ASE is configured to work in a high availability system. You
must perform the steps described in Using SAP Failover in a High Availability System to configure SAP ASE to
be a companion server in a high availability system.
When enable HA is set to 0, you cannot configure for SAP Failover, and you cannot run installhasvss
(insthasv on Windows).
Summary Description
Status Dynamic
The housekeeper garbage collection task performs space reclamation on data-only-locked tables. When a user
task deletes a row from a data-only-locked table, a task is queued to the housekeeper to check the data and
index pages for committed deletes.
See Performance and Tuning Series: Basics > Using Engines and CPUs.
sp_sysmon reports on how often the housekeeper garbage collection task performed space reclamation and
how many pages were reclaimed. See the Performance and Tuning Series: Monitoring SAP Adaptive Server
with sp_sysmon.
Enables or disables asynchronous I/O on database devices created on HP-UX 11.31 and later file systems.
Summary Description
Default value 0
Status Static
You must first enable SAP ASE to use asynchronous I/O with the allow sql server async i/o
configuration parameter.
The combination of these configuration parameters determines whether SAP ASE uses asynchronous or
synchronous I/O for raw partitions and file systems.
enable hp posix async allow sql server async i/o = allow sql server async i/o = 1
i/o 0
Set to 0 Synchronous I/O for file systems Syn Synchronous I/O for file systems
chronous I/O for raw devices
Uses /dev/async asynchronous I/O for raw
devices
Set to 1 Synchronous I/O for file systems Syn POSIX asynchronous I/O for file systems
chronous I/O for raw devices
POSIX asynchronous I/O for raw devices
Note
enable hp posix async i/o improves performance when you allocate database devices on file
systems, but may decrease performance on database devices that are allocated on raw devices.
Enables and disables the use of huge pages on Linux platforms that support huge pages.
Summary Description
Default value 0
Valid values ● 0 – use huge pages if possible; if huge pages are not
available, use regular pages.
● 1 – use only regular pages.
● 2 – use only huge pages.
Status Static
Enables or disables I/O fencing for each database device that supports the SCSI-3 Persistent Group
Reservation (PGR) standard.
Summary Description
Status Static
Enables and disables SAP ASE to use integrated service management (ISM) on the Solaris platform.
Summary Description
Default value 0
Status Static
Display level
Enables and disables Java in the SAP ASE database. You cannot install Java classes or perform any Java
operations until the server is enabled for Java.
Summary Description
Status Static
Decreasing the value for runnable process search count improves Java’s performance when it is run on
machines with a single-CPU, or when the number of SAP ASE engines is close to or equal to the number of
CPUs. runnable process search count controls how quickly SAP ASE voluntarily yields CPU when there
are no runnable processes (yielding the CPU allows the operating system to schedule the JVM to execute the
Java code).
Determines whether Job Scheduler starts when the SAP ASE server starts.
Summary Description
Status Dynamic
Summary Description
Status Dynamic
Display level 10
Summary Description
Status Static
Configures the use of large buffer pools during the recovery phase for load database and load transaction
commands.
Summary Description
Default value The default value for enable large pool for load
depends on the value to which enable
functionality group is set. If you set enable
functionality group to:
Status Dynamic
Related Information
Enables or disables SAP ASE to authenticate each user on the LDAP server.
Summary Description
Status Dynamic
If the LDAP authentication fails, SAP ASE searches syslogins to authenticate the user. Use level 1 when you
are migrating users from SAP ASE authentication to LDAP authentication.
Enables or disables Latch-Free Indexes feature (part of Mem Scale licensable option).
Note
Before enabling LFB index, you need to set the enable mem scale configuration parameter.
Status Dynamic
Summary Description
Status Dynamic
Allows an SAP ASE Cluster Edition background process to locally manage locks once failed-over client
connections move back to the original instance.
Summary Description
Status Dynamic
Determines whether non-system administrator logins are allowed during database recovery.
Summary Description
Default value 1
Status Dynamic
Summary Description
Status Dynamic
Summary Description
Default value 2
Status Dynamic
The default value for merge join depends on current value of the optimization goal configuration
parameter:
allrows_mix on
allrows_dss on
allrows_oltp off
Summary Description
Status Dynamic
Metrics for ad hoc statements are captured in the system catalogs; metrics for statements in a stored
procedure are saved in the procedure cache.
Summary Description
Status Dynamic
enable monitoring acts as a master switch that determines whether any Monitoring configuration
parameters are enabled.
Note
Any data that populates the monitoring tables without enabling enable monitoring should not be
considered valid.
Eontrols the ability to authenticate users using pluggable authentication modules (PAM).
Summary Description
Status Dynamic
Summary Description
Status Static
Summary Description
Status Dynamic
enable permissive unicode configuration parameter allows you to include random binary data when
enabled (set to 1). However, once you enable enable permissive unicode, SAP ASE correctly sorts only
valid UTF-8 data.
Related Information
Summary Description
Status Dynamic
The enable plan sharing configuration option is not automatically enabled when the enable
functionality group configuration option is enabled: you must explicitly turn on enable plan sharing.
Related Information
Summary Description
Status Dynamic
Summary Description
Status Dynamic
Summary Description
Status Intermediate
Enables the capture of diagnostic for Proc Cache Header memory pool messages.
Summary Description
Status Dynamic
Display level
Note
Use diagnostic for Proc Cache Header memory pool only under the guidance of the SAP support team.
See Performance and Turning Series: Basics > Diagnostic for 'Proc Cache Header' Memory Pool.
Summary Description
Status Dynamic
Summary Description
Status Dynamic
Other steps are also required to enable replication. For more information, see the Replication Server
documentation.
Enables the resolve as owner functionality, which allows users to view data from objects they do not own, and
without including the owner name prefix with the object.
Summary Description
Status Dynamic
Summary Description
Status Dynamic
You must have the security services license key enabled before you can configure enable row level
access control.
Enables or disables partitioning other than round-robin (for example list, hash, and range partitioning) in SAP
ASE.
Summary Description
Status Dynamic
Before you use any of these partitioning schemes, you must first have the appropriate license.
Enables or disables the query processor to select a sort merge or a nested loop join when SAP ASE compiles a
query in compatibility mode.
Summary Description
Status Dynamic
enable sort-merge join and jtc enables join transitive closure (JTC), which allows the query processor
for versions of SAP ASE earlier than 15.0 to use additional join clauses.
For more information about compatibility mode, see the Migration Technology Guide.
Enables or disables the SAP ASE SQL debugger, which allows you to step through your T-SQL code.
Summary Description
Status Static
Summary Description
Status Static
Summary Description
Status Dynamic
Enables or disables SAP ASE to collect monitoring information about the statement cache.
Summary Description
Status Dynamic
Enables or disables the processing and maintains the integrity of surrogate pairs in Unicode data.
Summary Description
Status Dynamic
If enable surrogate processing is disabled, the server ignores the presence of surrogate pairs in the
Unicode data, and all code that maintains the integrity of surrogate pairs is skipped. This enhances
performance, but restricts the range of Unicode characters that can appear in the data.
Enables or disables the Transactional Memory feature (part of Mem Scale licensable option).
Note
Before enabling transactional memory, set the enable mem scale configuration parameter.
Summary Description
Status Dynamic
Enables or disables character conversion using Unilib for the char, varchar, and text datatypes.
Summary Description
Default value 1
Status Dynamic
Summary Description
Status Dynamic
The normalization process modifies the data so there is only a single representation in the database for a given
sequence of abstract characters. Often, characters followed by combined diacritics are replaced by
precombined forms.
Note
Once disabled, you cannot turn normalization on again. This limitation prevents non-normalized data from
entering the database.
Enables or disables running alter table ... add | drop partition commands while Adaptive Server
runs isolation level 0 scans.
Summary Description
Default value The default value for enable utility lvl 0 scan
wait depends on the value to which enable
Status Dynamic
Summary Description
Status Dynamic
Summary Description
Status Static
Display level 10
Summary Description
Status Dynamic
Enables or disables modification of the Engine Local Cache (ELC) as a percentage of procedure cache.
Summary Description
Default value 50
Status Static
Based on this configuration option, SAP ASE will configure procedure cache ELC size as given percentage of
procedure cache size. The default value is 50, which means the ELC size will be 50 percent of procedure cache
size.
This configurations option can be used only when large ELC is enabled (using enable large chunk elc
configuration parameter).
Example:
For diagnostic use only and has no relevance in a production environment. Keep all default settings unless
otherwise requested by SAP Technical Support.
Summary Description
Default value 0
Status Dynamic
Display level
Required role
Summary Description
Status Dynamic
If both errorlog pipe active and errorlog pipe max messages are enabled, SAP ASE collects all the
messages sent to the error log. Use the monErrorLog monitoring table to retrieve these error log messages.
Determines the number of error log messages SAP ASE stores per engine.
Summary Description
Default value 0
Status Dynamic
The total number of messages in the monSQLText monitoring table is the value of sql text pipe max
messages times the number of engines running.
Related Information
Sets the threshold for the size of the error log. Once this threshold is reached, SAP ASE dynamically closes the
current error log and opens a new one .
Summary Description
Status Dynamic
The error log rollover feature is enabled once you set the threshold to a size between 1MB and 200GB. Once
enabled, SAP ASE checks the size of its error log every minute and, if it exceeds the threshold, rolls over the
error log.
Summary Description
Default value 8
Valid values 0 – 15
Status Dynamic
Over long periods of time, ESPs can be CPU-intensive. Also, since XP Server resides on the same machine as
SAP ASE, XP Server can impact SAP ASE performance.
See the Open Server Server-Library/C Reference Manual for information about scheduling Open Server
threads.
Sets the size of the stack, in bytes, to be allocated for ESP execution.
Summary Description
Status Static
Use this parameter if you have your own ESP functions that require a larger stack size than the default, 34816.
Specifies whether DLLs that support ESPs should be automatically unloaded from XP Server memory after the
ESP call has completed.
Summary Description
Status Dynamic
Controls the number of monitor event buffers. Not used in the current version of SAP ASE.
Specifies the name of the Windows machine that logs SAP ASE messages in its Windows Event Log. This
feature is available on Windows servers only.
Summary Description
Status Dynamic
You can also use the Server Config utility to set the event log computer name parameter by specifying the
Event Log Computer Name under Event Logging.
Setting the event log computer name parameter with sp_configure or specifying the Event Log
Computer Name under Event Logging overwrites the effects of the command line -G option, if it was specified.
If SAP ASE was started with the -G option, you can change the destination remote machine by setting event
log computer name.
For more information about logging SAP ASE messages to a remote site, see the Configuration Guide for
Windows.
Enables and disables the logging of SAP ASE messages in the Windows Event Log.
Summary Description
Status Dynamic
Use the Server Config utility to set the event logging parameter by selecting Use Windows Event Logging
under Event Logging.
Setting the event logging parameter or selecting Use Windows Event Logging overwrites the effects of the
command line -G option, if it was specified.
A calculated value that is not user-configurable, this parameter eports the combined size, in kilobytes, of the
SAP ASE executable and overhead.
Summary Description
Default value 0
Status Calculated
Summary Description
Default value 0
Status Static
Provides FIPS 140-2 cryptographic module support for encrypting passwords in transmission, in memory, and
on disk.
Summary Description
Status Static
Enabling fips login password encryption requires a Security and Directory Services license.
SAP ASE uses the FIPS 140-2 certified Certicom security provider for login encryption. If this configuration is
not enabled, SAP ASE uses the OpenSSL security provider to perform login password encryption.
Specifies the percentage of a buffer pool that can hold the pages brought in by asynchronous prefetch that
have not yet been read.
Summary Description
Default value 10
Status Dynamic
global async prefetch limit sets the limit for all pools in all caches for which the limit has not been set
explicitly with sp_poolconfig.
If the limit for a pool is exceeded, asynchronous prefetch is temporarily disabled until the percentage of unread
pages falls below the limit. See Performance and Tuning Series: Basics > Tuning Asynchronous Prefetch.
Sets the default number of cache partitions for all data caches.
Summary Description
Default value 1
Status Static
The number of partitions for a particular cache can be set using sp_cacheconfig; the local value takes
precedence over the global value.
Use cache partitioning to reduce cache spinlock contention; in general, if spinlock contention exceeds 10
percent, partitioning the cache should improve performance. Doubling the number of partitions cuts spinlock
contention by about one-half.
Configures the amount of heap memory per user. A heap memory pool is an internal memory created at start-
up that tasks use to dynamically allocate memory as needed.
Summary Description
Default value 4 KB
Status Dynamic
The heap memory pool is important if you are running tasks that use wide columns, which require a lot of
memory from the stack. The heap memory allocates a temporary buffer that enables these wide column tasks
to finish. The heap memory the task uses is returned to the heap memory pool when the task is finished.
The size of the memory pool depends on the number of user connections. SAP recommends that you set heap
memory per user to three times the size of your logical page.
Controls the number of steps SAP ASE analyzes per histogram for update statistics, update index
statistics, update all statistics, and create index.
Summary Description
Default value 20
Status Dynamic
For SAP ASE versions 15.0.2 ESD #2 and later, if you set histogram tuning factor to the default value of
20 and a large number of steps are requested for the histogram, the actual step count used for the histogram
is limited to the value that reduces the procedure cache usage:
In the following example, SAP ASE generates an intermediate 20-step histogram with 30 values:
SAP ASE analyzes the histogram and compresses it into the resulting histogram according to the following
parameters:
● Has range steps generated in a way similar for a 30-step update statistics, and high frequency
ranges are isolated as if the histogram were created with 600 steps.
● The total number of steps in the resulting histogram may differ between 30 and 600 values.
● For equally distributed data, the value should be very close to 30.
● More “frequent” values in the table means more steps in the histogram.
● If a column has few different values, all those values may appear as high-frequency cells.
You can achieve the same result by increasing the number of histogram steps to 600, but this uses more
resources in the buffer and procedure cache
histogram tuning factor minimizes the resources histograms consume, and increases resource usage
only when it is in the best interest for optimization, for example, when there is uneven distribution of data in a
column, or highly duplicated values within a column. In this situation, up to 600 histogram steps are used.
However, in most cases, histogram tuning factor uses the default value (30 in the example above).
Specifies the maximum percentage by which the housekeeper wash task can increase database writes.
Summary Description
Default value 1
Status Dynamic
For example, to stop the housekeeper task from working when the frequency of database writes reaches 5
percent above normal, set housekeeper free write percent to 5.
When SAP ASE has no user tasks to process, the housekeeper wash task automatically begins writing changed
pages from cache to disk. These writes result in improved CPU utilization, decreased need for buffer washing
during transaction processing, and shorter checkpoints.
In applications that repeatedly update the same database page, the housekeeper wash may initiate some
unnecessary database writes. Although these writes occur only during the server’s idle cycles, they may be
unacceptable on systems with overloaded disks.
The table and index statistics that are used to optimize queries are maintained in memory structures during
query processing. When these statistics change, the changes are not written to the systabstats table
immediately, to reduce I/O contention and improve performance. Instead, the housekeeper chores task
periodically flushes statistics to disk.
The default value allows the housekeeper wash task to increase disk I/O by a maximum of 1 percent. This
results in improved performance and recovery speed on most systems.
To disable the housekeeper wash task, set the value of housekeeper free write percent to 0.
Set this value to 0 only if disk contention on your system is high, and it cannot tolerate the extra I/O generated
by the housekeeper wash task.
If you disable the housekeeper tasks, keep statistics current. Commands that write statistics to disk are:
● update statistics
● dbcc checkdb (for all tables in a database) or dbcc checktable (for a single table)
● sp_flushstats
Run one of these commands on any tables that have been updated since the last time statistics were written to
disk, at the following times:
To allow the housekeeper wash task to work continuously, regardless of the percentage of additional database
writes, set housekeeper free write percent to 100.
You might also want to look at the number of free checkpoints initiated by the housekeeper task. The
Performance and Tuning Series: Basics describes this output.
Specifies the amount of time, in machine clock ticks, that SAP ASE waits before flushing I/O statistics for each
user from sysprocesses to syslogins. This is used for charge-back accounting.
Summary Description
Status Dynamic
When a user logs in to SAP ASE, the server begins accumulating I/O statistics for that user process in
sysprocesses. When the value of i/o accounting statistics interval is exceeded, or a user logs off
SAP ASE, the accumulated I/O statistics for that user are flushed from sysprocesses to syslogins. These
statistics continue accumulating in syslogins until you clear the totals by using sp_clearstats. You can
display the current totals from syslogins by using sp_reportstats.
The value to which you set i/o accounting flush interval depends on the type of reporting you intend
to do. If you run reports on a monthly basis, set i/o accounting flush interval to a relatively high
value. With infrequent reporting, it is less critical that the data in syslogins be updated frequently.
If you perform periodic ad hoc selects on the totio column syslogins to determine I/O volume by process,
set i/o accounting flush interval to a lower value. Doing so increases the likelihood of the data in
syslogins being current when you execute your selects.
If you do not report on I/O statistics at all, set i/o accounting flush interval to its maximum value.
This reduces the number of times syslogins is updated and the number of times its pages must be written to
disk.
Sets the number of writes issued in a batch before the task goes to sleep. Once this batch is completed, the
task is woken up, and the next batch of writes are issued, ensuring that the I/O subsystem is not flooded with
many simultaneous writes.
Summary Description
Status Dynamic
Setting i/o batch size to the appropriate value can improve the performance of operations like
checkpoint, dump database, select into, and so on.
Specifies the maximum number of processes that SAP ASE can run before the scheduler checks for disk and
network I/O completions. Tuning i/o polling process count affects both the response time and
throughput of SAP ASE.
Summary Description
Default value 10
Status Dynamic
Note
i/o polling process count functions only when you configure SAP ASE for process kernel mode; it is
nonfunctional for threaded kernel mode.
● If the number of tasks run since the last time SAP ASE checked for I/O completions equals the value for
i/o polling process count, and
● At every SAP ASE clock tick.
As a general rule, increasing the value of i/o polling process count increases throughput for
applications that generate a lot of disk and network I/O. Conversely, decreasing the value improves process
response time in these applications, possibly at the risk of lowering throughput.
If your applications create both I/O and CPU-bound tasks, tuning i/o polling process count to a low
value (1 – 2) ensures that I/O-bound tasks get access to CPU cycles.
For OLTP applications (or any I/O-bound application with user connections and short transactions), tuning
i/o polling process count to a value in the range of 20 – 30 may increase throughput, but may also
increase response time.
When tuning i/o polling process count, consider these other parameters:
● sql server clock tick length, which specifies the duration of the SAP ASE clock tick in
microseconds.
● time slice, which specifies the number of clock ticks the SAP ASE scheduler allows a user process to
run.
● cpu grace time, which specifies the maximum amount of time, in clock ticks, a user process can run
without yielding the CPU before SAP ASE preempts it and terminates it with a timeslice error.
Use sp_sysmon to determine the effect of changing i/o polling process count. See the Performance
and Tuning Series: Monitoring SAP Adaptive Server with sp_sysmon.
Related Information
Changes the percentage of potential column values that is made available in a block of column values.
Summary Description
Status Static
IDENTITY columns are of type numeric and scale zero whose values are generated by SAP ASE. Column
values can range from a low of 1 to a high determined by the column precision.
For each table with an IDENTITY column, SAP ASE divides the set of possible column values into blocks of
consecutive numbers, and makes one block at a time available in memory. Each time you insert a row into a
table, SAP ASE assigns the IDENTITY column the next available value from the block. When all the numbers in
a block have been used, the next block becomes available.
This method of choosing IDENTITY column values improves server performance. When SAP ASE assigns a
new column value, it reads the current maximum value from memory and adds 1. Disk access becomes
necessary only after all values within the block have been used. Because all remaining numbers in a block are
discarded in the event of server failure (or shutdown with nowait), this method can lead to gaps in
IDENTITY column values.
The value for identity burning set factor should be high enough for good performance, but not so
high that gaps in column values are unacceptably large. The default value, 5000, releases .05 percent of the
potential IDENTITY column values for use at one time.
To get the correct value for sp_configure, express the percentage in decimal form, and then multiply it by 10
7(10,000,000). For example, to release 15 percent (.15) of the potential IDENTITY column values at a time,
specify a value of .15 times 107 (or 1,500,000) in sp_configure.
Allows each SAP ASE process to reserve a block of IDENTITY column values for inserts into tables that have an
IDENTITY column.
Summary Description
Default value 1
Status Dynamic
identity grab size applies to all users on SAP ASE. Large identity grab size values result in large
gaps in the IDENTITY column when many users insert data into tables with IDENTITY columns.
You should set identity grab size to a value large enough to accommodate the largest group of records
you want to insert into contiguous rows.
Summary Description
Default value 1
Status Dynamic
Specifies the amount of time after which an idle connection is closed without invalidating the migration
request sent to the client, allowing you to stop an instance after a specified period of time without waiting for
idle client connections to migrate.
Summary Description
Default value 60
Status Dynamic
Setting idle migration timeout to a high value slows down a graceful shutdown because the instance
must wait the specified period of time for all idle connections that issued a migration request without the client
having initiated migration.
Sets the interval when the Job Scheduler checks which scheduled jobs are due to be executed.
Summary Description
Status Dynamic
Sets the maximum number of jobs that can run simultaneously through Job Scheduler.
Summary Description
Default value 4
Status Dynamic
If you increase the value of job scheduler tasks to a higher value, increase the value for number of
user connections by at least twice the value you incremented job scheduler tasks before starting the
Job Scheduler.
However, if the SAP ASE running the scheduled jobs is the same SAP ASE that is hosting the Job Scheduler,
you must increase the value for number of user connections by three times the value you incremented
job scheduler tasks before starting the Job Scheduler.
Increasing the number of user connections may require that you increase the value for max memory.
For compatibility with RAP – The Trading Edition R4, you must set job scheduler tasks to 32.
If you set the value of job scheduler tasks to "default" before you upgrade SAP ASE, the server
automatically sets the new default to 4.
Related Information
Summary Description
Default value 1
Status Dynamic
Display level 10
Determines the line width the output uses for jobs stored in the js_output table.
Summary Description
Default value 80
Status Dynamic
Sets the delay period between two Job Scheduler auto restart attempts after abnormal shutdown of Job
Scheduler.
Summary Description
Default value 60
Status Dynamic
Determines the mode the SAP ASE kernel uses, threaded or process.
Summary Description
Status Static
In threaded mode, SAP ASE uses operating system threads to support SAP ASE engines and specialized
tasks. In this mode, SAP ASE is a single process running on the operating system. In process mode, SAP ASE
uses individual processes to support SAP ASE engines. In this mode, each engine is a distinct process running
on the operating system. The process mode is the same kernel used by SAP ASE versions earlier than 15.7.
The values for kernel mode are character data, so you must use 0 as a placeholder for the second
sp_configure parameter, which must be numeric, and specify threaded or process as the third
parameter.
SAP assumes you use threaded mode in your production server, and includes process mode for backward
compatibility. Process mode may not support features for SAP ASE 15.7 and later.
kernel resource memory determines the size, in 2K pages, of the kernel resource memory pool from which
all thread pools and other kernel resources are allocated memory.
Summary Description
Status Dynamic
The amount of memory available for kernel resource memory depends on the value of max memory. If max
memory has an insufficient amount of memory to allocate to kernel resource memory, SAP ASE issues an
error message that includes the value to which you must raise max memory.
The amount of kernel resource memory SAP ASE requires is determined by a combination of the max
online engines and number of user connections configuration parameters, and the amount of
memory required by the monitoring system
The monitoring system is the largest consumer of kernel resource memory. For example, even when
configured for the default number of users and engines, SAP ASE requires additional kernel resource
memory to manage the large number of spinlocks caused by the number of open objects, locks, and so on.
For configurations of 8 engines or fewer, SAP recommends that you add one page of kernel resource memory
for every two user connections above 100. For configurations of 9 engines or more, add 1 page of kernel
resource memory for every user connection.
For example, a server with 6 engines and 200 user connections should add a value of 100 to the default value.
A server with 16 engines and 10000 user connections would add a value of 10000 to the default value.
Related Information
Configures SAP ASE preallocate large amounts of memory for query execution, which reduces procedure
cache contention.
Summary Description
Status Static
license information allows SAP system administrators to monitor the number of user licenses used in
SAP ASE. Enabling this parameter only monitors the number of licenses issued; it does not enforce the license
agreement.
Summary Description
Default value 25
Status Dynamic
If license information is set to 0, SAP ASE does not monitor license use. If license information is set
to a number greater than 0, the housekeeper chores task monitors the number of licenses used during the idle
cycles in SAP ASE. Set license information to the number of licenses specified in your license agreement.
If the number of licenses used is greater than the number to which license information is set, SAP ASE
writes this message to the error log:
WARNING: Exceeded configured number of user licenses.
At the end of each 24-hour period, the maximum number of licenses used during that time is added to the
syblicenseslog table. The 24-hour period restarts if SAP ASE is restarted.
See Security Administration Guide > Managing SAP ASE Logins and Database Users.
Sets the number of rows in the internal address locks hash table that are protected by one spinlock for SAP
ASEs running with multiple engines.
Summary Description
Status Static
SAP ASE manages the acquiring and releasing of address locks using an internal hash table with 1031 rows
(known as hash buckets). This table can use one or more spinlocks to serialize access between processes
running on different engines.
The default value for lock address spinlock ratio defines 11 spinlocks for the address locks hash table.
The first 10 spinlocks protect 100 rows each, and the eleventh spinlock protects the remaining 31 rows. If you
specify a value of 1031 or greater for lock address spinlock ratio, SAP ASE uses only 1 spinlock for the
entire table.
Summary Description
Status Static
The lock hash table manages all row, page, and table locks, and all lock requests. Each time a task acquires a
lock, the lock is assigned to a hash bucket, and each lock request for that lock checks the same hash bucket.
lock hashtable size must be a power of 2. If the value you specify is not a power of 2, sp_configure
rounds the value to the next highest power of 2 and prints an informational message.
The optimal hash table size is a function of the number of distinct objects (pages, tables, and rows) that can be
locked concurrently. The optimal hash table size is at least 20 percent of the number of distinct objects that
need to be locked concurrently. See the Performance and Tuning Series: Locking and Concurrency Control.
However, if you have a large number of users and have had to increase the number of locks parameter to
avoid running out of locks, use sp_sysmon to check the average hash chain length at peak periods. If the
average length of the hash chains exceeds 4 or 5, consider increasing the value of lock hashtable size
from its current setting to the next power of 2.
The hash chain length may be high during large insert batches, such as bulk copy operations. This is expected
behavior, and does not require you to reset lock hashtable size.
Related Information
Sets the default locking scheme to be used by create table and select into commands when a lock
scheme is not specified in the command.
Summary Description
Status Dynamic
The values for lock scheme are character data, so you must use 0 as a placeholder for the second parameter,
which must be numeric, and specify allpages, datapages, or datarows as the third parameter:
Disallows swapping of SAP ASE pages to disk and allows the operating system kernel to avoid the server’s
internal page locking code. This can reduce disk reads, which are expensive.
Summary Description
Status Static
Not all platforms support shared memory locking. Even if your platform does, lock shared memory may fail
due to incorrectly set permissions, insufficient physical memory, or for other reasons. See operating system
documentation for your platform for information on shared memory locking.
For SAP ASEs running with multiple engines, lock spinlock ratio sets a ratio that determines the number
of lock hash buckets that are protected by one spinlock. If you increase the value for lock hashtable size,
the number of spinlocks increases, so the number of hash buckets protected by one spinlock remains the
same.
Summary Description
Default value 85
Status Static
SAP ASE manages the acquiring and releasing of locks using an internal hash table with a configurable number
of hash buckets. On SMP systems, this hash table can use one or more spinlocks to serialize access between
processes running on different engines. Use lock hashtable size to set the number of hash buckets.
sp_sysmon reports on the average length of the hash chains in the lock hash table. See the Performance and
Tuning Series: Monitoring Adaptive Server with sp_sysmon.
Related Information
For SAP ASEs running with multiple engines, lock table spinlock ratio sets the number of rows in the
internal table locks hash table that are protected by one spinlock.
Summary Description
Default value 20
Status Static
SAP ASE manages the acquiring and releasing of table locks using an internal hash table with 101 rows (known
as hash buckets). This table can use one or more spinlocks to serialize access between processes running on
different engines.
The SAP ASE default value for lock table spinlock ratio is 20, which defines six spinlocks for the table
locks hash table. The first five spinlocks protect 20 rows each; the sixth spinlock protects the last row. If you
specify a value of 101 or greater for lock table spinlock ratio, SAP ASE uses only one spinlock for the
entire table.
Summary Description
Status Dynamic
If lock timeout pipe active and lock timeout pipe max messages are enabled, SAP ASE collects
the data for each lock timeout that occurs.
Retrieve the lock timeout messages from the monLockTimeout monitoring table.
Related Information
Controls the maximum number of rows per engine in the lock timeout pipe, which determines the maximum
number of rows that can be returned by the monLockTimeout monitoring table.
Summary Description
Default value 0
Status Dynamic
Limits the number of seconds that tasks wait to acquire a lock on a table, data page, or data row. If the task
does not acquire the lock within the specified time period, SAP ASE returns error message 12205 to the user
and rolls back the transaction.
Summary Description
Status Dynamic
The lock wait option of the set command sets a session-level number of seconds that a task waits for a
lock. It overrides the server-level setting for the session.
lock wait period, used with the session-level setting set lock wait nnn, is applicable only to user-
defined tables. These settings have no influence on system tables.
At the default value, all processes wait indefinitely for locks. To restore the default value, reset the value to
2147483647 or enter:
Specifies whether to log unsuccessful SAP ASE logins to the SAP ASE error log and, on Windows servers, to
the Windows Event Log, if event logging is enabled.
Summary Description
Valid values 0 (off), 1 (on), 2 (on - allows event logging when auditing is
not enabled)
Status Dynamic
An administrator should consider the security implications of setting value 2. This allows the reason for the
logon failure into the errorlog. Considerations should include how well the errorlog is protected from hackers
attempting to crack passwords and learning details of a login account, such as: account name is valid, or
account is locked, or a password is incorrect.
Specifies whether to log successful SAP ASE logins to the SAP ASE error log and, on Windows servers, to the
Windows Event Log, if event logging is enabled.
Summary Description
Status Dynamic
Specifies the maximum number of outstanding asynchronous disk I/O requests for a single engine at one
time.
Summary Description
Status Static
On the Linux platform, max async i/os per engine controls the number of asynchronous IOs reserved
from the operating system.
In threaded mode, SAP ASE reserves the value for max async i/os per engine for the engine server. In
process mode, SAP ASE reserves the value for max async i/os per engine for each engine. For example,
if you set max async i/os per engine to 4096 and there are 4 engines, in threaded mode SAP ASE
reserves 4096 I/Os, but in process mode SAP ASE reserves 16384 I/Os.
Your system may benefit from using a number greater than the default value.
You can use sp_sysmon to help tune max async i/os per engine. sp_sysmon’s disk i/o section
contains information about the maximum number of outstanding IOs for each engine during the sample period
and the number of I/Os that were delayed because of engine or operating system limits. Generally, any I/Os
delayed by engine limits indicate that you should increase the value of max async i/os per engine.
Whether SAP ASE can perform asynchronous IO on a device depends on whether or not this device support
kernel asynchronous I/O (KAIO). The Linux kernel requires that you implement kernel asynchronous I/O
support at the file system level. Most major file systems provide support for kernel asynchronous I/O,
including ext3, xfs, jfs, and raw devices. The tmpfs file system does not support kernel asynchronous I/O. If
the device does not support kernel asynchronous I/O, SAP ASE cannot perform asynchronous IO on that
device, and instead reverts to standard synchronous IO for all reads and writes to that device. SAP ASE prints
a message similar to the following in the error log indicating that the device has switched to synchronous IO:
Summary Description
Status Static
This limit is not affected by the number of online engines per SAP ASE. max async i/os per engine limits
the number of outstanding I/Os per engine.
Most operating systems limit the number of asynchronous disk I/Os that can be processed at any one time;
some operating systems limit the number per operating system process, some limit the number per system,
and some do both. If an application exceeds these limits, the operating system returns an error message.
Because operating system calls are relatively expensive, it is inefficient for SAP ASE to attempt to perform
asynchronous I/Os that get rejected by the operating system.
To avoid this, SAP ASE maintains a count of the outstanding asynchronous I/Os per engine and per server; if
an engine issues an asynchronous I/O that would exceed either max async i/os per engine or max
async i/os per server, SAP ASE delays the I/O until enough outstanding I/Os have completed to fall
below the exceeded limit.
For example, assume an operating system limit of 200 asynchronous I/Os per system and 75 per process and
an SAP ASE with three online engines. The engines currently have a total of 200 asynchronous I/Os pending,
distributed according to the following table:
0 60 Engine 0 delays any further asynchronous I/Os until the total for the server is under the op
erating system per-system limit and then continues issuing asynchronous I/Os.
1 75 Engine 1 delays any further asynchronous I/Os until the per-engine total is under the oper
ating system per-process limit and then continues issuing asynchronous I/Os.
2 65 Engine 2 delays any further asynchronous I/Os until the total for server is under the operat
ing system per-system limit and then continues issuing asynchronous I/Os.
All I/Os (both asynchronous and synchronous) require a disk I/O structure, so the total number of
outstanding disk I/Os is limited by the value of disk i/o structures. It is slightly more efficient for SAP
If the limits for asynchronous I/O can be tuned on your operating system, make sure they are set high enough
for SAP ASE. There is no penalty for setting them as high as needed.
Use sp_sysmon to see if the per server or per engine limits are delaying I/O on your system. If sp_sysmon
shows that SAP ASE exceeded the limit for outstanding requests per engine or per server, raise the value of
the corresponding parameter. See the Performance and Tuning Series: Monitoring SAP Adaptive Server with
sp_sysmon.
Related Information
Sets an upper limit for the number of buffers used by lava operators that perform sorting or hashing (which
are “expensive” in terms of processing). Lava operators use buffers from the session’s tempdb data cache
pool as a work area for processing rows.
Summary Description
Status Dynamic
Lava operators often recurse through their input streams. Sorting requires subsequent merge passes until
there are enough buffers available to merge all of the remaining runs. Hashing requires subsequent passes to
build hash tables on any spilled sets until all of the remaining data can fit into an in-memory hash table. Some
queries require less I/O if you increase max buffers per lava operator. This is particularly true for
queries that use the HASH DISTINCT, HASH VECTOR AGGREGATE, and HASH UNION operators.
Be careful when you increase the default value of max buffers per lava operator for servers with many
concurrent users: SAP ASE may allocate more buffers solely for expensive operators, reducing the number of
buffers available for caching user’s tables and other session’s worktables. Use sp_sysmon to analyze
tempdb's data caching effectiveness.
Related Information
There are a number of differences between number of sort buffers and max data buffers per lava
sort.
● number of sort buffers – affects parallel sorts only from the create index, and update
statistics commands:
○ The buffers are sourced from single-page default or named data caches.
○ SAP ASE must have a sufficient number of free procedure cache buffers available for storing the
metadata per row of data being sorted, otherwise it may abort the query processing.
○ The SAP ASE sort manager verifies the amount of procedure cache space required with this formula:
(number of sort buffers) X (<rows_per_page>) X 100
Where <rows_per_page> is the number of rows of the sorted columns that can fit into a single-page
data buffer.
● max data buffers per lava sort – affects only regular lava sort or hash operations:
○ The buffers are sourced from the single-page pool from the tempdb data cache assigned to the
current session.
○ The query processor uses the smaller of the following values as the upper limit for buffer space per
lava operation:
○ The value of max data buffers per lava operator
○ The product of:
max resource granularity X (the number of cache buffers in the tempdb's single-page pool)
Note
The differences between max data buffers per lava sort and number of sort buffers
influences the lava operator during optimization. However, the query processor cannot predict the number
of available cache buffers at runtime. If the Execute engine cannot find a sufficient number of tempdb
single-page cache buffers, it may use system worktable for the sorting or hashing instead.
Specifies the maximum number of concurrent Client-Library connections that can be made to remote servers
by Component Integration Services.
Summary Description
Default value 0
Status Dynamic
By default, Component Integration Services allows up to four connections per user to be made simultaneously
to remote servers. If you set the maximum number of users to 25, as many as 100 simultaneous Client-Library
connections are allowed by Component Integration Services.
If this number does not meet the needs of your installation, you can override the setting by specifying exactly
how many outgoing Client-Library connections you want the server to be able to make at one time.
Summary Description
Default value 0
Status Dynamic
Restricts the number of restart attempts and prevents the Job Scheduler restart feature from going into an
infinite loop.
Summary Description
Default value 3
Valid values 0 – 10. The value 0 indicates that the Job Scheduler Auto
restart feature is disabled.
Status Dynamic
Display level 10
Specifies the maximum amount of total physical memory that you can configure SAP ASE to allocate. max
memory must be greater than the total logical memory consumed by the current configuration of SAP ASE.
Summary Description
Status Dynamic
There is no performance penalty for configuring SAP ASE to use the maximum memory available to it on your
computer. However, assess the other memory needs on your system, or SAP ASE may not be able to acquire
enough memory to start.
If the memory is not available, SAP ASE does not start. If this occurs, reduce the memory requirements for
SAP ASE by manually changing the value of max memory in the server’s configuration file. You can also
change the value of allocate max shared memory to 0 so that not all memory required by max memory is
required at start-up.
You may also want to reduce the values for other configuration parameters that require large amounts of
memory. Then restart SAP ASE to use the memory specified by the new values. If SAP ASE fails to start
because the total of other configuration parameter values is higher than the max memory value, see System
Administration Guide: Volume 2 > Configuring Memory for information about configuration parameters that
use memory.
Summary Description
Default value 50
Status Dynamic
When the limit for the native threads is reached, SAP ASE sessions that require a native thread sleep until
another session releases a native thread.
Sets the maximum nesting level for stored procedures and triggers. Each increased nesting level requires
about 160 bytes of additional memory. For example, if you increase the nesting level from 16 to 26, SAP ASE
requires an additional 1600 bytes of memory.
Summary Description
Default value 50
Status Static
Specifies the maximum network packet size that can be requested by clients communicating with SAP ASE.
Summary Description
Status Static
If some of your applications send or receive large amounts of data across the network, these applications can
achieve significant performance improvement by using larger packet sizes. Two examples are large bulk-copy
operations and applications that read or write large text, unitext, and image values.
● default network packet size to be small for users who perform short queries, and
● max network packet size to be large enough to allow users who send or receive large volumes of data
to request larger packet sizes.
max network packet size must always be as large as, or larger than, the default network packet
size. Values that are not even multiples of 512 are rounded down.
For client applications that explicitly request a larger network packet size to receive, you must also configure
additional network memory.
Open Client Server cannot accept a network packet size greater than 64K.
See bcp and isql in the Utility Guide for information on using larger packet sizes from these programs. Open
Client Client-Library documentation includes information on using variable packet sizes.
Related Information
For best performance, choose a server packet size that works efficiently with the underlying packet size on
your network.
For example, if your network packet size carries 1500 bytes of data, setting the SAP ASE packet size to 1024
(512*2) will probably achieve better performance than setting it to 1536 (512*3). The figure below shows how
four different packet size configurations would perform in such a scenario.
Use sp_sysmon to see how changing max network packet size affects network I/O management and
task switching. For example, try increasing max network packet size and then checking sp_sysmon
output to see how this affects bcp for large batches. See the Performance and Tuning Series: Monitoring SAP
Adaptive Server with sp_sysmon.
Specifies how many levels deep SAP ASE peeks into a connections operating system receive buffer for a
pending cancel.
Summary Description
Default value 0
Status Dynamic
For example, if a client sends a new command followed by a cancel before SAP ASE finishes processing the
current command, SAP ASE peeks into the operating system's receive buffer to the depth specified by max
network peek depth. If the cancel occurs within the specified depth, both the current command and the
command preceding the cancel are discarded, and SAP ASE waits for the next command.
Specifies the maximum number of network listeners allowed by SAP ASE at one time.
Summary Description
Default value 5
Status Static
Each master port has one network listener. Generally, there is no need to have multiple master ports, unless
your SAP ASE must communicate over more than one network type. Some platforms support both socket and
TLI (Transport Layer Interface) network interfaces (SAP ASE does not support the TLI interface in threaded
mode). See the configuration guide for your platform for information on supported network types.
Places an upper limit of the number of engine threads that can be brought online. It does not take into account
the number of CPUs available at start-up, and allows users to add CPUs at a later date.
Summary Description
Default value 1
Status Static
See System Administration Guide: Volume 2 > Managing Multiprocessor Servers for a detailed discussion of
how to set this parameter for your SMP environment.
● Never have more engine threads online than there are CPUs.
● max engines online must be large enough to allow SAP ASE to bring all the engine thread pools online
simultaneously.
● Depending on overall system load (including applications other than SAP ASE), you may achieve optimal
throughput by leaving some CPUs free to run non-SAP ASE processes.
● You can achieve better throughput by running fewer engine threads with high CPU use, rather than by
running more engine threads with low CPU use.
● Scalability is application-dependent. Conduct extensive benchmarks on your application to determine the
best configuration of online engine threads.
● In process mode, use sp_engine to take engine threads offline or to bring them online. You can take all
engine threads offline except engine zero.
See Performance and Tuning Series: Basics > Using Engines and CPUs.
(Process mode only) Specifies the maximum number of Q engines you can have online, and is required for MQ.
Summary Description
Default value 0
Status Static
The maximum number of Q engines depends on the value of max online engines:
● max online q engines cannot be greater than max online engines minus number of engines
at startup. That is, if the value for max online engines is 57, and the value for number of engines
at startup is 28, the value for max online q engines cannot be greater than 29.
● Setting max online q engines reserves the high range of max online engines for Q engines. Once
you set max online q engines, SAP ASE engines can no longer use the engines in the range that is
reserved for Q engines. For example, if you set max online engines to 10 and set max online q
engines to 4:
○ SAP ASE issues an error if you attempt to bind an engine group to engines 6, 7, 8, or 9
○ You cannot change the value of number of engines at startup to 7, 8, or 9
○ You cannot add engines 6, 7, 8, or 9 to an engine group
Because setting max online q engines may affect existing production environments, SAP recommends
that you increase the value of max online engines by the same amount that you increase max online q
engines. For example, if you increase max online q engines by 4, also increase max online engines
by 4.
Related Information
Specifies the server-wide maximum number of worker processes allowed per query. This is called the
“maximum degree of parallelism.”
Summary Description
Default value 1
Status Dynamic
If max parallel degree is too low, the performance gain for a given query may not be as significant as
possible; if max parallel degree is too high, the server may compile plans that require more processes
than are actually available at execution time, or the system may become saturated, resulting in decreased
throughput. To enable parallel partition scans, set this parameter to be equal to or greater than the number of
partitions in the table you are querying.
The value of this parameter must be less than or equal to the current value of number of worker
processes.
Changing max parallel degree causes all query plans in the procedure cache to be invalidated, and new
plans are compiled the next time you execute a stored procedure or trigger.
See Performance and Tuning Series: Query Processing and Abstract Plans > Parallel Sorting
Related Information
Summary Description
Default value 0
Valid values 0 – 30
Status Static
Note
JVM support requires a single slot. Do not increase the number of slots.
For more information about PCI slots, see Java in SAP Adaptive Server Enterprise.
(Used when SAP ASE is in compatibility mode) Defines the number of worker processes to use for a given
query.
Summary Description
Default value 1
Status Static
See Performance and Tuning Series: Query Processing and Abstract Plans > Parallel Query Processing.
For more information about compatibility mode, see the Migration Technology Guide.
Related Information
Configures the amount of dynamic repartitioning SAP ASE requires, which enables SAP ASE to use horizontal
parallelism. However, if the number of partitions is too large, the system is flooded with worker processes that
compete for resources, which degrades performance.
Summary Description
Default value 1
Status Dynamic
The value for max repartition degree enforces the maximum number of partitions created for these
resources. If all of the tables and indexes are unpartitioned, SAP ASE uses the value for max repartition
degree to provide the number of partitions to create as a result of repartitioning the data.
Indicates the maximum percentage of the system’s resources a query can use.
Summary Description
Default value 10
Status Dynamic
max resource granularity is not enforced at execution time, but is only a guide for the query optimizer,
and does not prevent the query processor from running queries in parallel. The query engine can avoid some
memory-intensive strategies by using max resource granularity as a guide.
Summary Description
Default value 1
Status Dynamic
The degree of parallelism for hash-based scans may be used for the following access methods:
max scan parallel degree applies per table or index; that is, if max scan parallel degree is 3, and
one table in a join query is scanned using a hash-based table scan and the second can best be accessed by a
hash-based index scan, the query can use 6 worker processes (as long as max parallel degree is set to 6
or higher).
The optimizer uses max scan parallel degree as a guideline when it selects the number of processes to
use for parallel, nonpartition-based scan operations. It does not apply to parallel sort. Because there is no
partitioning to spread the data across devices, parallel processes can be accessing the same device during the
scan. This can cause additional disk contention and head movement, which may degrade performance. To
prevent multiple disk accesses from becoming a problem, use max scan parallel degree to reduce the
maximum number of processes that can access the table in parallel.
Set the value of max scan parallel degree to less than or equal to the current value of max parallel
degree. SAP ASE returns an error if you specify a number larger than the max parallel degree value.
If you set max scan parallel degree to 1, SAP ASE does not perform hash-based scans.
Changing max scan parallel degree causes all query plans in the procedure cache to be invalidated, and
new plans are compiled the next time you execute a stored procedure or trigger.
Specifies the amount of memory allocated per user connection for saving SQL text to memory shared by
Adaptive Server Monitor.
Summary Description
Default value 0
Status Static
If you do not allocate enough memory for the batch statements, the text you want to view may be truncated.
SAP recommends that you use an initial value of 1024 bytes of memory per user connection.
The total memory allocated from shared memory for the SQL text is the product of max sql text
monitored multiplied by the currently configured number of user connections.
Controls how many transfer history entries SAP ASE retains in the spt_TableTransfer table in each
database.
Summary Description
Default value 10
Status Dynamic
Lowering this parameter does not automatically remove any entries from spt_TableTransfer. Entries are
removed for a given transferred table the next time you initiate a transfer for that table. The table’s successful
transfer entries are cleared if the transfer succeeds. If the transfer is unsuccessful, its failed transfer entries
are cleared.
For example, if a table has 12 successful and 9 unsuccessful history entries in spt_configure, and you
change max transfer history to 5, the next successful transfer of that table places 5 successful entries in
spt_configure, but spt_configure retains the previous 9 failed entries.
Specifies the server-wide maximum number of worker processes allowed per query used by the create
index with consumers and update stats with consumers commands.
Summary Description
Default value 1
Status Dynamic
Sets the maximum number of conditions you can specify under which SAP ASE generates a dump of data in
shared memory.
Summary Description
Default value 10
Status Static
Note
This parameter is included for use only by SAP Technical Support. Do not modify it unless you are
instructed to do so by SAP Technical Support.
Allows you to set the server-wide maximum number of failed login attempts for logins and roles.
Summary Description
Default value 0
Status Dynamic
Display level 10
A value of -1 indicates that the failed login count in the syslogins column logincount is updated whenever
an authentication failure occurs, but that the account is not locked. Compare with a 0 (zero) value, which
avoids incrementing the column for every failed authentication and avoids locking the account due to
authentication failures.
See the Password Complexity Checks in the Security Administration Guide for information about password
checks and policies for authentication.
Sets limit, in bytes, on the maximum output a single job can produce.
Summary Description
Status Dynamic
If a job produces more output than specified in maximum job output, all the data returned above the value
you enter is discarded.
Determines the memory address boundary on which data caches are aligned.
Summary Description
Status Static
Some machines perform I/O more efficiently when structures are aligned on a particular memory address
boundary. To preserve this alignment, values for memory alignment boundary should always be powers of
two between the logical page size and 2048K.
Note
The memory alignment boundary parameter is included for support of certain hardware platforms. Do
not modify it unless you are instructed to do so by SAP Technical Support.
Summary Description
Default value 0
Status Dynamic
The compression levels range from 0 (no compression) to 9 (highest compression). The speed of the
compression is inversely proportional to the amount the dump is compressed. The lower the compression
level, the faster SAP ASE compresses the dump, but the size of the compressed file may be greater.
Summary Description
Status Dynamic
Each worker process requires memory for messaging during query processing. This memory is allocated from
a shared memory pool; the size of this pool is memory per worker process multiplied by number of
worker processes. For most query processing, the default size is more than adequate. If you use dbcc
checkstorage, and have set number of worker processes to 1, you may need to increase memory per
worker process to 1792 bytes.
Related Information
Summary Description
Status Dynamic
Summary Description
Default value 0
Status Dynamic
Summary Description
Default value 0
Status Dynamic
Summary Description
Default value 0
Status Dynamic
Summary Description
Default value 0
Status Dynamic
Controls the number of tables and indexes that SAP ASE can access in parallel.
Summary Description
Status Dynamic
If the number of pages in a table is below the value you set, the table is accessed serially. min pages for
parallel scan does not consider page size. If SAP ASE accesses the indexes and tables, SAP ASE attempts
to repartition the data, if that is appropriate, and to use parallelism above the scans, if that is appropriate.
Allows you to customize the length of server-wide password values or per-login or per-role password values.
Summary Description
Default value 6
Valid values 0 – 30
Status Dynamic
Display level 10
See Security Administration Guide > Set or Change the Minimum Password Length.
1.222 mnc_full_index_filter
Prevents SAP ASE from considering noncovered indexes that do not have a limiting search argument at the
server level, if there is a column in the index or a predicate that does not have a histogram.
Summary Description
Default value 2
● 0 – disable.
● 1 – enable.
● 2 – set according to the optimization goal setting.
Status Dynamic
You can use mnc_full_index_filter on data-only-locked (DOL) tables in which you have the intelligent
index scan, even though the intelligent index scan manufactures search arguments.
Changing the value of mnc_full_index_filter does not increase the amount of memory SAP ASE uses.
mnc_full_index_filter is not enabled for any specific optional goal; the only way to obtain the behavior is
to explicitly enable it.
Requires that all messages into and out of SAP ASE be encrypted.
Summary Description
Status Dynamic
Related Information
Summary Description
Status Dynamic
If msg integrity reqd is set to 1, SAP ASE allows the client connection to succeed unless the client is using
one of the following security services: message integrity, replay detection, origin checks, or out-
of-seq checks.
Related Information
Restricts login authentication to use only RSA encryption algorithm or the SAP proprietary algorithm.
Summary Description
Default value 0
Status Dynamic
Value Description
0 Allows the client to choose the encryption algorithm used for login passwords on the network, including no pass
word encryption.
1 Restricts clients to use either RSA or SAP proprietary encryption algorithms to encrypt login passwords on the
network. This provides an incrementally restrictive setting that allows clients who have previously connect to re
connect with the SAP proprietary algorithm and new clients to connect with the stronger RSA algorithm. A client
that attempts to connect without using password encryption fails.
2 Restricts clients to use only the RSA encryption algorithms to encrypt login passwords on the network. This pro
vides strong RSA encryption of passwords. Clients that attempt to connect without using the RSA encryption
fail.
3 SAP ASE allows only incoming clients that use the EPEP login protocol. The values 0, 1, and 2 also allow EPEP
login protocol to be used when a client that supports the login protocol attempts to use it with an SAP ASE that
implements the EPEP login protocol.
To connect to an SAP ASE server using the ddlgen utility when setting net password encryption reqd
to 1 or 2, use the parameter ddlgen -C parameter to specify your connection properties. See ddlgen in Utility
Guide.
Note
Setting the value to 2 or 3 increases network memory to support the maximum configured connections
using this protocol. additional network memory dynamically adds more memory to the network
memory pool used by EPEP. When the value is set to 3, the KPP Handler goes into sleep status. This is
because there is no need to provide new RSA key pair for every connection. Use sp_who to check the KPP
Handler status.
When a connection is refused because network password encryption is required, the client receives:
Summary Description
Status Static
● threaded – SAP ASE spawns a separate thread for each network task configured that performs polling.
● inline – one of the engines performs the polling.
● compact – each engine creates its own network controller to perform its polling. SAP recommends that
you set network polling mode to compact when there are multiple engine groups, and the load is
distributed across the engines.
However, separate threads may not show significant performance gains when running with a low engine
configuration. SAP ASE may suffer from contention between engines and the network threads when it runs
with a low engine configuration on machines with a lower number of CPUs.
Set the network polling mode configuration parameter to inline to avoid this contention. When you set
network polling mode to inline, one engine performs polling, eliminating the need for a separate thread.
On the Linux platform, setting the network polling mode to inline reduces CPU usage by using high-
resolution sleep APIs.
Note
When you set network polling mode to inline, the idle timeout configuration parameter controls
the number of times an SAP ASE engine loops while looking for a runnable task before releasing the CPU to
the operating system.
Summary Description
Default value 40
Status Dynamic
The Transact-SQL command waitfor defines a specific time, time interval, or event for the execution of a
statement block, stored procedure, or transaction. SAP ASE uses alarms to correctly execute waitfor
commands. Other internal processes require alarms.
When SAP ASE needs more alarms than are currently allocated, this message is written to the error log:
The number of bytes of memory required for each alarm structure is small. If you raise the value of number of
alarms significantly, adjust max memory accordingly.
Note
In a synchronous replication environment, you must increase the value for number of alarms by adding
the value to which you set the match the value for number of user connections configuration
parameter. For example, if the number of alarms is set to 40 (the default) and the number of user
connections is set to 2000, increase the number of alarms to 2040.
Related Information
Sets the number of auxiliary scan descriptors available in a pool shared by all users on a server.
Summary Description
Status Dynamic
Each user connection and each worker process has 48 scan descriptors exclusively allocated to it. Of these, 16
are reserved for user tables, 12 are reserved for worktables, and 20 are reserved for system tables (with 4 of
these set aside for rollback conditions). A descriptor is needed for each table referenced, directly or indirectly,
by a query. For user tables, a table reference includes:
If a table is referenced more than once (for example, in a self-join, in more than one view, or in more than one
subquery) the table is counted each time. If the query includes a union, each select statement in the union
query is a separate scan. If a query runs in parallel, the coordinating process and each worker process needs a
scan descriptor for each table reference.
When the number of user tables referenced by a query scan exceeds 16, or the number of worktables exceeds
12, scan descriptors from the shared pool are allocated. Data-only-locked tables also require a system table
descriptor for each data-only-locked table accessed with a table scan (but not those accessed with an index
scan). If more than 16 data-only-locked tables are scanned using table scans in a query, auxiliary scan
descriptors are allocated for them.
If a scan needs auxiliary scan descriptors after it has used its allotted number, and there are no descriptors
available in the shared pool, SAP ASE displays an error message and rolls back the user transaction.
If none of your queries need additional scan descriptors, you may still want to leave number of aux scan
descriptors set to the default value in case your system requirements grow. Set it to 0 only if you are sure
that users on your system will never run queries on more than 16 tables and that your tables will always have
few or no referential integrity constraints.
If your queries need more scan descriptors, use one of these methods to remedy the problem:
The following sections describe how to use sp_monitorconfig to monitor the current and high-water-mark
usage to avoid running out of descriptors, and how to estimate the number of scan descriptors you need.
sp_monitorconfig reports the number of unused (free) scan descriptors, the number of auxiliary scan
descriptors currently being used, the percentage that is active, and the maximum number of scan descriptors
used since the server was last started. Run it periodically, at peak periods, to monitor scan descriptor use.
Context
sp_monitorconfig reports the number of unused (free) scan descriptors, the number of auxiliary scan
descriptors currently being used, the percentage that is active, and the maximum number of scan descriptors
used since the server was last started. Run it periodically, at peak periods, to monitor scan descriptor use.
This example shows scan descriptor use with 500 descriptors configured:
Only 240 auxiliary scan descriptors are being used, leaving 260 free. However, the maximum number of scan
descriptors used at any one time since the last time SAP ASE was started is 427, leaving about 20 percent for
growth in use and exceptionally heavy use periods. “Re-used” does not apply to scan descriptors.
Procedure
1. Determine the number of table references for any query that references more than 16 user tables, or for
those that have a large number of referential constraints, by running the query with set showplan and
set noexec enabled. If auxiliary scan descriptors are required, showplan reports the number needed:
The reported number includes all auxiliary scan descriptors that are required for the query, including
those for all worker processes. If your queries involve only referential constraints, you can also use
sp_helpconstraint, which displays a count of the number of referential constraints per table.
2. For each query that uses auxiliary scan descriptors, estimate the number of users who would run the
query simultaneously and multiply. If 10 users are expected to run a query that requires 8 auxiliary
descriptors, a total of 80 will be needed at any one time.
3. Add the per-query results to calculate the number of needed auxiliary scan descriptors.
Sets the maximum number of user connections Backup Server establishes to dump or load in-memory
databases.
Summary Description
Default value 0
Status Dynamic
The value of number of backup connections restricts the maximum number of stripes for an archived
database because Backup Server requires one user connection per stripe when you run dump or load
database, and requires an extra connection to run the dump database command.
number of backup connections is a limit, and does not consume any resources. Setting number of
backup connections to 0 means that Backup Server can use the maximum number of user connections.
Summary Description
Default value 0
Status Static
Display level
Required role
Summary Description
Default value 1
Valid values 1– 8
Status Dynamic
The value of number of checkpoint tasks must be less than or equal to the value of number of engines at
start-up.
The maximum value is limited by the value of the configuration parameters number of engines at
startup and number of open databases, with a maximum of 8. The default value sets serial checkpoints
as the default behavior.
Related Information
Controls the number of database devices SAP ASE can use. It does not include devices used for database or
transaction log dumps.
Summary Description
Default value 10
Status Dynamic
When you execute disk init, you can also assign the virtual device number (the vdevno), although this
value is optional. If you do not assign the vdevno, SAP ASE assigns the next available virtual device number.
If you do assign the virtual device number, each device number must be unique among the device numbers
used by SAP ASE. The number 0 is reserved for the master device. You can enter any unused device number
that falls in the valid range of values.
If you are using a large number of devices on UNIX platforms, SAP recommends that you set the appropriate
number of devices and user connections in the configuration file. Attempting to configure a large number of
devices dynamically using sp_configure may fail.
The number of network connections and number of devices configuration parameters use operating
system file descriptors. You must increase the number of operating system file descriptors to use a large value
for either configuration parameter.
What constitutes a large number of devices is platform-specific. These are the upper limits for the number of
file descriptors for SAP ASE:
Note
Changing the number of file descriptors requires you restart SAP ASE for the change to take affect.
If there are insufficient number of file descriptors, SAP ASE issues an error message similar to:
If you then set the number of file descriptors to 2048 with the command ulimit -n 2048 and restart the
server, SAP ASE reports this message in the error log when you increase the value for the number of
devices:
Controls the number of tasks dedicated to polling and completing disk I/Os.
Summary Description
Default value 1
Windows: 1
Status Dynamic
Note
When increasing the value, the status is dynamic. When
decreasing the value, the status is static.
You only need to increase the value for number of disk tasks above 1 when monitoring indicates the
change is necessary.
Internally, when SAP ASE creates tasks and assigns them to syb_system_pool, it spawns a thread to run
that task. You can configure the number of disk tasks that causes SAP ASE to create more threads.
You should configure multiple disk tasks only if the single disk task becomes CPU bound. When this occurs,
you will see a very high (85% or higher) thread utilization for the disk task in sp_sysmon. At this level, I/O
latency may increase because the single disk task cannot process the completions fast enough. At this point, it
is appropriate to add additional task.
However, do not add additional disk tasks because I/O busy in engine utilization is high without first checking
the thread utilization for the disk task. A high value for I/O busy without a high value for Thread
Utilization for the disk tasks indicates that the bottleneck is within the host disk subsystem and not within
SAP ASE. Adding additional disk tasks does not help.
Unnecessary disk tasks may actually hurt performance, just has having more engines than necessary can hurt
performance, due to added spinlock contention, CPU context switching, and CPU cache hit issues that
accompany additional threads.
Summary Description
Status Dynamic
Display level 10
A DTX participant is an internal memory structure that the coordination service uses to manage a remote
transaction branch. As transactions are propagated to remote servers, the coordination service must obtain
new DTX participants to manage those branches.
Setting number of dtx participants to a number smaller than the default reduces the number of remote
transactions that the server can manage. If no DTX participants are available, new distributed transactions
Setting number of dtx participants to a number larger than the default increases the number of remote
transaction branches that SAP ASE can handle, but also consumes more memory.
For example:
If the num_free value is zero or very low, new distributed transactions may be unable to start due to a lack of
DTX participants. Consider increasing the number of dtx participants value.
A low Max_used value may indicate that unused DTX participants are consuming memory that could be used
by other server functions. Consider reducing the value of number of dtx participants.
Summary Description
Status Dynamic
Using the appropriate value for number of dump threads can reduce the amount of time the engines are halted
during the memory dump.
● Use a value of 8 if the machine has enough free memory for the file system cache to hold the entire
memory dump.
● If you do not know whether the machine has enough free memory, the value for number of dump threads
depends on many factors, including the speed of the I/O system, the speed of the disks, the controller’s
cache, whether the dump file lives in a logical volume manager created on several disks, and so on.
● Disable parallel processing (by assigning a value of 1) if you do not halt the engines when performing
memory dumps, described below.
When SAP ASE performs a memory dump, the number of files it creates is the sum of the number of
memory segments that it has allocated multiplied by the number of threads configured. SAP ASE uses
separate threads to write on separate files. When this job completes, the engines are restarted, and the
files are merged into the target dump file. Because of this, the time to dump the shared memory in parallel
is greater than doing it serially.
● If you halt the engines during the memory dump, using a value other than 1 may reduce the amount of time
the engines spend stopped while dumping the memory.
Configures the number of rows that are sent to the client in the first packet of a new result set.
Summary Description
Default value 0
Status Dynamic
SAP ASE assembles data and accumulates rows that wait in the send buffer, but does not send them until the
buffer has reached its configured size. If the packet size is large and if the query is one that takes a long time to
execute, these rows may sit for sometime before they are sent. When the rows are sent, they arrive at the
client simultaneously, and the client then spends time processing them individually. For large data transfers,
the larger the value for the network packet size the more efficient the overall transmission, but there is a time
lag during which the client is idle while the server waits for the first buffer to fill. Reducing the size of the
network packet size can improve response time, but at the cost of efficiency.
The number of early send rows and early row send increment configuration parameters allow you
to configure the number of rows that sit in the send buffer, and can reduce the amount of wait time:
For example, if you set the value for number of early send rows to 2, the server sends the rows in the
buffer when it contains 2 rows. The client receives the initial rows more quickly and processes them while the
server is working on the next set of rows in the query. If you subsequently set the value for early row send
increment to 20,000, the server sends the second set of rows in the buffer when it contains 2 + 20,000 rows
and adds the value 20,000 to the value for number of early send rows for each subsequent buffer: that is, 2 +
20,000 + 20,000 for the third buffer and so on.
Related Information
Is used exclusively during start-up to set the number of engines brought online.
Summary Description
Default value 1
Status Static
It allows great flexibility, subject to the restriction that you cannot set the value of number of engines at
startup to a value greater than the number of CPUs on your machine, or to a value greater than the
configuration of max online engines.
Note
When configured for threaded mode, SAP ASE ignores the number of engines at startup
configuration parameter. In threaded mode, SAP ASE uses the size of the defined thread pools to determine
the number of online engines at startup. If the configuration file contains no thread pool configuration
information (for example, while you are upgrading from an earlier version), SAP ASE uses the existing value
for number of engines at startup to determine the size the default engine pool.
SAP ASE allows users to take all engines offline, except engine zero.
Related Information
Summary Description
Default value 20
Status Dynamic
Specifies the number of times an aged index page traverses the most recently used/least recently used
(MRU/LRU) chain before it is considered for swapping out.
Summary Description
Default value 0
Status Dynamic
As you increase the value of number of index trips, index pages stay in cache for longer periods of time.
A data cache is implemented as an MRU/LRU chain. As the user threads access data and index pages, these
pages are placed on the MRU end of the cache’s MRU/LRU chain. In some high transaction environments (and
in some benchmarks), you may want to keep index pages in cache, since they will probably be needed again
soon. Setting number of index trips higher keeps index pages in cache longer; setting it lower allows
index pages to be swapped out of cache sooner.
You need not set the number of index trips for relaxed LRU pages. See System Administration Guide:
Volume 2 > Configuring Data Caches.
Note
If the cache used by an index is relatively small (especially if it shares space with other objects) and you
have a high transaction volume, do not set number of index trips too high. The cache can flood with
pages that do not age out, and this may lead to the timing out of processes that are waiting for cache space.
Before changing the value of number of index trips to a number other than 0, make sure the
application has sufficient cache to store all index, OAM, and data pages. Consult SAP Technical Support
before changing the value of number of index trips.
Enables the Java VM and the java.net classes that SAP supports.
Summary Description
Default value 0
Status Dynamic
Sets the number of allocation unit-sized buffers reserved for performing large I/O for certain SAP ASE utilities.
Summary Description
Default value 6
Status Dynamic
These large I/O buffers are used primarily by the load database command, which uses one buffer to load
the database, regardless of the number of stripes it specifies. load database then uses as many as 32
buffers to clear the pages for the database it is loading. These buffers are not used by load transaction. To
perform more than six load database commands concurrently, configure one large I/O buffer for each load
database command.
create database and alter database use these buffers for large I/O while clearing database pages. Each
instance of create database or load database can use as many as 32 large I/O buffers.
These buffers are also used by disk mirroring and by some dbcc commands.
Note
In SAP ASE version 12.5.0.3 and later, the size of the large I/O buffers is one allocation (256 pages), not one
extent (8 pages). The server thus requires more memory allocation for large buffers. For example, a disk
buffer that required memory for 8 pages in earlier versions now requires memory for 256 pages.
Sets the total number of available locks for all users on SAP ASE.
Summary Description
Status Dynamic
The total number of locks needed by SAP ASE depends on the number of concurrent and parallel processes,
and the types of actions performed by the transactions. To see how many locks are in use at a particular time,
use sp_lock.
For serial operation, SAP suggests that you start by assigning 20 locks for each active, concurrent connection.
Parallel execution requires more locks than serial execution. For example, if you find that queries use an
average of five worker processes, try increasing by one-third the number of locks configured for serial
operation.
SAP ASE reports error 1204 when it runs out of locks. If users report lock errors, you may need to increase
number of locks; but remember that locks use memory. See System Administration Guide Volume 2 >
Configuring Memory. Use sp_monitorconfig to view the statistics for currently used locks. See
Troubleshooting: Error Messages Advanced Resolutions for information about resolving error message 1204.
Note
Datarows locking may require that you change the value for number of locks. See the Performance and
Tuning Series: Locking and Concurrency Control.
Summary Description
Default value 30
Status Dynamic
Mailboxes, which are used with messages, are used internally by SAP ASE for communication and
synchronization between kernel service processes. Mailboxes are not used by user processes. Do not modify
this parameter unless instructed to do so by SAP Technical Support.
Summary Description
Default value 64
Status Dynamic
Messages, which are used with mailboxes, are used internally by SAP ASE for communication and
synchronization between kernel service processes. Messages are also used to coordinate between a family of
processes in parallel processing.
Summary Description
Default value 1
Status Dynamic
number of network tasks functions only when network polling mode is set to threaded.
Related Information
Specifies the number of times an object allocation map (OAM) page traverses the MRU/LRU chain before it is
considered for swapping out. The higher the value, the longer that aged OAM pages stay in cache.
Summary Description
Default value 0
Status Dynamic
Configuration group
Each table, and each index on a table, has an OAM page, which holds information on pages allocated to the
table or index and is checked when a new page is needed for the index or table. A single OAM page can hold
allocation mapping for between 2,000 and 63,750 data or index pages.
The OAM pages point to the allocation page for each allocation unit where the object uses space. The
allocation pages, in turn, track the information about extent and page usage within the allocation unit.
In some environments and benchmarks that involve significant allocations of space (that is, massive bulk copy
operations), keeping OAM pages in cache longer improves performance. Setting number of oam trips to a
higher value keeps OAM pages in cache.
Note
If the cache is relatively small and used by a large number of objects, do not set number of oam trips
too high. This may result in the cache being flooded with OAM pages that do not age out, and user threads
may begin to time out.
Before changing the value of number of oam trips to a number other than 0, make sure the application
has sufficient cache to store all index, OAM, and data pages. Consult SAP Technical Support before
changing the value of number of oam trips.
Sets the maximum number of databases that can be open simultaneously on SAP ASE.
Summary Description
Default value 12
Status Dynamic
When you calculate a value, include the system databases master, model, sybsystemprocs, and tempdb. If
you have installed auditing, include the sybsecurity database. Also, count the sample databases pubs2 and
pubs3, the syntax database sybsyntax, and the dbcc database dbccdb if they are installed.
If you are planning to make a substantial change, such as loading a large database from another server, use
sp_helpconfig to calculate an estimated metadata cache size by using sp_helpconfig. sp_helpconfig
displays the amount of memory required for a given number of metadata descriptors, as well as the number of
descriptors that can be accommodated by a given amount of memory. A database metadata descriptor
represents the state of the database while it is in use or cached between uses.
If SAP ASE displays a message saying that you have exceeded the allowable number of open databases, adjust
the value.
Procedure
The best time to run sp_countmetadata is when there is little activity on the server. Running
sp_countmetadata during a peak time can cause contention with other processes.
There are 50 databases, requiring 1719 Kbytes of memory. The 'open databases'
configuration parameter is currently set to 500.
This new configuration number is only a starting point; base the ideal size on the number of active
metadata database cache descriptors, not the total number of databases.
In this example, 20 metadata database descriptors are active; the maximum number of descriptors that
have been active since the server was last started is 26.
If there is a lot of activity on the server, for example, if databases are being added or dropped, periodically
run sp_monitorconfig. Reset the cache size as the number of active descriptors changes.
Sets the maximum number of indexes that can be used simultaneously on SAP ASE.
Summary Description
Status Dynamic
If you are planning to make a substantial change, such as loading databases with a large number of indexes
from another server, use sp_helpconfig to calculate an estimated metadata cache size. sp_helpconfig
displays the amount of memory required for a given number of metadata descriptors, as well as the number of
descriptors that can be accommodated by a given amount of memory. An index metadata descriptor
represents the state of an index while it is in use or cached between uses.
If the default value of number of open indexes is insufficient, SAP ASE displays a message after trying to
reuse active index descriptors, and you must adjust this value.
Procedure
The best time to run sp_countmetadata is when there is little activity in the server. Running
sp_countmetadata during a peak time can cause contention with other processes.
This new configuration is only a starting point; base the ideal size on the number of active index metadata
cache descriptors, not the total number of indexes.
3. During a peak period, find the number of active index metadata descriptors:
In this example, 590 is the maximum number of index descriptors that have been used since the server
was last started.
If there is a lot of activity on the server, for example, if tables are being added or dropped, periodically run
sp_monitorconfig. Reset the cache size as the number of active descriptors changes.
Sets the maximum number of objects that can be open simultaneously on SAP ASE.
Summary Description
Status Dynamic
If you are planning to make a substantial change, such as loading databases with a large number of objects
from another server, use sp_helpconfig to recalculate an estimated metadata cache size. sp_helpconfig
displays the amount of memory required for a given number of metadata descriptors, as well as the number of
descriptors that can be accommodated by a given amount of memory. An object metadata descriptor
represents the state of an object while it is in use, or cached between uses.
If the default number of open objects is insufficient, SAP ASE displays a message after trying to reuse
active object descriptors.
Procedure
1. Use sp_countmetadata to find the total number of object metadata cache descriptors:
The best time to run sp_countmetadata is when there is little activity in the server. Running
sp_countmetadata during a peak time can cause contention with other processes.
1407 covers the 1340 user objects, plus 5 percent to accommodate temporary tables.
This new configuration is only a starting point; base the ideal number on the active object metadata cache
descriptors, not the total number of objects.
3. During a peak period, find the number of active metadata cache descriptors:
In this example, 1497 is the maximum number of object descriptors that have been used since the server
was last started.
4. Configure the number of open objects to 1497, plus 10 percent (150), for a total of 1647:
Results
If there is a lot of activity on the server, for example, if tables are being added or dropped, periodically run
sp_monitorconfig. Reset the cache size as the number of active descriptors changes. See
sp_monitorconfig in the Reference Manual: Procedures.
Specifies the number of partitions that SAP ASE can access at one time.
Summary Description
Status Dynamic
If the default value of number of open partitions is insufficient, SAP ASE displays a message after trying
to reuse active partition descriptors. You must adjust this value.
This example assumes a system administrator has set the number of open partitions to 110:
The best time to run sp_countmetadata is when there is little activity in the server. Running
sp_countmetadata during a peak time can cause contention with other processes.
2. During a peak period, find the number of active metadata cache descriptors, for example:
In this example, 83 is the maximum number of partition descriptors that have been used since the server
was last started.
3. Configure the number of open partitions to 83, plus 10 percent (8), for a total of 91:
If there is a lot of activity on the server, for example, if tables are being added or dropped, periodically run
sp_monitorconfig. Reset the cache size as the number of active descriptors changes. See
sp_monitorconfig in the Reference Manual: Procedures.
Specifies the number of extents (eight pages) allocated in a single trip to the page manager.
Summary Description
Default value 2
Status Dynamic
Currently, this parameter is used only by bcp to improve performance when copying in large amounts of data.
By default, bcp allocates two extents at a time and writes an allocation record to the log each time.
Setting number of pre-allocated extents means that bcp allocates the specified number of extents
each time it requires more space, and writes a single log record for the event.
An object may be allocated more pages than actually needed, so the value of number of pre-allocated
extents should be low if you are using bcp for small batches. If you are using bcp for large batches, increase
the value of number of pre-allocated extents to reduce the amount of overhead required to allocate
pages and to reduce the number of log records.
Using a value of 32 for number of pre-allocated extents has a special significance for configuration
and impacts the space allocations SAP ASE performs internally.
If you set number of pre-allocated extents to 32, SAP ASE reserves an entire allocation unit worth of
extents for utility operations like bcp-in and select into, both of which use the large-scale allocation
scheme of space reservation. This greatly improves the performance of these utilities, particularly when you
run them concurrently on multiple nodes. Consequently, using a value of 32 guarantees that each node of a
cluster is able to work independently on its own allocation unit without interference from the other nodes.
In earlier versions of SAP ASE, the number of pre-allocated extents parameter specified the number
of extents reserved in a single allocation call for tables of all sizes.
With this version of SAP ASE, the value of number of pre-allocated extents is ignored for large tables
with 240 or more pages for these commands only:
When you run these command on tables larger than 240 pages, SAP ASE reserves an entire allocation unit (32
extents), which greatly improves performance, particularly when you run them concurrently on multiple
nodes.
The value of number of pre-allocated extents continues to be observed for the above commands for
tables with fewer than 240 pages, and for all commands (such as select into, bcp, alter table
partition) for tables of all sizes.
Specifies the number of Q engines that are online when the server starts, a requirement for MQ.
Summary Description
Default value 0
Status Static
You may need to increase max online engines to accommodate the number of max online q engines.
Related Information
Specifies the number of logical connections that can simultaneously be open to and from an SAP ASE.
Summary Description
Default value 20
Status Dynamic
Each simultaneous connection to XP Server for ESP execution uses up to one remote connection each.
Controls the number of active user connections from SAP ASE to remote servers.
Summary Description
Default value 20
Status Static
Each simultaneous connection to XP Server for ESP execution uses up to one remote login each. Set this
parameter to the same (or a lower) value as number of remote connections.
Related Information
Determines the maximum number of remote sites that can simultaneously access SAP ASE.
Summary Description
Default value 10
Status Static
Each SAP ASE-to-XP Server connection uses one remote site connection.
Internally, number of remote sites determines the number of site handlers that can be active at any one
time; all server accesses from a single site are managed with a single site handler. For example, if you set
number of remote sites to 5, and each site initiates three remote procedure calls, sp_who shows 5 site
handler processes for the 15 processes.
Specifies the amount of memory allocated for buffers used to hold pages read from input tables and perform
index merges during sorts. number of sort buffers is used only for parallel sorting.
Summary Description
Status Dynamic
SAP ASE allocates sort buffers from the cache to which the table is bound. If the cache is not bound to a table,
SAP ASE allocates the sort buffers from the cache to which the database is bound. If the cache is not bound to
a table or a database, SAP ASE allocates sort buffers from the default data cache.
See Performance and Tuning Series: Query Processing and Abstract Plans > Using Statistics to Improve
Performance.
The value you use for number of sort buffers depends on the page size of the server.
SAP recommends that you leave this parameter set to the default except when you are creating indexes in
parallel.
Setting the value too high can rob nonsorting processes of access to the buffer pool in caches being used to
perform sorts.
If you configure a high number of sort buffers, a sort on a large table may require more procedure cache. The
effect is more pronounced with tables that have smaller row sizes, because the number of rows per page is
higher.
This equation estimates the amount of procedure cache required (in bytes):
If you do not configure enough procedure cache for the number of sort buffers, the sort may fail with error
message 701. If this occurs, reconfigure SAP ASE with a lower number of sort buffers and retry the sort.
Sets the maximum number of user connections that can simultaneously be connected to SAP ASE. It does not
refer to the maximum number of processes; that number depends not only on the value of this parameter but
also on other system activity.
Summary Description
Default value 25
Status Dynamic
The maximum allowable number of file descriptors per process is operating-system-dependent; see the
configuration documentation for your platform.
The number of file descriptors available for SAP ASE connections is stored in the global variable<
@@max_connections>. You can report the maximum number of file descriptors your system can use with:
select @@max_connections
The return value represents the maximum number of file descriptors allowed by the system for your
processes, minus overhead. Overhead increases with the number of engines. For more information on how
multiprocessing affects the number file descriptors available for SAP ASE connections, see System
Administration Guide: Volume 2 > Managing Multiprocessor Servers.
In addition, you must reserve a number of connections for the following items, which you also set with
configuration parameters:
The number of user connections + (number of devices * max online engines * 2) + number of
remote sites + max number network listeners cannot be greater than the value of
<@@max_connections>.
One connection from the configured number of connections is reserved for temporary administrative tasks to
make sure that database administrators can connect to SAP ASE.
A reserved connection has a total login time of 15 minutes, and can be is allocated only to a user who has the
sa_role. SAP ASE terminates the connection after 15 minutes to ensure the availability of the reserved
connection at an installation with multiple database administrators.
SAP ASE also automatically uses this reserved connection when a client uses the last resource for connecting
to SAP ASE.
If SAP ASE is using a reserved connection, the following informational message appears when the user logs in
to SAP ASE:
There are not enough user connections available; you are being connected
using a temporary administrative connection which will time out after '15'
minutes. Increase the value of the 'number of user connections' parameter
SAP ASE also prints a message similar to the following to the error log when the final connection to SAP ASE
terminates due to a timeout:
There is no formula to determine how many connections to allow for each user.
You must estimate this number, based on the system and user requirements. You must also take into account
that on a system with many users, connections needed only occasionally or transiently can generally be
shared among users. The following processes require user connections:
Note
SAP suggests that you estimate the maximum number of connections used by SAP ASE and update
number of user connections as you add physical devices or users to the system. Periodically use
sp_who to determine the number of active user connections on your SAP ASE.
Certain other configuration parameters, including stack size and default network packet size, affect
the amount of memory for each user connection.
Specifies the maximum number of worker processes that SAP ASE can use at any one time for all
simultaneously running parallel queries.
Summary Description
Default value 0
Status Dynamic
If you have not configured number of worker processes for a sufficient number of threads from the
worker thread pool, SAP ASE adjusts query plans at runtime to use fewer worker threads. If SAP ASE cannot
adjust the queries at runtime, the queries recompile serially. However, alter table and execute
immediate commands are aborted if they do not have sufficient worker threads.
Related Information
Indicates the maximum per-process number of file descriptors configured for your operating system. This
parameter is read-only and cannot be configured through SAP ASE.
Summary Description
Default value 0
Status Read-only
Many operating systems allow you to configure the number of file descriptors available per process. See your
operating system documentation.
The number of file descriptors available for SAP ASE connections, which is less than the value of o/s file
descriptors, is stored in the variable <@@max_connections>.
Controls whether SAP ASE collects timing statistics for requests of locks on objects.
Summary Description
Status Dynamic
(Multiprocessing systems only) Sets the number of index metadata descriptor hash tables that are protected
by one spinlock.
Summary Description
Status Dynamic
All the index descriptors belonging to a table are accessible through a hash table. When you run a query on the
table, SAP ASE uses hash tables to look up the necessary index information in its sysindexes rows. A hash
table is an internal mechanism used by SAP ASE to retrieve information quickly.
Usually, you do not need to change this parameter. In rare instances, however, you may need to reset it if SAP
ASE demonstrates contention from hash spinlocks. See the Performance and Tuning Series: Monitoring SAP
Adaptive Server with sp_sysmon.
For more information about configuring spinlock ratios, see System Administration Guide: Volume 2 >
Managing Multiprocessor Servers.
Specifies the number of index metadata descriptors that are protected by one spinlock.
Summary Description
Status Dynamic
SAP ASE uses a spinlock to protect an index descriptor, since more than one process can access the contents
of the index descriptor. open index spinlock ratio is used only in multiprocessing systems.
The value specified for this parameter defines the ratio of index descriptors per spinlock.
If one spinlock is shared by too many index descriptors, it can cause spinlock contention. Use sp_sysmon to
get a report on spinlock contention. See the Performance and Tuning Series: Monitoring SAP Adaptive Server
with sp_sysmon.
If sp_sysmon output indicates an index descriptor spinlock contention of more than 3 percent, try decreasing
the value of open index spinlock ratio.
(Multiprocessing systems only) Specifies the number of object descriptors that are protected by one spinlock.
Summary Description
Status Dynamic
SAP ASE uses a spinlock to protect an object descriptor, since more than one process can access the contents
of the object descriptor.
The default value for this parameter is 100; 1 spinlock for each 100 object descriptors configured for your
server. If your server is configured with only one engine, SAP ASE sets only 1 object descriptor spinlock,
regardless of the number of object descriptors.
If one spinlock is shared by too many object descriptors, it causes spinlock contention. Use sp_sysmon to get
a report on spinlock contention. See the Performance and Tuning Series: Monitoring SAP Adaptive Server with
sp_sysmon.
If sp_sysmon output indicates an object descriptor spinlock contention of more than 3 percent, try decreasing
the value of the open object spinlock ratio parameter.
Summary Description
Status Dynamic
Optimization goals are a convenient way to match user query demands with the best optimization techniques,
ensuring optimal use of the optimizer’s time and resources. SAP ASE allows users to configure for two
optimization goals, which you can specify at three tiers: server level, session level, and query level.
The server-level optimization goal is overridden at the session level, which is overridden at the query level.
These optimization goals allow you to choose an optimization strategy that best fits your query environment:
Allows stored procedures that reference temporary tables created outside the procedure to not require
recompiling for each execution.
Summary Description
Status Dynamic
Specifies the amount of time, as a fraction of the estimated execution time of the query, that SAP ASE can
spend optimizing a query.
Summary Description
Default value 10
Status Dynamic
Summary Description
Default value 5
Status Dynamic
SAP ASE supports multiple iterations of dump database copying pages to the archive. That is, at the end of the
first iteration, changes that have been made to the database while the first iteration was active, are copied by
Backup Server to the archive in a second iteration. The set of changes in each iteration is less than those in the
previous iteration, giving load database less changes to recover. A maximum of four iterations can be
performed.
When optimize dump for fast load is set to 0, a single iteration is done.
Whenoptimize dump for fast load is set to a non-zero value, it represents the minimum percentage of
data pages (not log pages) in the database that have changed relative to the total number of in-use data pages
in the database since the start of the current iteration in order for the next iteration to be performed (up to a
maximum of 4 iterations).
Summary Description
Status Dynamic
Display level
The values for optimizer level are character data, so you must use 0 as a placeholder for the second
parameter, which must be numeric.
See Performance and Tuning Series: Query Processing and Abstract Plans > Controlling Optimization for
information about optimization levels.
Summary Description
Status Dynamic
When the number of page locks acquired during a scan session exceeds page lock promotion hwm, SAP
ASE attempts to acquire a table lock. page lock promotion hwm value cannot be higher than number of
locks.
For more detailed information on scan sessions and setting up page lock promotion limits, see Performance
and Tuning Series: Locking and Concurrency Control > Locking Configuration and Tuning.
The default value for page lock promotion hwm is appropriate for most applications. To avoid table
locking, you may want to increase the value. For example, if you know that there are regular updates to 500
pages of an allpages-locked or datapages-locked table containing thousands of pages, increase concurrency
for the tables by setting page lock promotion hwm to 500.
Use sp_sysmon to see how changing page lock promotion hwm affects the number of lock promotions.
sp_sysmon reports the ratio of exclusive page to exclusive table lock promotions and the ratio of shared page
to shared table lock promotions. See the Performance and Tuning Series: Monitoring SAP Adaptive Server with
sp_sysmon.
Related Information
page lock promotion lwm (low-water mark), with page lock promotion hwm (high-water mark) and
page lock promotion pct, specify the number of page locks permitted during a single scan session of a
page locked table or an index before SAP ASE attempts to promote from page locks to a table lock.
Summary Description
Status Dynamic
The page lock promotion lwm sets the number of page locks below which SAP ASE does not attempt to
issue a table lock on an object. page lock promotion lwm must be less than or equal to page lock
promotion hwm.
The default value for page lock promotion lwm is sufficient for most applications. If SAP ASE runs out of
locks (except for an isolated incident), increase number of locks.
See the Performance and Tuning Series: Locking and Concurrency Control.
You can also configure page lock promotion at the object level. See sp_setpglockpromote in the Reference
Manual: Procedures.
Sets the percentage of page locks (based on the table size) above which SAP ASE attempts to acquire a table
lock..
Summary Description
Status Dynamic
If the number of locks held on an object is between page lock promotion lwm (low-water mark) and page
lock promotion hwm (high-water mark)
See Performance and Tuning Series: Locking and Concurrency Control > Locking Configuration and Tuning.
The default value for page lock promotion pct is appropriate for most applications.
You can also configure lock promotion at the object level for page locked objects. See
sp_setpglockpromote in the Reference Manual: Procedures.
Related Information
Is used during page allocations to control whether SAP ASE scans a table’s object allocation map (OAM) to
find unused pages or simply allocates a new extent to the table.
Summary Description
Default value 95
Status Dynamic
The page utilization percent parameter is a performance optimization for servers with very large
tables; it reduces the time needed to add new space.
If you set page utilization percent to 100, SAP ASE scans through all OAM pages to find unused pages
allocated to the object before allocating a new extent. When this parameter is set lower than 100, SAP ASE
compares the page utilization percent setting to the ratio of used and unused pages allocated to the
table, as follows:
If page utilization percent is lower than the ratio, SAP ASE allocates a new extent instead of searching
for the unused pages.
For example, when inserting data into a 10GB table that has 120 OAM pages and only 1 unused data page:
● A page utilization percent of 100 tells SAP ASE to scan through all 120 OAM pages to locate an
unused data page.
● A page utilization percent of 95 allows SAP ASE to allocate a new extent to the object, because 95
is lower than the ratio of used pages to used and unused pages.
A low page utilization percent value results in more unused pages. A high page utilization
percent value slows page allocations in very large tables, as SAP ASE performs an OAM scan to locate each
unused page before allocating a new extent. This increases logical and physical I/O.
If page allocations (especially in the case of large inserts) seem to be slow, lower the value of page
utilization percent, but reset it after inserting the data. A lower setting affects all tables on the server
and results in unused pages in all tables.
Fast bulk copy ignores the page utilization percent setting and always allocates new extents until there
are no more extents available in the database.
Specifies the maximum number of partition groups that can be allocated by SAP ASE.
Summary Description
Status Dynamic
Partition groups are internal structures used by SAP ASE to control access to individual partitions of a table.
Partition groups are used while upgrading or during a load database upgrade to unpartition SAP ASE 12.5.x
and earlier partitions.
The default value allows a maximum 1024 open partition groups and a maximum of 2147483647 open
partitions. The actual number of partitions may be slightly less, due to the grouping of partitions.
For SAP ASE servers running with multiple engines, sets the number of rows in the partition descriptors that
are protected by one spinlock.
Summary Description
Default value 10
Status Dynamic
SAP ASE manages access to table partitions using partition descriptors. Each partition descriptor stores
information about a partition (for example, the last page of the partition) that processes must use when
accessing that partition. Configure partition descriptors using number of open partitions.
Related Information
Sets the size of the pluggable component interface (PCI) memory pool.
Summary Description
Default value 64 MB
Status Dynamic
All pluggable component adapter (PCA) and JVM plug-ins running under the PCI Bridge share a single
dedicated PCI memory pool. If you set pci memory size to less than the default, SAP ASE uses the default
size.
This memory pool is fully dedicated to the PCI bridge and any running pluggable component. Like all other
memory pools, SAP ASE controls this memory pool. However, unlike other memory pools, the PCI memory
pool is allocated when you initialize the PCI Bridge and does not grow after that time.
Summary Description
Status Dynamic
Specifies the percentage of the total space available in sybmgmtdb that is reserved for the js_history table.
Summary Description
Default value 20
Status Dynamic
Increase percent database for history if there are more jobs running, or to store historical records
about executed jobs for future queries.
Specifies the percentage of the total space available in sybmgmtdb that is reserved for job output.
Summary Description
Default value 30
Status Dynamic
Increase the default value if there are more jobs running or jobs that produce lot of output that must be stored
for querying.
Summary Description
Default value 30
Status Dynamic
For example, if you use the default value, SAP ASE starts purging the oldest history records to make room for
new records when 70 percent of sybmgmtdb is filled.
Specifies the percentage of reserved space kept free in sybmgmtdb that is reserved for Job Scheduler output.
Summary Description
Default value 50
Status Dynamic
For example, if you use the default value, SAP ASE starts purging the oldest history records to make room for
new records when 50 percent of sybmgmtdb is filled.
Enables the license for the BMC DBXray graphical performance monitoring and diagnostic tool .
Summary Description
Status Dynamic
Determines the number of cache protectors per task, increasing the amount of memory for each user
connection and worker process.
Summary Description
Default value 64
Status Dynamic
Information about user permissions is held in the permission cache. When SAP ASE checks permissions, it
looks first in the permission cache; if it does not find what it needs, it looks in the sysprotects table. This
process is significantly faster if SAP ASE finds the information it needs in the permission cache and does not
have to read sysprotects.
However, SAP ASE looks in the permission cache only when it is checking user permissions, not when
permissions are being granted or revoked. When a permission is granted or revoked, the entire permission
cache is flushed. This is because existing permissions have timestamps that become outdated when new
permissions are granted or revoked.
If users on your SAP ASE frequently perform operations that require their permissions to be checked, you may
see a small performance gain by increasing the value of permission cache entries. This effect is not
likely to be significant enough to warrant extensive tuning.
If users on your SAP ASE frequently grant or revoke permissions, avoid setting permission cache entries
to a large value. The space used for the permission cache would be wasted, since the cache is flushed with
each grant and revoke command.
physical lock cushion allows you to allocate a sufficient number of locks to prevent out-of-lock
conditions, which can occur during instance startup, shutdown, failover, or on badly partitioned environments.
Summary Information
Status Dynamic
The value for physical lock cushion is a percentage, and can be any value between 0 (the default) and
100.
Summary Description
Status Dynamic
If both plan text pipe active and plan text pipe max messages are enabled, SAP ASE collects the
plan text for each query. You can use monSysPlanText to retrieve the query plan text for all user tasks.
Related Information
Determines the number of query plan text messages SAP ASE stores per engine.
Summary Description
Default value 0
Status Dynamic
The total number of messages in the monSQLText table is the value of sql text pipe max messages
multiplied by the number of engines running.
Related Information
Summary Description
Status Dynamic
If you are experiencing recurring deadlocks, setting print deadlock information to 1 provides you with
detailed information in the error log that can be useful in tracing the cause of the deadlocks. However, setting
Use sp_sysmon output to determine whether deadlocks are occurring in your application. If they are, set
print deadlock information to 1 to learn more about why they are occurring. See the Performance and
Tuning Series: Monitoring SAP Adaptive Server with sp_sysmon.
A value of 2 allows you to print a summary of deadlock information to the error log (as opposed to the detailed
information a value of 1 provides). For example:
Deadlock Id 34: Process (Familyid 0, Spid 70) was waiting for a 'exclusive page'
lock on page 10858346 of the 'equineline_job' table in database 18 but process
(Familyid 0, Spid 88) already held a 'exclusive page' lock on it.
Deadlock Id 34: Process (Familyid 0, Spid 88) was waiting for a 'exclusive page'
lock on page 11540986 of the 'equineline_job' table in database 18 but process
(Familyid 0, Spid 70) already held a 'update page' lock on it.
Determines what information SAP ASE displays on the console during recovery. (Recovery is performed on
each database at SAP ASE start-up and when a database dump is loaded.)
Summary Description
Status Dynamic
The default value means that SAP ASE displays only the database name and a message saying that recovery is
in progress. A value of 1 indicates that SAP ASE displays information about each individual transaction
processed during recovery, including whether it was aborted or committed.
Summary Description
Status Dynamic
SAP ASE uses the procedure cache while running stored procedures. If the server finds a copy of a procedure
already in the cache, it does not need to read it from the disk. SAP ASE also uses space in the procedure cache
to compile queries while creating stored procedures.
Since the optimum value for procedure cache size differs from application to application, resetting it may
improve SAP ASE performance. For example, if you run many different procedures or ad hoc queries, your
application uses the procedure cache more heavily, so you may want to increase this value.
Caution
SAP ASE performance degrades if procedure cache size is too small.
If you are upgrading, procedure cache size is set to the size of the original procedure cache at the time of
upgrade.
Enables or disables compiling statements that reference local variables or temporary tables inside a stored
procedure until execution time, so that the optimization of those statements can use runtime values, instead
of estimations.
Summary Description
Status Dynamic
Controls whether SAP ASE collect statistics for each wait event for every task.
Summary Description
Status Dynamic
You can get wait information for a specific task using monProcessWaits.
Affects optimization. SAP ASE changes the group by algorithm, and you cannot use set statistics I/O with
parallel plans.
Summary Description
Default value 20
Valid values
Status Dynamic
Summary Description
Default value 5
Valid values 1 – 60
Status Dynamic
Setting quorum heartbeat interval to a lower number increases the heartbeat overhead but speeds the
detection of a lost disk link, resulting in a quicker termination of an instance for which you have set I/O fencing
or that has lost its SAN link. Setting quorum heartbeat interval to a high number reduces heartbeat
overhead, but delays the detection of a lost disk link.
Specifies the number of times an instance attempts to detect a quorum heartbeat before determining that the
quorum device is no longer running, and exiting.
Summary Description
Default value 2
Status Dynamic
A value of 0 indicates that the instance should terminate upon the first quorum heartbeat failure.
Tuning this to a lower number causes an instance to fail over more quickly when access to the quorum device
is lost, potentially improving application recovery times. Tuning this to a higher number degrades application
recovery, reducing the chances that a transient disk access problem causes an instance failure.
Summary Description
Status Static
● Tables
● Views
● Column names
● Index names
● System procedure parameters
Note
The default value for quoted identifier enhancements depends on the value to which enable
functionality group is set. If you set enable functionality group to:
However, if you set quoted identifier enhancements to 1, it uses a value of 1 regardless of what you
set enable functionality group to.
Specifies the buffer size for the output of diagnostic for measuring 'Proc Cache Header' performance.
Summary Description
Status Dynamic
Display level
See Performance and Turning Series: Basics > Memory Use Performance > Procedure Cache > Diagnostic for
'Proc Cache Header' Memory Pool.
Specifies the maximum number of files for the output of diagnostic for measuring 'Proc Cache Header'
performance.
Summary Description
Status Dynamic
Display level
See Performance and Turning Series: Basics > Memory Use Performance > Procedure Cache > Diagnostic for
'Proc Cache Header' Memory Pool.
Summary Description
Status Dynamic
For cursors, read committed with lock applies only to read-only cursors declared.
For transaction isolation level 1, select queries on allpages-locked tables continue to hold locks on the page
at the current position. Any updatable cursor on a data-only-locked table also holds locks on the current page
or row. See the Performance and Tuning Series: Basics.
Summary Description
Default value 5
Status Dynamic
The recovery procedure rolls transactions backward or forward, starting from the transaction that the
checkpoint process indicates as the oldest active transaction. The recovery process has more or less work to
do, depending on the value of recovery interval in minutes.
SAP ASE estimates that 6000 rows in the transaction log require 1 minute of recovery time. However, different
types of log records can take more or less time to recover. If you set recovery interval in minutes to 3,
Note
The recovery interval has no effect on long-running, minimally logged transactions (such as create
index) that are active when SAP ASE fails. It may take as much time to reverse these transactions as it
took to run them. To avoid lengthy delays, dump each database after index maintenance operations.
SAP ASE uses the recovery interval in minutes setting and the amount of activity on each database to
decide when to checkpoint each database. When SAP ASE checkpoints a database, it writes all dirty pages
(data pages in cache that have been modified) to disk. This may create a brief period of high I/O, called a
checkpoint spike. The checkpoint also performs other maintenance tasks, including truncating the transaction
log for each database for which the truncate log on chkpt option has been set. About once per minute,
the sleeping checkpoint process “wakes up,” checks the truncate log on chkpt setting, and checks the
recovery interval to determine if a checkpoint is needed. The figure below shows the logic used by SAP ASE
during this process.
You may want to change the recovery interval if your application and its use change. For example, you may
want to shorten the recovery interval when there is an increase in update activity on SAP ASE. Shortening the
recovery interval causes more frequent checkpoints, with smaller, more frequent checkpoint spikes, and slows
the system slightly. However, setting the recovery interval too high may cause the recovery time to be
unacceptably long. You can reduce the spikes caused by checkpointing by reconfiguring the housekeeper
freewrite percent parameter. For more information on the performance implications of recovery
interval in minutes, see Performance and Tuning Series: Basics > Memory Use and Performance.
Sets the look-ahead size (in numbers of log records) to be used by the recovery prefetch scan.
Summary Description
Status Dynamic
Set to 0 if the scan is to determine the look-ahead size dynamically, or to a value > 0 if the look-ahead size is to
be set to a specific number of log records to look-ahead.
Determines the number of packets that are pre-read by a site handler during connections with remote servers.
Summary Description
Default value 3
Status Static
To reduce the required number of connections, communication between two servers is managed through a
single site handler. The site handler can pre-read and keep track of data packets for each user process before
the receiving process is ready to accept them.
Restores the database options that are set by create database, alter database, and sp_dboption
when you load a database or transaction dump.
Summary Description
Default value 0
Valid values 1, 0
Status Dynamic
Configuration Backup/Recovery
group
When you enable restore database options, all database options in the dump that can be externally set
are restored in the target database, except:
● durability
● no_recovery
● template
● read only
● dbo use only
The encryption statusof the database is copied from the dump, regardless of the restore database
options value. The allow wide dol rows option will only be restored if it is enabled in the dump. If allow
wide dol rows is disabled in the dump, the value set in the target database is used, regardless of the
restore database options value.
Enables or disables restricted decrypt permission in all databases. You must have the sso_role to set this
parameter.
Summary Description
Status Dynamic
When restricted decrypt permission is set to 0 (off), decrypt permission on encrypted columns acts
the same as in versions earlier than 15.0.2:
● The table owner or the SSO explicitly grants decrypt permission. However, with grant option on decrypt
permission is supported.
● Decrypt permission is granted implicitly to table owners and the SSO, as well as to any user through a
chain of ownership. For example, if user Fred owns the proc1 stored procedure, which selects data from
the encrypted column fred.table1.col1, and if Fred grants exec permission on proc1 to Harry, then
Harry has implicit decrypt permission on fred.table1.col1
● Decrypt permission is not needed for alter table decrypt. because the table owner has implicit
decrypt permission on encrypted columns.
If you use a system encryption password, SAP recommends that, to protect data privacy, you do not grant
decrypt permission to the DBO to. Access to keys through user passwords prevents the DBO and other
parties from accessing the data unless they have a key’s password; however, you may find it convenient
for the DBO to decide which users should see the decrypted data. If you are not protecting keys and data
with user-specified passwords, the SSO should retain the sole responsibility to grant decrypt permission.
● Table ownership does not give a user implicit decrypt permission. That is, if you create a table with
encrypted columns, you do not have decrypt permission on them unless it is explicitly granted to you.
● No user is implicitly granted decrypt permission through an ownership chain. For example, if Fred owns
the proc1 stored procedure, which selects data from the encrypted column fred.table1.col1, and if
If you change restricted decrypt permission from 0 to 1, currently executing statements that use
implicit decrypt permission finish; however any subsequent statements that use implicit decrypt permission
fail with this error until the SSO grants the user decrypt permission on the necessary columns:
If you change restricted decrypt permission from 1 to 0, the rows that reflect explicit grants remain in
the sysprotects system table. However, these rows have no effect on implicitly granted decrypt permissions
because SAP ASE does not check sysprotects to make sure decrypt permission can be implicitly granted.
sp_helprotect displays misleading information for only those users who were granted or revoked explicit
decrypt permission before you reconfigure the system, and who now have implicit decrypt permission.
SAP recommends that, to keep the system consistent, you revoke any explicit decrypt permissions granted to
users before you switch between enabling or disabling restricted decrypt permission to keep the
system consistent.
See the Encryption Users Guide for more information about decrypt permissions.
Summary Description
Status Dynamic
When the number of locks acquired during a scan session exceeds row lock promotion hwm, SAP ASE
attempts to acquire a table lock. The lock promotion hwm value cannot be higher than the number of
locks value.
The default value for row lock promotion hwm is appropriate for most applications. To avoid table locking,
you may want to increase the value of row lock promotion hwm. For example, if you know that there are
regular updates to 500 rows on a table that has thousands of rows, you can increase concurrency for the
tables by setting row lock promotion hwm to around 500.
You can also configure row lock promotion at the object level. See sp_setpglockpromote in the Reference
Manual: Procedures.
Related Information
row lock promotion lwm (low-water mark), with the row lock promotion hwm (high-water mark) and
row lock promotion pct specifies the number of row locks permitted during a single scan session of a
table or an index before SAP ASE attempts to promote from row locks to a table lock.
Summary Description
Status Dynamic
row lock promotion lwm sets the number of locks below which SAP ASE does not attempt to acquire a
table lock on the object. The row lock promotion lwm must be less than or equal to row lock
promotion hwm.
The default value for row lock promotion lwmis sufficient for most applications. If SAP ASE runs out of
locks (except for an isolated incident), increase number of locks.
See the Performance and Tuning Series: Locking and Concurrency Control.
You can also configure lock promotion at the object level. See sp_setpglockpromote in the Reference
Manual: Procedures.
If the number of locks held on an object is between row lock promotion lwm (low-water mark) and row
lock promotion hwm (high-water mark), row lock promotion pct sets the percentage of row locks
(based on the number of rows in the table) above which SAP ASE attempts to acquire a table lock.
Summary Description
Status Dynamic
The default value for row lock promotion pct is appropriate for most applications.
For more information on setting up lock promotion limits, see Performance and Tuning Series: Locking and
Concurrency Control > Locking Configuration and Tuning.
You can also configure row lock promotion at the per-object level. See sp_setrowlockpromote in the
Reference Manual: Procedures.
Related Information
Defines the time, in seconds, a native thread used by SAP ASE waits when it has no work to do. When the time
set for a native thread is reached, the thread automatically fades out.
Summary Description
Status Dynamic
Specifies the number of times an engine loops while looking for a runnable task before relinquishing the CPU
to the operating system.
Summary Description
Status Dynamic
Note
runnable process search count functions only when you configure SAP ASE for process kernel
mode; it is nonfunctional for threaded kernel mode. Use alter thread pool <pool_name> with idle
timeout = <n> instead.
SAP ASE engines check the run queue for runnable tasks whenever a task completes or exceeds its allotted
time on the engine. At times, there are no tasks in the run queues. An engine can either relinquish the CPU to
the operating system or continue to check for a task to run. Setting runnable process search count
If your machine is a uniprocessor that depends on helper threads to perform I/O, you may see some
performance benefit from setting runnable process search to perform network I/O, disk I/O, or other
operating system tasks. If a client, such as a bulk-copy operation, is running on the same machine as a single
CPU server that uses helper threads, you may need to allow both the server and the client access to the CPU.
Note
If you are having performance problems, try setting runnable process search count to 3.
For SAP ASEs running on uniprocessor machines that do not use helper threads, and for multiprocessor
machines, the default value should provide good performance.
With a runnable process search count value of 3, the Cluster Edition can better share the system CPU
with other processes running on the same machine. However, if you set runnable process search count
to 3 and SAP ASE is running as a standalone process, users may experience delays in server response times.
In this case, reset runnable process search count to 2000.
Use sp_sysmon to determine how the runnable process search count parameter affects the SAP ASE
use of CPU cycles, engine yields to the operating system, and blocking network checks. See the Performance
and Tuning Series: Monitoring SAP Adaptive Server with sp_sysmon.
runnable process search count and alter thread pool ...idle timeout both indicate how SAP
ASE looks for work.
● runnable process search count specifies the number of loops SAP ASE spends looking for work,
and is a server-wide parameter.
● alter thread pool ...idle timeout specifies the period of time SAP ASE spends looking for work,
and is tuned according to individual thread pools. idle timeout is more consistent across processors
with varying speeds.
Is the numeric value of the sampling percentage, such as 5 for 5 percent, 10 for 10 percent, and so on.
Summary Description
Default value 0
Status Dynamic
To reduce I/O contention and resources, run update statistics using a sampling method, which can
reduce the I/O and time when your maintenance window is small and the data set is large. If you are updating a
large data set or table that is in constant use, being truncated and repopulated, you may want to perform a
statistical sampling to reduce the time and the size of the I/O.
Remember that with sampling, results are not fully accurate. Balance changes to histogram values against the
savings in I/O.
Although a sampling of the data set may not be completely accurate, usually the histograms and density
values are reasonable within an acceptable range.
When you are deciding whether or not to use sampling, consider the size of the data set, the time constraints
you are working with, and if the histogram produced is as accurate as needed.
The percentage to use when sampling depends on your needs. Test various percentages until you receive a
result that reflects the most accurate information on a particular data set.
Summary Description
Default value 0
Status Dynamic
Enables SAP ASE to exclusively lock rows for subsequent updates within the same transaction, and for
updatable cursors, preventing other concurrent tasks from updating these rows and from blocking the
subsequent update.
Summary Description
Status Dynamic
See Transact-SQL Users Guide > Queries: Selecting Data from a Table.
Note
The default value for select for update depends on the value to which enable functionality
group is set. If you set enable functionality group to:
However, if you set select for update to 1, it uses a value of 1 regardless of what you set enable
functionality group to.
Related Information
Enables protection of the text of database objects through restriction of the select permission on the text
column of the syscomments table.
Summary Description
Status Dynamic
The default value sets select permission to “public.” Set the value to 1 to restrict select permission to the
object owner and the system administrator.
Enables or disables SAP ASE for sending doneinproc packets (these are TDS messages that are sent after
various statements, in particular, non-select statements like insert, update, and so on).
Summary Description
Status Dynamic
When disabled (set to 0), SAP ASE does not send doneinproc tokens for non-select statements.
send doneinproc tokens replaces dbcc tune ‘doneinproc’ and trace flag 292.
Setting send doneinproc tokens to 1 is safe in most cases. However, some stored procedures are
executed using asynchronous commands from CT-Lib, and using a value of 0 may cause state-machine errors
in some CT-Lib applications.
Specifies the amount of time available for a client to complete a migration by connecting to the target
instance. If the client does not migrate to the target instance in the time allotted, SAP ASE fails the connection.
Summary Description
Status Dynamic
Summary Description
Status Static
SAP ASE uses the tempdb log cache to buffer the user transaction log records for the session involving
tempdb objects. The size for session tempdb log cache is determined by the SAP ASE page size.
Configuring a reasonable size for session tempdb log cache size can help prevent context switches due
to a session having to flush the tempdb user log cache.
SAP ASE includes two log caches for each user connection: the session tempdb log cache, and the user log
cache, which is determined by the user log cache size parameter.
Determines the virtual address where SAP ASE starts its shared memory region. It is unlikely that you will ever
reconfigure this option; do so only after consulting with SAP Technical Support.
Summary Description
Default value 0
Status Static
Configures the minimum amount of stack that is required to handle an address violation signal without stack
overflow and captures a configured shared memory dump (CSMD).
Summary Description
● Linux: 80000
● Sun SPARC: 70000
● Solaris AMD: 80000
● IBM AIX: 80000
● HP-UX: 100000
● IBM Linux on Power Systems: 80000
Status Dynamic
The sigstack csmd min size parameter is used to capture a CSMD during signal handling. If the amount
of available stack upon entering signal handler is less than the configured value, the task becomes inoperative.
If required, you can increase or decrease the stack size.
By default, the sigstack csmd min size is enabled. Disable it using trace flag 2913.
Note
SAP recommends that you contact SAP technical support before making changes to these values.
Configures the minimum amount of stack that is required to handle an address violation signal without
overflowing the stack.
Summary Description
● Linux: 30000
● Sun SPARC: 30000
● Solaris AMD: 35000
● IBM AIX: 37000
● HP-UX: 80000
● IBM Linux on Power Systems: 30000
Status Dynamic
Use sigstack min size to increase the default stack size that SAP ASE uses for a particular platform.
For example, on Linux you can increase the minimum amount of stack required for handling an address
violation signal, without overflowing the stack, to a maximum value of 400,000 bytes.
By default, the sigstack min size is enabled. Disable it using trace flag 2913.
Note
SAP recommends that you contact SAP technical support before making changes to these values.
Enables or disables just-in-time compilation of lava execution plans into native code, so that SAP ASE can then
invoke these native code plans directly in subsequent executions, allowing for faster execution of extreme
online transaction processing (XOLTP) queries. This compiled queries feature is available as part of MemScale
licensed option.
Summary Description
Status Dynamic
See Performance & Tuning Series: Query Processing > Using Simplified Native Access Plans on the Linux
Platform for complete details.
Sets the precision of IDENTITY columns that are automatically created with the sp_dboption auto
identity and unique auto_identity index options.
Summary Description
Default value 10
Status Dynamic
The maximum value that can be inserted into an IDENTITY column is 10precision -1. After an IDENTITY column
reaches its maximum value, all further insert statements return an error that aborts the current transaction.
If you reach the maximum value of an IDENTITY column, you can increase it with a modify operation in the
alter table command. See the Transact-SQL Users Guide for examples.
You can also use the create table command to create a table that is identical to the old one, but with a
larger precision for the IDENTITY column. After you have created the new table, use the insert command or
bcp to copy data from the old table to the new one.
Specifies the memory space for internal data structures and other needs.
Summary Description
Status Dynamic
If you change size of the global fixed heap, change the total logical memory by the same
amount.
Related Information
Specifies the total memory space for all processes using the Java VM.
Summary Description
Status Dynamic
If you change size of process object heap, change the total logical memory by the same amount.
Specifies the shared memory space for all Java classes that are called into the Java VM. SAP ASE maintains
the shared class heap server-wide for both user-defined and system-provided Java classes.
Summary Description
Status Dynamic
If you change the size of shared class heap, change the total logical memory by the same
amount.
Related Information
Summary Description
Default value 0
Status Dynamic
Those using Asian languages may need to increase size of unilib cache by an extra 100K for every
additional character set they want to support via Unicode-based conversion.
Summary Description
Status Static
Display level
Allows you to select various asynchronous I/O modes on the Solaris platform. This parameter is effective if
SAP ASE is running in threaded kernel mode. This parameter is static, therefore is effective after restarting the
server.
● 0 – (Default) Use this mode if the Solaris patch containing the fix for Oracle BugID 16054425 is not
installed. You may see sub-optimal I/O performance.
● 1 – (Recommended) You must have the Solaris patch containing the fix for Oracle BugID 16054425
installed.
Note
If solaris async i/o mode is set to 1 without the patch for Oracle BugID 16054425, Adaptive Server
may report 694 or 823 errors and require restarting the server. Oracle Bug 15868517 refers to backport of
Oracle Bug 16054425 for S10U11.
Specifies the amount of time SAP ASE can spend optimizing a stored procedure as a fraction of the estimated
execution time.
Summary Description
Default value 40
Status Dynamic
Summary Description
Status Dynamic
If both sql batch capture and max sql text monitored are enabled, SAP ASE collects the SQL text for
each batch for each user task.
Related Information
Enables and disables the ability to monitor SAP ASE statistics from the Windows Performance Monitor.
Summary Description
Status Static
SAP ASE must be registered as a Windows Service to support monitor integration. This occurs automatically
when you start SAP ASE using the Services Manager in the SAP for the Windows program group, and is the
default configuration when you use the SAP installer or the syconfig utility to create an SAP ASE.
The 15.7 and later version of sybperf exposes a set of SAP ASE counters that are more useful for monitoring
SAP ASE performance.
Summary Description
Status Static
Both the default value and the minimum value are platform-specific. SAP ASE rounds values up to an even
multiple of <n>, where <n> is the platform-specific clock-tick default value. Use sp_helpconfig or
sp_configure to find the current values for sql server clock tick length.
In mixed-use applications with some CPU-bound tasks, decrease the value of sql server clock tick
length to:
● Help I/O-bound tasks – a value of 20,000 is reasonable for this. Shortening the clock-tick length means
that CPU-bound tasks exceed the allotted time on the engine more frequently per unit of time, which
allows other tasks greater access to the CPU
● Marginally increase response times – SAP ASE runs its service tasks once per clock tick. Decreasing the
clock-tick length means that the service tasks are run more frequently per unit of time
Increasing sql server clock tick length favors CPU-bound tasks, because they execute longer
between context switches. The maximum value of 1,000,000 may be appropriate for primarily CPU-bound
applications. However, any I/O-bound tasks may suffer as a result. You can mitigate this somewhat by tuning
cpu grace time.
Note
Changing the value of sql server clock tick length can have serious effects on SAP ASE
performance. Consult with SAP Technical Support before resetting this value.
Related Information
Summary Description
Status Dynamic
If this option is enabled and sql text pipe max messages is set, SAP ASE collects the SQL text for each
query. Use monSysSQLText to retrieve the SQL text for all user tasks.
Specifies the number of SQL text messages SAP ASE stores per engine.
Summary Description
Default value 0
Status Dynamic
The total number of messages in the monSQLText table is the value of sql text pipe max messages
multiplied by the number of engines running.
Summary Description
Status Static
SAP ASE allocates one stack for each user connection and worker process when it starts. These stacks are
located contiguously in the same area of memory, with a guard area at the end of each stack. At the end of
each stack guard area is a guardword, which is a 4-byte structure with a known pattern. The figure below
illustrates how a process can corrupt a stack guardword.
Note
(UNIX only) SAP recommends that you include an additional 4096 bytes when you configure stack guard
size to a nondefault value to increase the usable portion of the stack guard area.
SAP ASE periodically checks to see whether the stack pointer for a user connection has entered the stack
guard area associated with that user connection’s stack. If it has, SAP ASE aborts the transaction, returns
control to the application that generated the transaction, and generates error 3626:
SAP ASE also periodically checks the guardword pattern to see if it has changed, thus indicating that a process
has overflowed the stack boundary. When this occurs, SAP ASE prints these messages to the error log and
shuts down:
In the first message, “limit” is the address of the end of the stack guard area, and “sp” is the current value of
the stack pointer.
In addition, SAP ASE periodically checks the stack pointer to see whether it is completely outside both the
stack and the stack guard area for the pointer’s process. If it is, SAP ASE shuts down, even if the guardword is
not corrupted. When this happens, SAP ASE prints the following messages to the error log:
The default value for stack guard size is appropriate for most applications. However, if you experience
server shutdown from either stack guardword corruption or stack overflow, increase stack guard size by a
2K increment. Each configured user connection and worker process has a stack guard area; thus, when you
increase stack guard size, you use up that amount of memory, multiplied by the number of user
connections and worker processes you have configured.
Rather than increasing stack guard size to avoid stack overflow problems, consider increasing stack
size . The stack guard area is intended as an overflow area, not as an extension to the regular stack.
SAP ASE allocates stack space for each task by adding the values of the stack size and stack guard
size parameters. stack guard size must be configured in multiples of 2K. If the value you specify is not a
multiple of 2K, sp_configure verification routines round the value up to the next highest multiple.
Specifies the size, in bytes, of the execution stacks used by each user process on SAP ASE.
Summary Description
Status Static
To find the stack size values for your platform, use sp_helpconfig or sp_configure. stack size must
be configured in multiples of 2K. If the value you specify is not a multiple of 2K, sp_configure verification
routines round the value up to the next highest multiple.
An execution stack is an area of SAP ASE memory where user processes keep track of their process context
and store local data.
Certain queries can contribute to the probability of a stack overflow. Examples include queries with extremely
long where clauses, long select lists, deeply nested stored procedures, and multiple selects and updates that
holdlock. When a stack overflow occurs, SAP ASE prints an error message and rolls back the transaction.
See the Troubleshooting and Error Messages Guide for more information on specific error messages.
The two options for remedying stack overflows are to break the large queries into smaller queries and to
increase stack size. Changing stack size affects the amount of memory required for each configured
user connection and worker process.
If you have queries that exceed the size of the execution stack, you may want to rewrite them as a series of
smaller queries, especially if there are only a small number of such queries, or if you run them infrequently.
There is no way to determine how much stack space a query requires without actually running the query.
Stack space for each user connection and worker process is preallocated at start-up.
Therefore, determining the appropriate value for stack size is an empirical process. Test your largest and
most complex queries using the default value for stack size. If they run without generating error messages,
the default is probably sufficient. If they generate error messages, begin by increasing stack size by a small
amount (2K). Re-run your queries and see if the amount you have added is sufficient. If it is not, continue to
increase stack size until queries run without generating error messages.
If you are using CIS, or if Java is enabled in the database and you want to use methods that call JDBC, SAP
recommends that you increase the default by 50 percent. If you are not using JDBC or CIS, the standard
default value is usually sufficient.
Summary Description
Status Static
Display level
When set to 1, XP Server starts when SAP ASE starts. If you set start xp server during boot to 0, XP
Server does not start until you run xp_cmdshell.
Summary Description
Status Dynamic
By default, RepAgent starts at the same time as SAP ASE. SAP ASE writes a message to the error log stating
the wait time.
Increases the server allocation of procedure cache memory and limits the amount of memory from the
procedure cache pool used for cached statements.
Summary Description
Default value 0
Status Dynamic
Note
If you enable the statement cache, you must configure set chained on/off in its own batch.
Because cached statements are transformed into lightweight stored procedures, statement caching
requires additional open object descriptors.
Summary Description
Status Dynamic
If both statement pipe active and statement pipe max messages are enabled, SAP ASE collects the
statement statistics for each query. Use monSysStatement to retrieve the statistics for all executed
statements.
Related Information
Determines the number of statement statistics messages SAP ASE stores per engine.
Summary Description
Default value 0
Status Dynamic
The total number of messages in the monSQLText table is the value of sql text pipe max messages
multiplied by the number of engines running.
Related Information
Summary Description
Status Dynamic
Summary Description
Status Dynamic
Note
The default value for streamlined dynamic sql depends on the value to which enable
functionality group is set. If you set enable functionality group to:
However, if you set streamlined dynamic sql to 1, it uses a value of 1 regardless of what you set
enable functionality group to.
See Performance and Tuning Series: Basics > Memory Use and Performance.
Related Information
Determines whether or not SAP ASE transaction coordination services strictly enforce the ACID properties
(atomicity, consistency, integrity, and durability) of distributed transactions.
Summary Description
Status Static
Display level 10
In environments where SAP ASE should propagate and coordinate transactions only to other SAP ASEs that
support transaction coordination, set strict dtm enforcement on. If a transaction attempts to update
data in a server that does not support transaction coordination services, SAP ASE aborts the transaction.
In heterogeneous environments, you may want to make use of servers that do not support transaction
coordination. This includes earlier versions of SAP ASE and non-SAP database stores configured using CIS.
Under these circumstances, set strict dtm enforcement off to allow SAP ASE to propagate transactions
to legacy SAP ASEs and other data stores. This does not, however, ensure that the remote work of these
servers is rolled back or committed with the original transaction.
Summary Description
Status Dynamic
Display level 10
Note
The default value for suppress js max task message depends on the value to which enable
functionality group is set. If you set enable functionality group to:
However, if you set suppress js max task message to 1, it uses a value of 1 regardless of what you set
enable functionality group to.
Related Information
Determines what SAP ASE does when an audit device becomes completely full.
Summary Description
Status Dynamic
Note
If you have two or more audit tables, each on a separate device other than the master device, and you have
a threshold procedure for each audit table segment, the audit devices should never become full. Only if a
threshold procedure is not functioning properly does the “full” condition occur.
● 0 – truncates the next audit table and starts using it as the current audit table when the current audit table
becomes full. If you set suspend audit when device full to 0, you ensure that the audit process is
never suspended. However, you incur the risk that older audit records are lost if they have not been
archived.
● 1 – suspends the audit process and all user processes that cause an auditable event. To resume normal
operation, the system security officer must log in and set up an empty table as the current audit table.
During this period, the system security officer is exempt from normal auditing. If the system security
officer’s actions would generate audit records under normal operation, SAP ASE sends an error message
and information about the event to the error log.
Specifies the port number that SAP ASE uses to send messages to a User Datagram Protocol (UDP) port with
sp_sendmsg or syb_sendmsg.
Summary Description
Default value 0
Status Dynamic
If more than one engine is configured, a port is used for each engine, numbered consecutively from the port
number specified. If the port number is set to the default value, 0 SAP ASE assigns port numbers.
Note
Sending messages to UDP ports is not supported on Windows.
A system security officer must set the allow sendmsg configuration parameter to 1 to enable sending
messages to UDP ports. To enable UDP messaging, a system administrator must set allow sendmsg to 1.
For more information on UDP messaging, see sp_sendmsg in the Reference Manual: Procedures.
Related Information
Summary Description
Default value 0
Status Dynamic
SAP ASE dynamically maintains the statistics for the number of rows and columns modified in a table as part
of any DML statement and flushes them according to the value of sysstatistics flush interval.
SAP ASE uses these statistics for query optimization since they are more accurate. The datachange function
determines the amount of data that is changed at the table, column, or partition level since the last update
statistics, and initiates updating statistics on the object.
The in-memory statistics are always flushed to disk during a polite shutdown of the server. You can configure
sysstatistics flush interval to flush these in-memory statistics to disk by the house keeper task at
regular intervals. Set sysstatistics flush interval to 0 to disable this housekeeper task.
Sets the number of days that passwords remain in effect after they are changed.
Summary Description
Default value 0
Status Dynamic
The password expires when the number of specified days passes. For example, if you create a new login on
August 1, 2017 at 10:30 a.m., with a password expiration interval of 30 days, the password expires on August
31, 2017 at 10:30 a.m.
An account’s password is considered expired if an interval greater than <number_of_days> has passed since
the last time the password for that account was changed.
When the number of days remaining before expiration is less than 25 percent of the value of systemwide
password expiration or seven days, whichever is greater, each time the user logs in, a message displays,
systemwide password expiration is superseded by the password policy settings. For more information,
see Choose and Create a Password in the Security Administration Guide.
When account passwords expire, users can still log in to SAP ASE but cannot execute any commands until
they have used alter login to change their password.
This restriction applies only to login sessions established after the password has expired. Users who are
logged in when their passwords expire are not affected until the next time they log in.
Specifies the number of days you intend to retain each tape after it has been used for either a database or a
transaction log dump. This parameter can keep you from accidentally overwriting a dump tape.
Summary Description
Default value 0
Status Dynamic
For example, if you have set tape retention in days to seven days, and you attempt to use the tape
before seven days have elapsed since the last time you dumped to that tape, Backup Server issues a warning
message.
You can override the warning using the with init option when executing the dump command. Doing this
causes the tape to be overwritten and all data on the tape to be lost.
Both the dump database and dump transaction commands provide a retaindays option, which
overrides the tape retention in days value for a particular dump. See System Administration Guide:
Volume 2 > Backing Up and Restoring User Databases.
Controls Transmission Control Protocol (TCP ) packet batching. The default value means that TCP packets
are not batched.
Summary Description
Status Static
TCP normally batches small logical packets into single, larger, physical packets, and fills physical network
frames with as much data as possible, which improves network throughput in terminal emulation
environments where users mostly send keystrokes across the network.
However, applications that use small Tabular Data Stream (TDS) packets may benefit from disabling TCP
packet batching.
Note
Disabling TCP packet batching means that packets are sent, regardless of size; this increases the volume of
network traffic.
Limits the number of pages of text, unitext, and image data that can be prefetched into an existing buffer
pool.
Summary Description
Default value 16
Status Dynamic
SAP ASE prefetches only text, unitext, and image data that was created with SAP ASE 12.x or was
upgraded using dbcc rebuild_text.
Determines the number of events SAP ASE stores in the monThresholdEvent table. Once the number of
events in the monThresholdEvent monitoring table exceed this value, SAP ASE overwrites the oldest unread
events with new events.
Summary Description
Default value 0
Status Dynamic
Summary Description
Status Dynamic
Sets the number of milliseconds that the SAP ASE scheduler allows a task to run.
Summary Description
Status Dynamic
If time slice is set too low, SAP ASE may spend too much time switching between tasks, which increases
response time. If it is set too high, CPU-intensive tasks may monopolize engines, which also increases
response time. The default value allows each task to run for 1/10 of a second before relinquishing the CPU to
another task.
See Performance and Tuning Series: Basics > Using Engines and CPUs.
Use sp_sysmon to determine how time slice affects voluntary yields by SAP ASE engines. See the
Performance and Tuning Series: Monitoring SAP Adaptive Server with sp_sysmon.
Reports the amount of memory, in kilobytes, that is currently available for data, index, and log pages. This
parameter is a calculated value that is not directly user-configurable.
Summary Description
Default value 0
Status Calculated
The amount of memory available for the data cache can be affected by a number of factors, including:
A number of other parameters also affect the amount of available memory, but to a lesser extent.
Related Information
Displays the total logical memory for the current configuration of SAP ASE.
Summary Description
Status Read-only
The total logical memory is the amount of memory that the SAP ASE current configuration uses.total
logical memory displays the memory that is required to be available, but which may or may not be in use at
any given moment. For information about the amount of memory in use at a given moment, see total
physical memory. You cannot use total logical memory to set any of the memory configuration
parameters.
Related Information
Is a read-only configuration parameter that displays the total physical memory for the current configuration of
SAP ASE.
Summary Description
Status Read-only
The total physical memory is the amount of memory that SAP ASE is using at a given moment in time.
Configure SAP ASE so that the value for max memory is larger than the value for total logical memory,
and the value for total logical memory is larger than the value for total physical memory.
SAP ASE maintains a memory pool for the transfer table command and for tables marked for incremental
transfer. This pool provides memory for maintaining state information about current and past transfers, and
for memory used to write to and read from transfer files. transfer utility memory size determines the
size of this memory pool.
Summary Description
Status Dynamic
The units for this pool are in memory pages, which are blocks of 2048 bytes. The default size is large enough
to accommodate over 100 tables marked for incremental transfer, all transferring simultaneously.
If your installation does not include tables marked for incremental transfer, and does not use the transfer
table command, you may set the size of this memory pool to zero to reclaim this memory.
Determines the total number of transaction descriptors that are available to the server.
Summary Description
Default value 16
Status Static
Display level 1
SAP ASE manages transactions as configurable server resources. Each time a new transaction begins, SAP
ASE must obtain a free transaction descriptor from a global pool that is created when the server is started.
Transaction descriptors are internal memory structures that SAP ASE uses to represent active transactions.
● The outer block of each server transaction. The outer block of a transaction may be created explicitly
when a client executes a new begin transaction command. SAP ASE may also implicitly create an
outer transaction block when clients use Transact-SQL to modify data without using begin
transaction to define the transaction.
Note
Subsequent, nested transaction blocks, created with additional begin transaction commands, do
not require additional transaction descriptors.
● Each database accessed in a multidatabase transaction. SAP ASE must obtain a new transaction
descriptor each time a transaction uses or modifies data in a new database.
At start-up, this ratio is multiplied by the number of PSS structures to create the transaction descriptor pool:
The default value, 16, ensures compatibility with versions of SAP ASE earlier than 12.x which also allocated 16
transaction descriptors for each user connection. In version 12.x and later, the number of simultaneous
transactions is limited only by the number of transaction descriptors available in the server.
Note
You can have as many databases in a user transaction as there are in your SAP ASE installation. For
example, if your SAP ASE has 25 databases, you can include 25 databases in your user transactions.
During a peak period, use sp_monitorconfig to examine the use of transaction descriptors.
For example:
If the num_used value is zero or very low, transactions may be delayed as SAP ASE waits for transaction
descriptors to become free in the server. In this case, consider increasing the value of txn to pss ratio.
If the Max_Used value is too low, unused transaction descriptors may be consuming memory that can be used
by other server functions. Consider reducing the value of txn to pss ratio.
Requires that all users who log in to SAP ASE be authenticated by a security mechanism.
Summary Description
Status Dynamic
The use security services parameter must be 1 to use the unified login security service.
Related Information
Summary Description
● off – no hashing
● on – hashing on all columns
● partial – hashing only for low unique count
columns
● default – off
Status Dynamic
The values for update statistics are character data, so you must use 0 as a placeholder for the second
parameter, which must be numeric, and specify off, on, partial, or default for the third parameter. For
example:
Reports the version of the upgrade utility that upgraded your master device. The upgrade utility checks and
modifies this parameter during an upgrade.
Summary Description
Status Dynamic
Caution
Do not reset upgrade version. Doing so may cause serious problems with SAP ASE.
Summary Description
Status Static
If the parameter is set to 0, none of the network-based security services can be used.
Summary Description
Status Static
Specifies the size, in bytes, for each user’s log cache. Its size is determined by the server’s logical page size.
Summary Description
Status Static
There is one user log cache for each configured user connection and worker process. SAP ASE uses these
caches to buffer the user transaction log records, which reduces the contention at the end of the transaction
log.
When a user log cache becomes full or another event occurs (such as when the transaction completes), SAP
ASE “flushes” all log records from the user log cache to the database transaction log. By first consolidating the
log records in each user’s log cache, rather than immediately adding each record to the database’s transaction
log, SAP ASE reduces contention of processes writing to the log, especially for SMP systems that are
configured with more than one engine.
Note
For transactions using a database with mixed data and log segments, the user log cache is flushed to the
transaction log after each log record. No buffering takes place. If your databases do not have dedicated log
segments, do not increase the user log cache size.
Do not configure user log cache size to be larger than the maximum amount of log information written
by an application’s transaction. Since SAP ASE flushes the user log cache when the transaction completes,
any additional memory allocated to the user log cache is wasted. If no transaction in your server generates
Setting user log cache size too high wastes memory. Setting it too low can cause the user log cache to
fill up and flush more than once per transaction, increasing the contention for the transaction log. If the volume
of transactions is low, the amount of contention for the transaction log may not be significant.
Use sp_sysmon to understand how this parameter affects cache behavior. See the Performance and Tuning
Series: Monitoring SAP Adaptive Server with sp_sysmon.
For SAP ASE servers running with multiple engines, user log cache spinlock ratio specifies the ratio
of user log caches per user log cache spinlock. There is one user log cache for each configured user
connection.
Summary Description
Default value 20
Status Dynamic
The default specifies 1 spinlock for each 20 user connections configured for your server.
Use sp_sysmon to understand how this parameter affects cache behavior. See the Performance and Tuning
Series: Monitoring SAP Adaptive Server with sp_sysmon.
utility statistics hashing enables the gathering of index attributes using hash-based statistics when
creating an index.
Summary information
Status Dynamic
where:
Controls whether SAP ASE collects statistics for individual wait events.
Summary Description
Status Dynamic
A task may have to wait for a variety of reasons (for example, waiting for a buffer read to complete). The
monSysWaits table contains the statistics for each wait event. The monWaitEventInfo table contains a
complete list of wait events.
Allows you to control the wait behavior of select, update, insert, and delete commands for an
uncommitted insert.
Summary Description
Status Dynamic
wait on uncommitted insert can only be used for DOL tables on transaction isolation 0, 1, and 2, and
does not affect the behavior of transaction isolation 3. The table cannot have a nonclustered unique index.
● At isolation level 0, delete and update queries block on uncommitted inserted rows with the key value of
interest, and select queries read dirty and do not block on uncommitted inserts.
● At isolation levels 1 and 2, select, delete, and update queries, all block on uncommitted inserted rows.
Whenwait on uncommitted insert is set to 2, the behavior is the sames as value 1, with the exception of
insert also adheres to wait on uncommitted insert.
When wait on uncommitted insert is set to 0, the behavior of select, update, delete, and insert is
the same as in previous releases.
Note
When wait on uncommitted insert is set to 1 (to wait for uncommitted inserted rows) concurrency
might descend and deadlocks can be encountered where they were not encountered before.
Examples Showing the Behavior For the insert and update Commands
Example 1:
The following example shows the behavior for the insert command:
1> create table test_table (id int, name varchar(20)) lock datarows
2> go
1> create unique index id_index on test_table(id)
2> go
3. Do the following insert, and then rollback the insert into session #1.
# session #1
1> begin tran
2> go
1> insert into test_table values (1, 'test1')
2> go
(1 row affected)
# session #2
1> insert into test_table values (1, 'test1')
2> go
<waiting>
# session #1
1> rollback
2> go
# session #2
(1 row affected)
The insert in session #2 waited on the uncommitted insert in session #1. The insert in session #2 succeed
once the insert in session #1 was rolled back.
4. Do the following insert and commit the insert in session #1.
# session #1
1> begin tran
2> go
1> insert into test_table values (2, 'test2')
2> go
(1 row affected)
# session #2
1> insert into test_table values (2, 'test2')
2> go
<waiting>
# session #1
1> commit
2> go
# session #2
Msg 2601, Level 16, State 6:
Line 1:
Attempt to insert duplicate key row in object 'test_table' with
unique index 'id_index'
Command has been aborted.
(0 rows affected)
The insert in session #2 waited on the uncommitted insert in session #1. The the insert in session #2
reported error 2601 once the insert in session #1 was committed.
Example 2:
1> create table test_table (id int, name varchar(20)) lock datarows
2> go
1> create unique index id_index on test_table(id)
2> go
3. Do the following insert, and then rollback the insert into session #1.
# session #1
1> begin tran
2> go
1> insert into test_table values (1, 'test1')
2> go
(1 row affected)
# session #2
1> update test_table set name = 'first test' where id = 1
2> go
<waiting>
# session #1
1> rollback
2> go
# session #2
(0 row affected)
The update in session #2 waited on the uncommitted insert in session #1. The data was not updated in
session #2 since the insert in session #1 was rolled back.
4. Do the following insert and commit the insert in session #1.
# session #1
1> begin tran
2> go
1> insert into test_table values (2, 'test2')
2> go
(1 row affected)
# session #2
1> update test_table set name = 'second test' where id = 2
2> go
<waiting>
# session #1
1> commit
2> go
# session #2
(1 row affected)
Specifies the maximum amount of memory, in 2 KB pages, that the workload manager can use.
Summary Description
Default value 80
Status Dynamic
Defines the length of time between attempts to resolve transaction branches that have been propagated to
remote servers.
Summary Description
Status Dynamic
Display level 10
The coordinating SAP ASE makes regular attempts to resolve the work of remote servers participating in a
distributed transaction. The coordinating server contacts each remote server participating in the distributed
transaction in a serial manner, as shown in the figure below. The coordination service may be unable to resolve
a transaction branch for a variety of reasons. For example, if the remote server is not reachable due to network
With the default value of xact coordination interval, 60, SAP ASE attempts to resolve remote
transactions once every minute. Decreasing the value may speed the completion of distributed transactions,
but only if the transactions are themselves resolved in less than a minute. Under normal circumstances, there
is no performance penalty to decreasing the value of xact coordination interval.
Setting xact coordination interval to a higher number can slow the completion of distributed
transactions, and cause transaction branches to hold resources longer than they normally would. Under
normal circumstances, do not increase the value of xact coordination interval beyond its default.
Sets the security context for the operating system command to be executed using the xp_cmdshell system
ESP.
Summary Description
Default value 1
Valid values 0, 1, 2
Status Dynamic
Setting xp_cmdshell context to 1 restricts the xp_cmdshell security context to users who have accounts
at the operating system level. Its behavior is platform-specific. If xp_cmdshell context is set to 1, to use an
xp_cmdshell ESP, an operating system user account must exist for the SAP ASE user name. For example, an
SAP ASE user named “sa” cannot use xp_cmdshell unless he or she has an operating-system-level user
account named “sa”.
Starting XP Server as root automatically sets xp_cmdshell to 1 so secure access is automatically enabled.
On Windows, when xp_cmdshell context is set to 1, xp_cmdshell succeeds only if the user name of the
user logging in to SAP ASE is a valid Windows user name with Windows system administration privileges on
the system on which SAP ASE is running.
On other platforms, when xp_cmdshell context is set to 1, xp_cmdshell succeeds only if SAP ASE was
started by a user with “superuser” privileges at the operating system level. When SAP ASE gets a request to
execute xp_cmdshell, it checks the uid of the user name of the ESP requestor and runs the operating
system command with the permissions of that uid.
If xp_cmdshell context is 0, the permissions of the operating system account under which SAP ASE is
running are the permissions used to execute an operating system command from xp_cmdshell. This allows
users to execute operating commands that they would not ordinarily be able to execute under the security
context of their own operating system accounts.
Coding Samples
Any software coding and/or code lines / strings ("Code") included in this documentation are only examples and are not intended to be used in a productive system
environment. The Code is only intended to better explain and visualize the syntax and phrasing rules of certain coding. SAP does not warrant the correctness and
completeness of the Code given herein, and SAP shall not be liable for errors or damages caused by the usage of the Code, unless damages were caused by SAP
intentionally or by SAP's gross negligence.
Accessibility
The information contained in the SAP documentation represents SAP's current view of accessibility criteria as of the date of publication; it is in no way intended to be
a binding guideline on how to ensure accessibility of software products. SAP in particular disclaims any liability in relation to this document. This disclaimer, however,
does not apply in cases of willful misconduct or gross negligence of SAP. Furthermore, this document does not result in any direct or indirect contractual obligations
of SAP.
Gender-Neutral Language
As far as possible, SAP documentation is gender neutral. Depending on the context, the reader is addressed directly with "you", or a gender-neutral noun (such as
"sales person" or "working days") is used. If when referring to members of both sexes, however, the third-person singular cannot be avoided or a gender-neutral noun
does not exist, SAP reserves the right to use the masculine form of the noun and pronoun. This is to ensure that the documentation remains comprehensible.
Internet Hyperlinks
The SAP documentation may contain hyperlinks to the Internet. These hyperlinks are intended to serve as a hint about where to find related information. SAP does
not warrant the availability and correctness of this related information or the ability of this information to serve a particular purpose. SAP shall not be liable for any
damages caused by the use of related information unless damages have been caused by SAP's gross negligence or willful misconduct. All links are categorized for
transparency (see: http://help.sap.com/disclaimer).