Partition, Compress, Archive and Purge Keep Your System on the Road David Kurtz Go-Faster Consultancy Ltd. [email protected] www.go-faster.co.uk.

Download Report

Transcript Partition, Compress, Archive and Purge Keep Your System on the Road David Kurtz Go-Faster Consultancy Ltd. [email protected] www.go-faster.co.uk.

Partition, Compress, Archive and Purge Keep Your System on the Road

David Kurtz Go-Faster Consultancy Ltd.

[email protected]

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 • Database Size – – – >4TB Growth ≈ 1TB/year Backup • Size/Contention – Cloning • Dev/Test environments UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©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 • • • 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 UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©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 E Business 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.

• 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.

UKOUG RAC CIA & DB Combined SIG Partition, Compress, Archive, Purge ©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

• • • 2 nd – – – 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

• It depends…

Conclusion

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