Clients who have very high transaction volume might encounter some SQL deadlock issues. In these cases, Aptify recommends using snapshot isolation to significantly reduce or eliminate database blocking issues in high-volume situations. The purpose of this topic is to provide information about how to configure the SQL Server transaction isolation level.
Anchor _USIL _USIL
Understanding Snapshot Isolation Levels
_USIL | |
_USIL |
...
Anchor _CSQL _CSQL
Configuring SQL Server Snapshot Isolation
_CSQL | |
_CSQL |
Perform this procedure to enable SQL Server snapshot isolation. Ensure that you understand the information in the Understanding SQL Server Snapshot Isolation Levels before going ahead and enabling snapshot isolation.
- Log into SQL server management studio with an a sa-level user account.
- Open a new query.
Run the following query to enable the READ_COMMITTED_SNAPSHOT option:
/** Run this statement
to
change the
isolation
level
of
the
database
.
When
the READ_COMMITTED_SNAPSHOT
database
option
is
set
ON
, the mechanisms used
to
support the
option
are activated immediately.
When
setting the READ_COMMITTED_SNAPSHOT
option
,
only
the
connection
executing the
ALTER
DATABASE
command
is
allowed
in
the
database
. There must be
no
other
open
connection
in
the
database
until
ALTER
DATABASE
is
complete. The
database
does
not
have
to
be
in
single-
user
mode.
**/
ALTER
DATABASE
APTIFY
SET
SINGLE_USER
WITH
ROLLBACK
IMMEDIATE;
ALTER
DATABASE
Aptify
SET
READ_COMMITTED_SNAPSHOT
ON
;
ALTER
DATABASE
APTIFY
SET
MULTI_USER;
Run the following query to enable the ALLOW_SNAPSHOT_ISOLATION option:
/** Statement below can be used
to
turn
on
the snapshot
isolation
, so that transactions can
set
the snapshot
isolation
level
. Per our analysis, there
is
no
Aptify code that currently does this, therefore this
is
not
required.**/
ALTER
DATABASE
Aptify
SET
ALLOW_SNAPSHOT_ISOLATION
ON
;
Run the following query to verify the values of these options:
/** Query
to
determine snapshot states **/
SELECT
Name
, snapshot_isolation_state
, snapshot_isolation_state_desc
, is_read_committed_snapshot_on
FROM
sys.databases
WHERE
name
=
'APTIFY'
;