DB2 – Data Compression
1. Overview of Compression
??? ??? ??? ??? ???? ?? ? ?? ??? ?????.
??, ??? ??(Create) ?? ??(Alter)? ?? COMPRESS YES ?? ???? ??? ????? ??? ???? ???.
??, ???? ???? ???? ?? ?? ??? ?? ??? ???.
? ? ?? ??? ????? ?? ???? ???? ??(Insert) ? ??(Update) ? ? ??? ??? ????? ???.
??? ???? ??? ?? ??? ??? ?? ???, ? ?? ??? ????(Range) ???? ????? DPF ?? ????? ?? ???? ???.
?. Building the compression dictionary
DB2 ??? ??? ???? ?? ??? ?? ?? ??? ??? ??? ????.
l DB2 Version 9.1 : ? ?? ??? ???? ?? Reorg ??? ???? ????. ?? ??? REORG TABLE ?? RESETDICTIONARY ? KEEPDICTIONARY ??? ?? ??? ??? ?????. ? ?? ??? INSPECT ????? ???? ????.
l DB2 Version 9.5 : ??? Reorg ? INSPECT ?? ? ??? ???? ?? ??? ??? ???? ??? ?? ??? ?? ? ????(ADC(Automatic Dictionary Creation) ???? ?? ???). ?? ??? LOAD REPLACE ? RESETDICTIONARY ? KEEPDICTIONARY ??? ?? ?????.
2. Choosing candidate tables for compression
??? ??? ??? ??? ?? ???? ???? ?? ?? ???? ??? ?????.
?????? ??? ? ???? ?? ??? ???? ?? ? ?, ? ? ?? ???? ??? ???? ??? ? ?? ?? ? ?? ?? ??? ????.
??? ?? ?? ADMIN_GET_TAB_INFO ?? SQL ?? ??? ???? ?? ?? ???? ?? ?? ???? ?? ??? ???? ??? ?? ? ????.
SELECT TABNAME, DATA_OBJECT_P_SIZE FROM
TABLE(SYSPROC.ADMIN_GET_TAB_INFO(‘schema_name’,’’) AS T
ORDER BY DATA_OBJECT_P_SIZE
|
? ??? ????? ??? ??? ???? ?? ?? ??? ??? ?? ? ? ?? ??? ???? ??? ???? ?? ?? ?? ?? ?? ? ? ????. ?? DICTIONARY_SIZE ?? NULL ? ???, ?? ??? ???? ??? ?? ??? ??? ?? ???, ???? ???? ?? ?? ??? ??? ??? ? ?? ?? ???.
??? ??? ?? ?? ????(?? ??? ? ? KB) ??? ??? ??? ???? ??? ?? ??? ?? ? ??? ?? ??? ?? ??? ?? ???? ?? ? ?? ????.
??? ??? ????? ??? ???? ??? 1MB ?? ? ???? ???? ???? ?? ????.
SQL ?? ??? ??? ??? ??? ??? ???? ??? ? ????. Read-only ???? ???, Update ? ??? ???? ???, ??/?? ??? 70/30 ??? ?? ??? ??? ???? ???? ??? ???? ?? ????? ??? ?? ?????.
OLTP ????? ???? ?? ??? ??? ??? ?? ??? ???? ??? ? ?? ? ?? ??? ?? ???? ?? ?? ? ? ??? ?? ? ???? ??? ??? ??? ?????.
? ??? ??? ? I/O ???? ?? ?? ???, ??? ?? ? ?? ?? ? CPU? ??? ???? ???. ? ??? DW ?? ??? SQL? ???? ?? ??? I/O ?? ??? ?? ????? ???? ??? ??? ?? ? ????.
??? ??? ???? ???? INSERT, UPDATE, DELETE ? ???? Log ???? ????? ?? ????. Log ???? ?? ??? ?? update ??? ??? ?? ?? ???.
3. Estimating compression ratios
DB2 V9??? INSPECT ROWCOMPESTIMATE ????? ?? ???? ???? ???? ?? ???? ???? ?? ?? ????? ??? ? ? ????.
INSPRECT ??? ROWCOMPESTIMATE ?? ???? ??? ?? ? ?? ?? ???? ?? ?? ??? ??? ??? ???? ??? ?? ??? ??? ??? ??? ?????.
??, ???? COMPRESS YES ??? ???? ??? ???? ?? ??? ???? ??? ???? ??? ?? ?? ??? ?? ? ? ????. ???? COMPRESS YES ??? ???? ??? ??? ??? ???? ??? ???? INSPRECT ??? ????? ?? ??? ??? ?? ???.
???? ???? ?? ?? ?? ?? ?? ?? ???.
1. INSPECT ?? ??
db2 INSPECT ROWCOMPESTIMATE TABLE NAME table_name SCHEMA schema_name RESULTS
KEEP file_name
|
INSPECT ??? ?? ??? ?? ??? DBM CFG? DIGPATH? ??? ??? ?????.
2. ?? ?? ??
db2inspf file_name output_file_name
|
db2inspf ??? ??? INSPECT ??? ?? ??? ???? ??? ??? ??? ??? ???? ? ???.
??? ???? ?? ? ?? ??? ?????.
DB2 V9.5 ??? SQL ?? ??? ADMIN_GET_TAB_COMPRESS_INFO? ??? ??? ???? ?? ? ? ????.
SELECT * FROM TABLE(SYSPROC.AMDIN_GET_TAB_COMPRESS_INFO (‘schema’,
‘table_name’, ‘mode’)) AS T
|
?? ?? SQL ?? ???? ??, mode ?? ‘REPORT’ ?? ‘ESTIMATE’ ???.
‘ESTIMATE’ ??? ???? ??? ROWCOMPESTIMATE ??? ??? INSPECT ????? ??? ???? ??? ???. SQL ?? ??? ??? ??? ??? RUNSTATS ??? ???? ??? ?? ?? ?? ? ? ????.
‘REPORT’ ??? ???? ??? ?? ??? ?? ??? ?? ? ? ????. ?? ??? ??? ??, ??? ?? ??? ??? ? ?? ??? ??? ? ????.
??????? ??? ? ??????? ??? REGULAR? ? ?? ???? ?? row ?? 255?? ??? ???. ??? ??? ??? ? ? ???? 255?? ?? ?? row? ????? ?? ???? LARGE ??? ???????? ?????.(DB2 V9??? DMS ???????? ??? ??? LARGE ???. SMS? ??? REGULAR)
|