256.Sales details are being stored on a daily basis in the SALES_2007 table. A large amount of data is
added to the table daily. To save disk space, you issued the following command:
ALTER TABLE sales_2007 COMPRESS FOR ALL OPERATIONS;
What would be the outcome of this command?
A. It produces an error because data already exists in the table.
B. It produces an error because compression can be enabled at table creation only.
C. It compresses all data added or modified henceforth but the existing data in the table is not compressed immediately.
D. It immediately compresses all existing data as well as new data, resulting from either fresh additions or
modifications to existing data.
Answer: C
答案解析:
参考:http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_7002.htm#SQLRF54485
When you enable table compression by specifying COMPRESS
FOR
OLTP
, you enable OLTP table compression. Oracle Database compresses data during all DML operations on the table. This form of compression is recommended for OLTP environments.
Tables with COMPRESS
FOR
OLTP
or NOCOMPRESS
use the PCTFREE
default value of 10, to maximize compress while still allowing for some future DML changes to the data, unless you override this default explicitly.
In earlier releases, OLTP table compression was enabled using COMPRESS
FOR
ALL
OPERATIONS
. This syntax has been deprecated.
COMPRESS
FOR
OLTP
,
then chained rows are not compressed unless the header for the row remains in the original block and all row columns are moved to another block
. If the row chaining results in leaving just the row header in the block and moving all of the row's columns to the next block, and they all fit in the next block, then the columns can be compressed.