Identity Column Inserts and Transaction-Bound Table Locks on DBC.IdCol
An identity column cache is populated by a range of column numbers whenever an INSERT operation into an identity column table is processed. The values for the range are determined by the following factors.
This quantity is specified by the DBS Control parameter IdCol batch size (see Utilities: Volume 1 (A-K) and “Optimizing Bulk Inserts Into an Identity Column” on page 547 for further information).
When the pool of available identity column numbers in the cache is exhausted, Teradata Database must update DBC.IdCol.AvailValue and obtain a new range of numbers.
If an ongoing transaction has DBC.IdCol locked, as it would during a SELECT request against the table, then system access
to the column number pool is temporarily blocked and all inserts into the relevant
identity column table are suspended until the transaction either commits or aborts.
A SELECT request against DBC.IdCol places an ACCESS lock on the table.
The SELECT privilege on DBC.IdCol is restricted to user DBC and any user explicitly granted the privilege by DBC.
When performing a SELECT request against DBC.IdCol in Teradata session mode, you run the risk of creating a deadlock if you upgrade the default lock from ACCESS to READ or higher severity when both of the following conditions are true.