SQL/MP Reference Manual
HP NonStop SQL/MP Reference Manual—523352-013
C-65
Concurrency
Concurrency
Concurrency is access to the same data by two or more processes at the same time.
The degree of concurrency available (that is, whether a process that requests access
to data that is already being accessed is given access or placed in a wait queue)
depends on the purpose of the access (read or update), on the access mode, and on
whether virtual sequential block buffering (VSBB) is used for the access.
NonStop SQL/MP provides concurrent database access for most operations,
controlling access through the locking mechanism and the mechanism for opening and
closing tables. For DML operations and for some DDL operations, the access options
and locking options you select affect the degree of concurrency. For more information
about these options, see Access Options on page A-1, Locking on page L-48, and
WITH SHARED ACCESS OPTION on page W-4.
Concurrent access is not possible for all DDL and utility operations, especially those
that change timestamps of SQL objects. To maximize concurrency for operations that
would not otherwise allow it, NonStop SQL/MP performs certain DDL operations in
phases:
ALTER INDEX, ALTER TABLE, and CREATE INDEX operations that use WITH
SHARED ACCESS allow concurrent access by DML statements throughout all but
a relatively brief commit phase at the end of the operation.
ALTER TABLE, ALTER INDEX, CREATE CONSTRAINT, UPDATE STATISTICS,
and CREATE INDEX operations without WITH SHARED ACCESS allow
concurrent access by DML statements that use SELECT with BROWSE or
SHARED access during an initial scan phase, but lock out DML accesses during a
later update phase.
These three tables shows the limits on concurrency that are imposed by DDL and
utility operations:
Table C-5 on page C-65 shows DDL operations that limit (or are limited by) DML
operations. For DDL operations that occur in two phases, the table shows both
scan and update (change timestamp) phases.
Table C-6 on page C-67 shows the forms of the ALTER statement that change the
timestamp of an object. The concurrency of an ALTER operation depends on
whether ALTER changes a timestamp.
Table C-7 on page C-68 shows utility operations that limit concurrency.
Table C-5. Summary of Concurrent DDL and DML Operations (page 1 of 3)
DML Operations in Progress
DDL Operations You
Can Start
SELECT
BROWSE
SELECT
SHARED
SELECT
EXCLUSIVE
DELETE/INSERT
UPDATE
ALTER