- สำหรับ user ที่จะใช้ในการรัน compression นั้นต้องเป็น informix
- ต้องรันที่ sysadmin database
- database server ต้องเป็น informix version 11.50 ด้วย
- table หรือ partition on table ที่จะ Compress ต้องมีข้อมูลมากกว่า 2000 row และ update statistics แล้ว
- ไม่สามารถ compress temp table
- ไม่สามารถ compress index
- ไม่สามารถ compress กับ system database
ขั้นตอนการทำ Table Compression
2. Enable compression first
Once to enable compression for the database server (run ครั้งแรกที่ทำการ compress ครั้งต่อไปไม่ต้องรันอีก )
execute function task("enable compression" , "${Tabname}", "${Dbname}" , "${Owner}");
execute function task("enable compression" , "dail_subr_prp_200908", "cmtdb" , "cmtuser");
3. Create the dictionary
execute function task("table create_dictionary", "[Tabname]", "[Dbname]" , "[Owner]");
example
execute function task("table create_dictionary", "dail_subr_prp_200908", "cmtdb" , "cmtuser");
4. Execute compression
4.1 กรณี compress ทั้ง table
execute function task ("table compress repack shrink", "[Tabname]", "[Dbname]" , "[Owner]");
example
execute function task ("table compress repack shrink", "dail_subr_prp_200908", "cmtdb" , "cmtuser");
4.2 กรณี compress by partion ต้องมี ขั้นตอนดังนี้
4.2.1 หา partition number ที่จะทำการ compress (run on sysadmin)
select partition,partn,nrows::int as nrows from sysfragments
where fragtype = 'T'
and tabid in (select tabid from systables where tabname = '${TabName}')
order by 1
Result
partition partn20090802
partn 16777220 --> partition number ที่เราต้องการ
nrows 19283263
4.2.2 เมื่อได้ partition number ที่เราต้องการแล้ว ใช้ ก็สามารถ compress table ได้
execute function task ('fragment compress repack shrink','${Partnum}') ;
example
execute function task ('fragment compress repack shrink','16777220') ;
5. หากต้องการ uncompress table
execute function task ("table uncompress", "dail_subr_prp_200908", "cmtdb" , "cmtuser");
No comments:
Post a Comment