Partition, Compress, Archive and Purge Keep Your System on the Road David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk www.go-faster.co.uk Who Am I? • Oracle Database Specialist – Independent consultant • Performance tuning – PeopleSoft ERP – Oracle RDBMS • Book – www.psftdba.com • • OakTable UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 2 This happens to be a story about... • An ERP System – But it could be about any on-line transaction processing system. • A PeopleSoft system – But it could be about any ERP • PeopleSoft HR/Time & Labor/Payroll – But it could be about any product UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 4 PeopleSoft HR, T&L, GP @ Morrisons • 130,000 employees – 100,000 in stores • Scheduled hours – Clock in/out – T&L matches reported hours with schedules to determine payable time – Legacy T&L feed from Manufacturing and Distribution. – Payable time passed to Global Payroll. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 5 Two Challenges • Performance – Big Tables • (for OLTP) • Eg payroll accumulator table 2.4 billion rows! – Poor/Variable Performance • Various processes and reports suffering • Critical Processes UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge • Database Size – >4TB – Growth ≈ 1TB/year – Backup • Size/Contention – Cloning • Dev/Test environments ©2014 www.go-faster.co.uk 6 0.91Tb/yr UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 7 Throw Away • When we say the ‘database is slow’, often: – It is fetching data from disk, reading it, and deciding it isn’t something it wants and throwing it away. – It would be better if we had not spent time and resource fetching it in the first place • The fastest way to do anything is not to do it at all. – Cary Millsap UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 8 4 Techniques • Partition – Breaking tables and indexes into manageable pieces • Compress – Squeezing more data into the same space • Archive – Get the data out of the live application tables and put it somewhere else. • Purge – Expunge the data from the database UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 9 PARTITIONING UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 10 Partitioning UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 11 Can I Partition Application tables? • Support implication? • We could only use partitioning because the application and the business data was suitable. – You need to understand • the application • the data (which reflects the business) • partitioning UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 12 Partitioning decisions driven by Application • Global Payroll – ‘streamed’ processing • RANGE on EMPLID to match concurrent processing no good for archiving – ‘Calendar Group ID’ (effectively a payroll period ID) corresponds to a period of time • LIST sub-partition on payroll period - archive by partition • Scheduling, Time & Labor – Weekly range partitions on ‘Date under reporting’ UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 13 Partitioning in Other PeopleSoft Financials Modules? • General Ledger – FISCAL_YEAR & ACCOUNTING_PERIOD – Monthly/Quarterly/Annual partitions. • Many tables keyed by – Set ID (legal entity/legislature) – Business Unit • No use for archiving, but good for separating concurrent processes. • I have another customer with 99% of the business in one BUSINESS_UNIT. – Partitioning is not an option for them. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 14 Partitioning helps archiving • Links logical data value to physical location of data in the database. • Time-based partitioning – Future / Current / Historical • Partition-wise operations – – – – – Compress historical partitions Archive by partition exchange Purge by dropping whole partitions. Less Redo. Faster. Better chance of reclaiming free space UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 15 Delete rows –v- Drop Partition? • Free space is left in data block. • High Water Mark unchanged – Data block remain part of table/index – Still scanned by queries. • Still backed up by RMAN UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge • No longer in a database object. So not referenced. • Free space is available in tablespace. – Still backed up • If the space is at end of the datafile it can be trimmed off by resize. – No longer backed up ©2014 www.go-faster.co.uk 16 Partitioning PeopleSoft at Morrisons • Global Payroll – 46 tables range on EMPLID, matching 32 streams – List sub-partition largest tables by pay period (CAL_RUN_ID). – 24 archive tables, range partitioned on pay period into tax-year partitions. – 2 custom GP reporting tables • Schedules & Time and Labor – 10 tables in weekly range partitions – of which Reported Time table hash sub-partitioned • Audit Tables – 28 monthly range partitions on audit timestamp • Security Tables – Separate partitions for different business units UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 17 Managing Partitioning and Partition DDL • How are you going to generate partition DDL? – Manual scripting? – Who is going to write them? – On going maintenance? • Add new partitions over time? UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 18 Managing Partitioning in PeopleSoft • Partitioning strategies – Described own meta-data tables • PL/SQL Utility package – generate DDL scripts. – Driven by PeopleTools tables and our own meta-data • Application Designer from PT8.51 will preserve some existing partitioning – See Managing Oracle Table Partitioning in PeopleSoft Applications with GFC_PSPART Package • http://www.go-faster.co.uk/gfc_pspart.manual.pdf UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 19 Licencing of Partitioning • Oracle RDBMS Enterprise Edition only – And then separately licenced • Application Support Policies Vary – Partitioning does not invalidate any aspect of PeopleSoft support. – My understanding is that the policy for EBusiness suite is not the same. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 21 COMPRESSION UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 23 Oracle RDBMS Compression • Basic Compression – Not separately licenced – Only option in 10g • Advanced Compression • Out of scope of this presentation – Licenced option – Available in 11g • Hybrid Columnar Compression (HCC) • Also out of scope of this presentation. – Exadata and ZFS filesystem only. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 24 Simple Compression • Block Dictionary Encoding – Data values stored only stored once in array in data block. – Pointer from row of data to array of values. • Shorter Rows, more rows per block, fewer Blocks, less I/O • More CPU to read row. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 25 Simple Table Compression • Specified at table or partition level with DDL – Sub-partition level inherits from partition level • Compression only occurs – On creation of the object • ALTER TABLE … COMPRESS – Direct path insert into object – CPU overhead during compression and read • Row decompressed on update – Likely to be migrated UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 26 Advanced Table Compression • 11g Licenced Option – – – – Same Compression Algorithm Same Performance Benefits/Overheads Data compressed after DML Tables remain on-line during compress operations. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 27 When can I compress my data? • When it is no longer updated by application. – Because DML uncompresses rows – But that may be well before you can archive/purge. – Needs knowledge of business/application. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 28 What tables do I compress? • Depends on application, business, and partitioning strategy. – Audit data partitions: as soon as month ends – Payroll result data: when pay period is closed for 1 month – T&L: after 6 months UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 29 Compression Gotcha! • During – ALTER TABLE PARTITION … MOVE … COMPRESS. • Local index partitions momentarily become unusable before they go back to being usable. • This can cause application errors – – – – Choose carefully when to compress, or ignore unusable indexes, or do it in an outage or use on-line reredefinition UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 30 Custom PL/SQL Utility Package • DBA run management utility • Meta-data rules to determine when partition no longer updated. – Moves partitions to correct tablespace – Incrementally compress static partitions. – Dynamically generates DDL statements and executes them. – Added some logging which appears trace files and alert log. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 31 How much table compression? • It depends on your data! • We have see a factor 2x – 5x on tables – (50%-80% reduction in size) • Indexes are less compressible – Up to 50% reduction UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 33 Index Compression • Applies to whole of index – Can choose to enable/disable for each partition • Useful for DEFAULT or MAXVALUE partition • Index remains compressed – DML does not decompress – CPU Performance overhead • Table compression does not affect index size. – But can affect clustering factor and hence cost UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 34 Index Compression Prefix Length • Choose how many columns of index to compress – Too much compression can be worse than no compression at all UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 35 UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 36 ANALYZE INDEX VALIDATE • Examines physical index segments – OPT_CMPR_COUNT = optimal compression – OPT_CMPR_PCTSAVE = size saving relative to current index size – 1 result row in INDEX_STATS • Result is for last partition if partitioned index • MAXVALUE / DEFAULT partition may produce unusual results. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 37 Index Compression • Not limited to static data • Increased CPU overhead on DML – Offset by lower I/O overhead • We found that it has been worth compressing largest indexes on live tables. – Space Saving – Net performance gain UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 38 ARCHIVE & PURGE UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 39 Archive & Purge • Archive: – Move data from live application table to another table. – In this case another to table in the same database. – Read-only access provided to archive tables. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge • Purge: – Expunge data from the database. ©2014 www.go-faster.co.uk 40 Archive/Purge • For each table or set of tables – Define a policy that specifies when data is archived or purged. • Compression too, but that has no functional impact. • Discuss with business – Check legal requirements • PAYE 3 years, Company Accounts 6 years UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 41 ‘But my data will disappear’ • That may be a good thing – If you keep data you have to look after it responsibly. – Pay for the disk to store it/back it up. • Read-only access via PS/Query tool to archive data. – No access via SQL Developer • A very few components and reports access archive tables – Development cost of customisation UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 42 Example Archive/Purge Policies – GP: archive 2 rolling years, purge after 8 tax years – Schedules, purge at 56 weeks – T&L, purge at 108 weeks – Audit: various: • Archive after 3 months, 1, 3 year • Purge 6 months, 1 year, 2 years, never UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 43 Archive Method • Partition Management – Exchange/Drop whole Partitions • Time based partitioning – Faster • Avoid rewriting data • Avoid redo – Global Indexes maintenance overhead • Don’t build on archive table – Compression must match • Archive table indexes not compressed. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge • Row-by-Row – Non-time based partitioning • Some GP tables – Can be done on-line – Can compress data during rewrite – Different partitioning strategy in archive and live. – Move archive to lower storage tier. ©2014 www.go-faster.co.uk 44 PL/SQL Archive/Purge Utility • Custom PL/SQL Package – – – – Driven by same meta-data as partitioning utility Archive by partition exchange Purge by dropping partition. Called from custom Application Engine • So archiving can be done via application. – Writes • To PeopleSoft Message Log UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 46 Custom Archive Utility • Based on delivered PeopleSoft Archive Utility • We only use it for GP archiving • Copies data in direct path – Faster – Can compress during copy • Calls PL/SQL utility to drop partitions to save deleting data. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 48 ‘PSARCH’ Schema Design • 2nd schema to hold archive tables – Only tables archived by partition exchange – Same name as live tables – Same local indexes as live • Benefits – Application cannot update/delete from these tables. • Drawbacks – Views to make them accessible to PS/Query. – Can’t manage indexes with Application Designer. – Only Owner can alter index UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 49 Tablespace Design • No impact on performance – Because all on same tier of disk • Do not keep objects with dissimilar purge policies in same tablespaces – You can drop empty tablespaces and recover space. • Periodic tablespaces make sense without purge policy • With a purge policy might just have one tablespace. – Unless you have tiered storage available. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 50 Wrong Tablespace Design • Before archive policy – Weekly T&L and Schedule partitions in same monthly tablespaces • Archive Policy – T&L: 108 weeks – Schedules: 56 weeks • Schedules populated first, T&L later. – Schedules tend to be nearer start of tablespace – Schedules purged first leaving holes than cannot be trimmed off. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 51 Free Space Fragmentation • Free Space left in middle of tablespace – Dropping objects – Compressing objects can leave holes • Less Severe since Oracle 9i – Uniform extent sizes – Bitmap space map UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 52 UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 53 Oracle RMAN Backup • Backs up block with SCN – If an object is dropped, blocks still have SCN – These empty blocks are still backed up. • Can only reduce full backup size by trimming free space from end of data files. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 54 Defragmentation of Free Space • PL/SQL utility to rebuild objects nearest end of data file into spaces in the middle of the tables – Needs to be done during an application outage. • Frees space at end of data file that can be trimmed off. – Thus reducing size of database and backup. UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 55 Oracle Flashback Database • SQL Rollback – We are used to the idea of rolling back transaction that have not been committed. • Flashback database – Generates additional flashback logging – Rollback committed transaction and DDL • but not through a drop/resize data file (smaller) – Whole database option • Highly effective in testing archive/purge UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 56 Future: Oracle >= 11g • Automatic Partition Creation • Range-Range partitioning • Advanced Compression – Licenced Option – Supports DML • Possible row-migration threats. • Active Data-Guard – Off-load query activity to standby database UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 57 PROGRESS UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 58 0.91Tb/yr 0.56Tb/yr UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 61 UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 62 Achievements • Database Size – 4.5TB => <2TB – No Growth (apart from GP archive tablespace) • Performance Improvements – GP calculation and other processing – T&L processing – Financial Reports UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 63 Caveat • I/O has reduced, but not as much as the size of the database • IOPs/Gb of data file has gone up! – Cheaper to use SSD rather than stripe over more spindles but leaving empty disk space to supply more IOPs? UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 64 Conclusion • It depends… UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 65 Nullius in verba QUESTIONS? UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©2014 www.go-faster.co.uk 66