Specifies whether or not a database system debug flag is set.
The following table shows the available keywords that can be
specified.
Table 1-7 Debug Flag Keywords
Debug
Flags
Keyword Equivalent Comment
ALTERNATE_ None The optimizer discards literal values
OUTLINE_ID when producing an outline identifer.
AUTO_INDEX Xq Allows CREATE TABLE and ALTER TABLE
to create indices for any PRIMARY
KEY, FOREIGN KEY or UNIQUE constraint
added to the table.
AUTO_OVERRIDE None Allows a user with the DBADM
(administrator) privilege to insert
or update a column defined as
AUTOMATIC.
BITMAPPED_SCAN None Enables use of in-memory compressed
DBkey bitmaps for index AND and OR
operations in the dynamic optimizer.
BLR B Displays the binary language (BLR)
representation request for the query
CARDINALITY K Shows cardinality updates
CARTESIAN_LIMIT None Limits the number of small tables
that are allowed to be placed
anywhere in the join order.
CHRONO_FLAG(n) Xc Forces timestamp-before-dump display.
The value of n can be 0, 1, or 2, or
n can be omitted. CHRONO_FLAG(0) and
NOCHRONO_FLAG are equivalent. If you
specify CHRONO_FLAG but omit n, the
default is CHRONO_FLAG(1). CHRONO_
FLAG(1) enables an additional trace
message that includes the attach
number and the current time. CHRONO_
FLAG(2) enables an additional trace
message that includes the attach
number and the current date and time.
If you supply a value for n that is
greater than 2, it is ignored, and a
value of 1 is used.
CONTROL_BITS Bc Displays a decoding of the BLR$K_
CONTROL_BITS semantic flags when used
with the BLR keyword.
COSTING Oc Displays traces on optimizer costing.
COUNT_SCAN None Enables count scan optimization
on sorted ranked indexes, where
the optimizer will use cardinality
information from the sorted ranked
index to determine the count of rows
that satisfy the query.
CURSOR_STATS Og Displays general cursor statistics
for the optimizer.
DATABASE_ P Displays the database parameter
PARAMETERS buffer during ATTACH, CREATE
DATABASE, ALTER DATABASE, IMPORT
DATABASE, and DISCONNECT statements.
DDL_BLR D Displays the binary language (BLR)
representation of expressions
within data definitions, such as
the expression for a computed column
within a table definition.
DETAIL_LEVEL None A debug flag used with other debug
flags to enable additional detailed
information in the debug output. The
DETAIL_LEVEL keyword can be followed
by a numeric value in parentheses.
For those debug flags that support
it, this indicates the degree of
aditional detail to be shown.
ESTIMATES O Displays the optimizer estimates.
EXECUTION E Displays an execution trace from the
dynamic optimizer. For a sequential
retrieval from a table that is
strictly partitioned, this includes
a count and a list of the selected
partitions each time the query
executes.
The EXECUTION keyword can be
followed by a numeric value in
parentheses. This represents the
number of lines to display before
stopping the execution trace for
the query execution. There can be no
spaces between the keyword and the
parameter. The default is 100.
IGNORE_OUTLINE None Ignores outlines defined in the
database. The IGNORE_OUTLINE keyword
has the same action as setting the
RDMS$BIND_OUTLINE_FLAGS logical name
to 1.
INDEX_COLUMN_ None Enables leading index columns as
GROUP workload column groups. This may
increase solution cardinality
accuracy.
INDEX_DEFER_ Xb When this flag is set and an index
ROOT is created, the index root node is
created in the database only when
there is data in the table. If the
table is empty, creation of the index
root node is deferred until rows are
inserted into the table.
INDEX_ Si Displays index partitioning
PARTITIONS information as part of a dynamic
execution trace.
INDEX_STATS Ai Enables debug flags output for the
progress of an ALTER, CREATE, or DROP
INDEX statement.
INTERNALS I Enables debug flags output for
internal queries such as constraints
and triggers. It can be used in
conjunction with other keywords such
as STRATEGY, BLR, and EXECUTION.
ITEM_LIST H Displays item list information passed
in for the database queries and as
compile-time query options
LAREA_READY Xr This flag can be used to investigate
table and index locking behavior.
This flag is disabled by default.
MAX_RECURSION None Sets the maximum number of recursions
that can be performed when executing
a match strategy. This prevents
excessive recursion in the processing
of the match strategy. The default
value is 100. The equivalent logical
name is RDMS$BIND_MAX_RECURSION.
MAX_SOLUTION None Enables maximum search space for
possible retrieval solutions. If
enabled, the optimizer will try
more solutions based on each leading
segment of the index, and thus may
create more solutions than before,
but may find more efficient solutions
applying multiple segments in index
retrieval. The equivalent logical
name is RDMS$DISABLE_MAX_SOLUTION.
Default is enabled.
MAX_STABILITY None Enables maximum stability; the
dynamic optimizer is not allowed.
The MAX_STABILITY keyword has the
same action as the RDMS$MAX_STABILITY
logical name.
MBLR M Displays the metadata binary language
representation request for the data
definition language statement
MODE(n) Allows you to specify which query
outline should be used by specifying
the mode value of that query outline.
The value of n can be any positive
or negative integer, or n can be
omitted. If you specify MODE but
omit n, the default is MODE(1). If
you specify MODE(0) or NOMODE, it
disables the display of the mode
in the SHOW FLAGS statement output.
MODE(0) is the default for Oracle Rdb
generated outlines.
NONE Not Used to turn off all currently
Applicable defined keywords. Equivalent to SET
NOFLAGS.
OBLR So Displays query outline in Binary
Language Representation (BLR).
OLD_COST_MODEL None Enables the old cost model. The
OLD_COST_MODEL keyword has the same
action as the RDMS$USE_OLD_COST_MODEL
logical name.
OPTIMIZATION_ None Used to change the default
LEVEL optimization level for a query.
If the query explicitly uses the
OPTIMIZE FOR clause, or is compiled
within an environment which overrides
the default using a method such
as SET OPTIMIZATION LEVEL, then no
change will occur. If the query uses
the default optimization level, then
the optimization will be modified by
this flag. With no option specified
or an empty options list, this will
default to TOTAL TIME. The flag
NOOPTIMIZATION_LEVEL will revert
to the default Rdb behavior.
OPTIMIZATION_ None Sets FAST FIRST as the default
LEVEL(FAST_ optimization level for queries in
FIRST) all sessions.
OPTIMIZATION_ None Sets TOTAL TIME as the default
LEVEL(TOTAL_ optimization level for queries in
TIME) all sessions.
OUTLINE Ss Displays query outline for this
query (can be used without STRATEGY
keyword)
PREFIX Bn Used with BLR keyword to inhibit
offset numbering and other formatting
of binary language representation
display.
REBUILD_SPAM_ None The flag REBUILD_SPAM_PAGES is
PAGES for use in conjunction with the
DDL commands ALTER TABLE, ALTER
STORAGE MAP, and ALTER INDEX. When
changing the row length or THRESHOLDS
clause for a table or index, the
corresponding SPAM pages for the
logical area may require rebuilding.
By default, these DDL commands
update the AIP and set a flag to
indicate that the SPAM pages should
be rebuilt. However, this flag may be
set prior to executing a COMMIT for
the transaction and the rebuild will
take place within this transaction.
Use SET FLAGS 'NOREBUILD_SPAM_PAGES'
to negate this flag.
REWRITE None When no parameters are provided,
all query rewrite optimizations are
enabled.
NOREWRITE None When no parameters are provided,
all query rewrite optimizations are
disabled.
REWRITE None Specifying the CONTAINING keyword
(CONTAINING) will enable only the CONTAINING
predicate rewrite optimization.
NOREWRITE None Specifying the CONTAINING keyword
(CONTAINING) will disable only the CONTAINING
predicate rewrite optimization.
REWRITE(LIKE) None Specifying the LIKE keyword will
enable only the LIKE predicate
rewrite optimization.
NOREWRITE(LIKE) None Specifying the LIKE keyword will
disable only the LIKE predicate
rewrite optimization.
REWRITE None Specifying the STARTING_WITH keyword
(STARTING_ will enable only the STARTING WITH
WITH) predicate rewrite optimization.
NOREWRITE None Specifying the STARTING_WITH keyword
(STARTING_ will disable only the STARTING WITH
WITH) predicate rewrite optimization.
REQUEST_NAMES Sn Displays the names of user requests,
triggers, and constraints
REVERSE_SCAN None Enables the reverse index scan
strategy. The NOREVERSE_SCAN
keyword has the same action as the
RDMS$DISABLE_REVERSE_SCAN logical
name.
SCROLL_ L Disables scrolling for old-style LIST
EMULATION OF BYTE VARYING (segmented string)
format. The SCROLL_EMULATION flag
has the same action as setting the
RDMS$DIAG_FLAGS logical name to L.
SELECTIVITY None Refers to the methods by which the
static optimizer estimates predicate
selectivity. This flag takes a
numeric value in parentheses from
0 to 3.
0 = standard (non-aggressive, non-
sampled) selectivity
1 = aggressive + non-sampled
selectivity
2 = sampled + non-aggressive
selectivity
3 = sampled + aggressive selectivity.
By default the flag is disabled,
which is the equivalent of setting
its value to 0.
SEQ_CACHE(n) None Adjusts the sequence cache size
for the process issuing the SET
FLAGS statement. The value n must
be a numeric value greater than
2. (Specifying a value of 1 is
equivalent to specifying NOSEQ_
CACHE.) Use SEQ_CACHE to override
the CACHE setting for all sequences
subsequently referenced by the
application. The new cache size
does not affect any sequence that
has already been referenced, or any
sequence defined as NOCACHE.
SOLUTIONS OsS Displays traces on optimizer
solutions.
SORTKEY_EXT S Reports if ORDER BY (or SORTED BY) is
referencing only external (constant)
value. The SORTKEY_EXT flag has the
same action as setting the RDMS$DIAG_
FLAGS logical name to S.
SORT_STATISTICS R Displays sort statistics during
execution.
STOMAP_STATS As Displays the processing of storage
maps for any tables that refer to the
dropped storage area. The output is
prefixed with "~As".
STRATEGY S Shows the optimizer strategy. If
a table is strictly partitioned,
the text "(partitioned scan#nn)"
appears after the table name, where
nn indicates the leaf number for a
sequential scan (there may be several
within a single query).
TEST_SYSTEM None This flag is used by the Oracle Rdb
testing environment to modify the
output of various functions, trace
and debugging displays. It is used
to eliminate data in test output
that would normally cause differences
between test executions.
TRACE Xt Enables output from TRACE statement
TRANSACTION_ T Displays the transaction parameter
PARAMETERS buffer during SET TRANSACTION,
COMMIT, and ROLLBACK and during
stored procedure compilation
TRANSITIVITY None Enables transitivity between
selections and join predicates.
The NOTRANSITIVITY keyword has the
same action as the RDMS$DISABLE_
TRANSITIVITY logical name.
VALIDATE_ None Enables revalidation of an
ROUTINE invalidated stored procedure or
stored function. The VALIDATE_ROUTINE
keyword has the same action as the
RDMS$VALIDATE_ROUTINE logical name.
VARIANCE_DOF(n) None Sets the default degree of freedom
(DOF) for calculation of the mean
(average) in small samples (instead
of using the VARIANCE function). Only
the values 0 and 1 are allowed.
WARN_DDL Xd Sometimes legal data definitions
can have side effects, this flag
allows these warning to be enabled
and disabled. This flag is is enabled
by default, with the exception for
when attached by PATHNAME. The data
definition statement still succeeds
even with the reported warnings. The
database administrator may choose to
rollback the statement based on this
feedback.
WARN_INVALID Xw Reports invalidated objects during
the ALTER INDEX, DROP INDEX, DROP
TABLE, and DROP MODULE statements.
WATCH_CALL Xa Traces the execution of queries,
triggers and stored functions and
procedures. The output includes
the name of the trigger, function
or procedure or "unnamed" for an
anonymous query. In most cases a
query can be named using the OPTIMIZE
AS clause. It also includes the value
of CURRENT_USER during the execution
of that routine. CURRENT_USER may be
inherited from any module that uses
the AUTHORIZATION clause.
WATCH_OPEN Xo Traces all queries executed on the
database. This may include SQL
runtime system queries to lookup
table names, etc as well as queries
executed by the application. The
output includes the 32 digit hex
identifier, the same as used by the
CREATE OUTLINE statement. This value
uniquely identifies the query being
executed.
If a query is a stored routine
(function or procedure) then the
notation "(stored)" is appended, if
the query is named then it will be
classified as "(query)", otherwise it
will be designated as "(unnamed)".
ZIGZAG_MATCH None Enables zigzag key skip on both
outer and inner match loops. When
you specify the ZIGZAG_MATCH keyword
with the NOZIGZAG_OUTER keyword, it
disables zigzag key skip on the outer
loop (and has the same action as
setting the RDMS$DISABLE_ZIGZAG_MATCH
logical name to 1). The NOZIGZAG_
MATCH keyword disables zigzag key
skip on both outer and inner match
loops (and has the same action as
setting the RDMS$DISABLE_ZIGZAG_MATCH
logical name to 2).
ZIGZAG_OUTER None Enables zigzag key skip on the outer
loop. See the entry for ZIGZAG_MATCH
for information on the action taken
when you specify ZIGZAG_OUTER and
ZIGZAG_MATCH together.