SQL/MX 2.x Installation and Management Guide (G06.24+, H06.03+)

Reorganizing SQL/MX Tables and Maintaining Data
HP NonStop SQL/MX Installation and Management Guide523723-004
10-36
Examples of Using PURGEDATA to Delete Table
Data
PURGEDATA records operation progress steps in the DDL_LOCKS metadata
table. Users can query this table to determine the PURGEDATA operation’s
progress. For more information about PURGEDATA operation steps and their
progress states, see the SQL/MX Reference Manual. For more information about
querying for DDL_LOCK information, see Section 8, Querying SQL/MX Metadata.
The PURGEDATA operation temporarily invalidates, by marking as corrupt, tables
and indexes, which prevents concurrent access by other users until the data is
purged.
After purging the data, the PURGEDATA operation validates the table and indexes
by turning off the corrupt flag so that they are again accessible to other users.
The PURGEDATA operation does not automatically alter the table’s statistics. After
purging the data and after you (or any programs) have added data to the table, run
an UPDATE STATISTICS statement to record current statistics for the table in the
catalog. If the statistics are incorrect, the SQL compiler might not select the best
access path for performance.
You cannot use the PURGEDATA command on a view or in an SQL program.
PURGEDATA returns errors if:
You specify a list of partition for a hash-partitioned table. For hash-partitioned
objects, you must delete the entire table.
You attempt PURGEDATA on SQL/MX metadata tables, including histograms,
system defaults, and the MXCS metadata tables.
Another table references the named table through a trigger or referential integrity
constraint.
You attempt to perform PURGEDATA within a user-defined transaction. There is
no notion of a transaction existing for a table.
Examples of Using PURGEDATA to Delete Table Data
This example purges the data in the specified table. If the table has indexes, the
indexes are also purged.
PURGEDATA mycat.myschema.mytable;
This example purges the data in the specified partition, which has a Guardian name:
PURGEDATA mycat.myschema.mytable
WHERE LOCATION $DATA1.ZSDA09TO.QZ780000;
This example purges data from all partitions of the table:
PURGEDATA mycat.myschema.mytable
WHERE KEY = FIRST PARTITION THRU LAST PARTITION;