E-Book, Englisch, 824 Seiten
Kyte / Kuhn Expert Oracle Database Architecture
3rd ed
ISBN: 978-1-4302-6299-2
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark
E-Book, Englisch, 824 Seiten
ISBN: 978-1-4302-6299-2
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark
This fully revised third edition covers the developments up to Oracle Database 12. Significant new content is included surrounding Oracle's new cloud feature set, and especially the use of pluggable databases. Each feature is taught in a proof-by-example manner, not only discussing what it is, but also how it works, how to implement software using it, and the common pitfalls associated with it.
Don’t treat Oracle Database as a black-box. Get this book. Get under the hood. Turbo-charge your career.
- Revised to cover Oracle Database 12
- Proof-by-example approach: Let the evidence be your guide
- Dives deeply into Oracle Database’s most powerful features
Autoren/Hrsg.
Weitere Infos & Material
1;Contents at a Glance;3
2;Contents;786
3;About the Authors;797
4;About the Technical Reviewers;798
5;Acknowledgments;799
6;Introduction;4
7;Setting Up Your Environment;800
8;Chapter 1: Developing Successful Oracle Applications;8
8.1;My Approach;9
8.2;The Black Box Approach;10
8.3;How (and How Not) to Develop Database Applications;18
8.3.1;Understanding Oracle Architecture;19
8.3.1.1;Use a Single Connection in Oracle;19
8.3.1.2;Use Bind Variables;20
8.3.2;Understanding Concurrency Control;30
8.3.2.1;Implementing Locking;31
8.3.2.2;Preventing Lost Updates;32
8.3.3;Multiversioning;34
8.3.3.1;Flashback;36
8.3.3.2;Read Consistency and Nonblocking Reads;38
8.3.4;Database Independence?;41
8.3.4.1;The Impact of Standards;44
8.3.4.2;Make Sure You Can Adapt;45
8.3.4.3;Layered Programming;48
8.3.4.4;Features and Functions;50
8.3.4.5;Knowing What’s Out There;51
8.3.4.6;Solving Problems Simply;53
8.3.4.7;Openness;54
8.3.5;How Do I Make It Run Faster?;55
8.3.6;The DBA-Developer Relationship;58
8.4;Summary;58
9;Chapter 2: Architecture Overview;60
9.1;Defining Database and Instance;61
9.1.1;The SGA and Background Processes;68
9.2;Connecting to Oracle;70
9.2.1;Dedicated Server;70
9.2.2;Shared Server;72
9.2.3;Mechanics of Connecting over TCP/IP;74
9.3;Pluggable Databases;76
9.3.1;Reduced Resource Utilization;77
9.3.2;Reduced Maintenance;77
9.4;How Is a Pluggable Database Different?;78
9.5;Summary;78
10;Chapter 3: Files;80
10.1;Parameter Files;81
10.1.1;What Are Parameters?;82
10.1.2;Legacy init.ora Parameter Files;85
10.2;Server Parameter Files (SPFILEs);87
10.2.1;Converting to SPFILEs;87
10.2.1.1;Setting Values in SPFILEs;89
10.2.1.2;Unsetting Values in SPFILEs;92
10.2.1.3;Creating PFILEs from SPFILEs;92
10.2.1.4;Fixing Corrupted SPFILEs;93
10.2.1.5;Pluggable Databases;94
10.2.1.6;Parameter File Wrap-up;95
10.3;Trace Files;95
10.3.1;Requested Trace Files;96
10.3.1.1;File Locations;96
10.3.1.2;Naming Convention;99
10.3.1.3;Tagging Trace Files;100
10.3.2;Trace Files Generated in Response to Internal Errors;101
10.3.3;Trace File Wrap-up;105
10.4;Alert File;106
10.5;Data Files;109
10.5.1;A Brief Review of File System Mechanisms;109
10.5.2;The Storage Hierarchy in an Oracle Database;111
10.5.2.1;Segments;111
10.5.2.2;Extents;111
10.5.2.3;Blocks;111
10.5.2.4;Tablespaces;113
10.5.2.5;Storage Hierarchy Summary;114
10.5.3;Dictionary-Managed and Locally-Managed Tablespaces;114
10.6;Temp Files;116
10.7;Control Files;118
10.8;Redo Log Files;118
10.8.1;Online Redo Log;119
10.8.2;Archived Redo Log;121
10.9;Password Files;122
10.10;Change Tracking File;125
10.11;Flashback Logs;126
10.11.1;Flashback Database;126
10.11.2;Fast Recovery Area;127
10.12;DMP Files (EXP/IMP Files);128
10.13;Data Pump Files;129
10.14;Flat Files;131
10.15;Summary;132
11;Chapter 4: Memory Structures;133
11.1;The Process Global Area and User Global Area;134
11.1.1;Manual PGA Memory Management;135
11.1.2;Automatic PGA Memory Management;141
11.1.2.1;Determining How the Memory Is Allocated;143
11.1.2.2;Using PGA_AGGREGATE_TARGET to Control Memory Allocation;149
11.1.3;Choosing Between Manual and Auto Memory Management;152
11.1.4;PGA and UGA Wrap-up;153
11.2;The System Global Area;154
11.2.1;Fixed SGA;159
11.2.2;Redo Buffer;159
11.2.3;Block Buffer Cache;161
11.2.3.1;Managing Blocks in the Buffer Cache;162
11.2.3.2;Multiple Block Sizes;166
11.2.4;Shared Pool;168
11.2.5;Large Pool;170
11.2.6;Java Pool;171
11.2.7;Streams Pool;171
11.2.8;SGA Memory Management;172
11.2.8.1;Manual Shared Memory Management;172
11.2.8.2;Automatic Shared Memory Management;175
11.2.8.3;Automatic Memory Management;176
11.3;Summary;177
12;Chapter 5: Oracle Processes;178
12.1;Server Processes;178
12.1.1;Dedicated Server Connections;179
12.1.2;Shared Server Connections;181
12.1.3;Database Resident Connection Pooling (DRCP);182
12.1.4;Connections vs. Sessions;182
12.1.5;Dedicated Server vs. Shared Server vs. DRCP;188
12.1.5.1;When to Use a Dedicated Server;188
12.1.5.2;When to Use a Shared Server;188
12.1.5.3;Potential Benefits of a Shared Server;189
12.1.5.3.1;Reduces the Number of Operating System Processes/Threads;189
12.1.5.3.2;Artificially Limits the Degree of Concurrency;189
12.1.5.3.3;Reduces the Memory Needed on the System;190
12.1.5.4;DRCP;191
12.1.6;Dedicated/Shared Server Wrap-up;191
12.2;Background Processes;192
12.2.1;Focused Background Processes;193
12.2.1.1;PMON: The Process Monitor;197
12.2.1.2;LREG: Listener Registration Process;197
12.2.1.3;SMON: The System Monitor;198
12.2.1.4;RECO: Distributed Database Recovery;199
12.2.1.5;CKPT: Checkpoint Process;199
12.2.1.6;DBWn: Database Block Writer;199
12.2.1.7;LGWR: Log Writer;200
12.2.1.8;ARCn: Archive Process;201
12.2.1.9;DIAG: Diagnosability Process;201
12.2.1.10;FBDA: Flashback Data Archiver Process;201
12.2.1.11;DBRM: Database ResourceManager Process;202
12.2.1.12;GEN0: General Task Execution Process;202
12.2.1.13;Remaining Common Focused Processes;202
12.2.2;Utility Background Processes;204
12.2.2.1;CJQ0 and Jnnn Processes: Job Queues;204
12.2.2.2;QMNC and Qnnn: Advanced Queues;205
12.2.2.3;EMNC: Event Monitor Processes;205
12.2.2.4;MMAN: Memory Manager;205
12.2.2.5;MMON, MMNL, and Mnnn: Manageability Monitors;205
12.2.2.6;CTWR: Change Tracking Processes;206
12.2.2.7;RVWR: Recovery Writer;206
12.2.2.8;DMnn/DWnn: Data Pump Master/Worker Processes;206
12.2.2.9;TMON/TT00: Transport Monitor and Redo Transport Slave;206
12.2.2.10;Remaining Utility Background Processes;206
12.3;Slave Processes;206
12.3.1;I/O Slaves;207
12.3.2;Pnnn: Parallel Query Execution Servers;207
12.4;Summary;208
13;Chapter 6: Locking and Latching;209
13.1;What Are Locks?;209
13.2;Locking Issues;212
13.2.1;Lost Updates;212
13.2.2;Pessimistic Locking;213
13.2.3;Optimistic Locking;214
13.2.3.1;Optimistic Locking Using a Version Column;215
13.2.3.2;Optimistic Locking Using a Checksum;218
13.2.4;Optimistic or Pessimistic Locking?;221
13.2.5;Blocking;221
13.2.5.1;Blocked Inserts;222
13.2.5.2;Blocked Merges, Updates, and Deletes;224
13.2.6;Deadlocks;224
13.2.7;Lock Escalation;228
13.3;Lock Types;229
13.3.1;DML Locks;229
13.3.1.1;TX (Transaction) Locks;230
13.3.1.2;TM (DML Enqueue) Locks;238
13.3.2;DDL Locks;240
13.3.3;Latches;244
13.3.3.1;Latch “Spinning”;245
13.3.3.2;Measuring the Cost of Latching a Shared Resource;246
13.3.3.2.1;Setting Up for the Test;247
13.3.3.2.2;Without Bind Variables;248
13.3.3.2.3;With Bind Variables;250
13.3.3.2.4;Performance/Scalability Comparison;253
13.3.4;Mutexes;253
13.3.5;Manual Locking and User-Defined Locks;254
13.3.5.1;Manual Locking;254
13.3.5.2;Creating Your Own Locks;254
13.4;Summary;255
14;Chapter 7: Concurrency and Multiversioning;256
14.1;What Are Concurrency Controls?;256
14.2;Transaction Isolation Levels;257
14.2.1;READ UNCOMMITTED;259
14.2.2;READ COMMITTED;260
14.2.3;REPEATABLE READ;262
14.2.3.1;Getting a Consistent Answer;262
14.2.3.2;Lost Updates: Another Portability Issue;263
14.2.4;SERIALIZABLE;264
14.2.5;READ ONLY;266
14.3;Implications of Multiversion Read Consistency;267
14.3.1;A Common Data Warehousing Technique That Fails;267
14.3.2;An Explanation for Higher Than Expected I/O on Hot Tables;268
14.4;Write Consistency;270
14.4.1;Consistent Reads and Current Reads;271
14.4.2;Seeing a Restart;273
14.4.3;Why Is a Restart Important to Us?;276
14.5;Summary;277
15;Chapter 8: Transactions;278
15.1;Transaction Control Statements;278
15.2;Atomicity;280
15.2.1;Statement-Level Atomicity;280
15.2.2;Procedure-Level Atomicity;282
15.2.3;Transaction-Level Atomicity;286
15.2.4;DDL and Atomicity;286
15.3;Durability;286
15.3.1;WRITE Extensions to COMMIT;287
15.3.2;COMMITS in a Nondistributed PL/SQL Block;288
15.4;Integrity Constraints and Transactions;290
15.4.1;IMMEDIATE Constraints;290
15.4.2;DEFERRABLE Constraints and Cascading Updates;290
15.5;Bad Transaction Habits;294
15.5.1;Committing in a Loop;295
15.5.1.1;Performance Implications;295
15.5.1.2;Snapshot Too Old Error;297
15.5.1.3;Restartable Processes Require Complex Logic;300
15.5.2;Using Autocommit;301
15.6;Distributed Transactions;302
15.7;Autonomous Transactions;303
15.7.1;How Autonomous Transactions Work;304
15.7.2;When to Use Autonomous Transactions;306
15.8;Summary;308
16;Chapter 9: Redo and Undo;310
16.1;What Is Redo?;310
16.2;What Is Undo?;311
16.3;How Redo and Undo Work Together;315
16.3.1;Example INSERT-UPDATE-DELETE-COMMIT Scenario;315
16.3.1.1;The INSERT;315
16.3.1.1.1;Hypothetical Scenario: The System Crashes Right Now;316
16.3.1.1.2;Hypothetical Scenario: The Buffer Cache Fills Up Right Now;316
16.3.1.2;The UPDATE;317
16.3.1.2.1;Hypothetical Scenario: The System Crashes Right Now;318
16.3.1.2.2;Hypothetical Scenario: The Application Rolls Back the Transaction;318
16.3.1.3;The DELETE;319
16.3.1.4;The COMMIT;319
16.4;Commit and Rollback Processing;319
16.4.1;What Does a COMMIT Do?;319
16.4.2;What Does a ROLLBACK Do?;326
16.5;Investigating Redo;327
16.5.1;Measuring Redo;327
16.5.2;Can I Turn Off Redo Log Generation?;329
16.5.2.1;Setting NOLOGGING in SQL;329
16.5.2.2;Setting NOLOGGING on an Index;331
16.5.2.3;NOLOGGING Wrap-up;332
16.5.3;Why Can’t I Allocate a New Log?;333
16.5.4;Block Cleanout;334
16.5.5;Log Contention;337
16.5.6;Temporary Tables and Redo/Undo;339
16.5.6.1;Prior to 12c;339
16.5.6.2;Starting with 12;343
16.6;Investigating Undo;344
16.6.1;What Generates the Most and Least Undo?;344
16.6.2;ORA-01555: Snapshot Too Old Error;346
16.6.2.1;Undo Segments Are in Fact Too Small;348
16.6.2.2;Delayed Block Cleanout;353
16.7;Summary;357
17;Chapter 10: Database Tables;358
17.1;Types of Tables;358
17.2;Terminology;360
17.2.1;Segment;360
17.2.2;Segment Space Management;362
17.2.3;High-water Mark;363
17.2.4;FREELISTS;365
17.2.5;PCTFREE and PCTUSED;369
17.2.5.1;Row Migration;370
17.2.5.2;Setting PCTFREE and PCTUSED Values;372
17.2.6;LOGGING and NOLOGGING;372
17.2.7;INITRANS and MAXTRANS;373
17.3;Heap Organized Tables;373
17.4;Index Organized Tables;376
17.4.1;Index Organized Tables Wrap-up;391
17.5;Index Clustered Tables;391
17.5.1;Index Clustered Tables Wrap-up;399
17.6;Hash Clustered Tables;399
17.6.1;Hash Clustered Tables Wrap-up;407
17.7;Sorted Hash Clustered Tables;408
17.8;Nested Tables;411
17.8.1;Nested Tables Syntax;411
17.8.2;Nested Table Storage;418
17.8.3;Nested Tables Wrap-up;421
17.9;Temporary Tables;422
17.9.1;Statistics Prior to 12c;425
17.9.2;Statistics Starting with 12c;429
17.9.2.1;Session Statistics;429
17.9.2.2;Shared Statistics;431
17.9.2.3;Statistics for ON COMMIT DELETE ROWS;432
17.9.2.4;Direct-Path Load Automatic Statistics Gathering;433
17.9.3;Temporary Tables Wrap-up;433
17.10;Object Tables;434
17.10.1;Object Tables Wrap-up;440
17.11;Summary;441
18;Chapter 11: Indexes;442
18.1;An Overview of Oracle Indexes;442
18.2;B*Tree Indexes;444
18.2.1;Index Key Compression;447
18.2.2;Reverse Key Indexes;450
18.2.3;Descending Indexes;455
18.2.4;When Should You Use a B*Tree Index?;458
18.2.4.1;Physical Organization;460
18.2.4.2;The Clustering Factor;465
18.2.5;B*Trees Wrap-up;468
18.3;Bitmap Indexes;468
18.3.1;When Should You Use a Bitmap Index?;469
18.3.2;Bitmap Join Indexes;473
18.3.3;Bitmap Indexes Wrap-up;476
18.4;Function-Based Indexes;476
18.4.1;A Simple Function-Based Index Example;477
18.4.2;Indexing Only Some of the Rows;486
18.4.3;Implementing Selective Uniqueness;487
18.4.4;Caveat Regarding ORA-01743;488
18.4.5;Function-Based Indexes Wrap-up;489
18.5;Application Domain Indexes;489
18.6;Invisible Indexes;490
18.7;Multiple Indexes on the Same Column Combinations;492
18.8;Indexing Extended Columns;492
18.8.1;Virtual Column Solution;493
18.8.2;Function-Based Index Solution;495
18.9;Frequently Asked Questions and Myths About Indexes;497
18.9.1;Do Indexes Work on Views?;497
18.9.2;Do Nulls and Indexes Work Together?;497
18.9.3;Should Foreign Keys Be Indexed?;500
18.9.4;Why Isn’t My Index Getting Used?;501
18.9.4.1;Case 1;501
18.9.4.2;Case 2;503
18.9.4.3;Case 3;503
18.9.4.4;Case 4;503
18.9.4.5;Case 5;506
18.9.4.6;Case 6;507
18.9.4.7;Index Case Summary;507
18.9.5;Myth: Space Is Never Reused in an Index;507
18.9.6;Myth: Most Discriminating Elements Should Be First;510
18.10;Summary;513
19;Chapter 12: Datatypes;514
19.1;An Overview of Oracle Datatypes;514
19.2;Character and Binary String Types;517
19.2.1;NLS Overview;517
19.2.2;Character Strings;521
19.2.2.1;Character String Syntax;524
19.2.2.2;Bytes or Characters;525
19.2.2.3;The “N” Variant;527
19.3;Binary Strings: RAW Types;528
19.4;Extended Datatypes;530
19.5;Number Types;532
19.5.1;NUMBER Type Syntax and Usage;534
19.5.2;BINARY_FLOAT/BINARY_DOUBLE Type Syntax and Usage;538
19.5.3;Non-Native Number Types;539
19.5.4;Performance Considerations;539
19.6;Long Types;541
19.6.1;Restrictions on LONG and LONG RAW Types;541
19.6.2;Coping with Legacy LONG Types;542
19.7;Dates, Timestamps, and Interval Types;548
19.7.1;Formats;548
19.7.2;DATE Type;549
19.7.2.1;Adding or Subtracting Time from a DATE;551
19.7.2.2;Getting the Difference Between Two DATEs;554
19.7.3;TIMESTAMP Type;555
19.7.3.1;TIMEST555
19.7.3.2;Adding or Subtracting Time to/from a TIMEST557
19.7.3.3;Getting the Difference Between Two TIMESTAMPs;557
19.7.3.4;TIMESTAMP WITH TIME ZONE Type;559
19.7.3.5;TIMESTAMP WITH LOCAL TIME ZONE Type;560
19.7.4;INTERVAL Type;562
19.7.4.1;INTERVAL YEAR TO MONTH;563
19.7.4.2;INTERVAL DAY TO SECOND;564
19.8;LOB Types;565
19.8.1;Internal LOBs;566
19.8.1.1;Creating a SecureFiles LOB;566
19.8.1.2;Creating a BasicFiles LOB;568
19.8.1.3;LOB Components;569
19.8.1.4;LOB Tablespace;570
19.8.1.5;IN ROW Clause;571
19.8.1.6;CHUNK Clause;575
19.8.1.7;RETENTION Clause;576
19.8.1.7.1;Read Consistency for LOBs;576
19.8.1.7.2;BasicFiles RETENTION;578
19.8.1.7.3;SecureFiles RETENTION;578
19.8.1.8;CACHE Clause;579
19.8.1.9;LOB STORAGE Clause;579
19.8.2;BFILEs;580
19.9;ROWID/UROWID Types;582
19.10;Summary;582
20;Chapter 13: Partitioning;584
20.1;Partitioning Overview;585
20.1.1;Increased Availability;585
20.1.2;Reduced Administrative Burden;587
20.1.3;Enhanced Statement Performance;591
20.1.3.1;Parallel DML;591
20.1.3.2;Query Performance;592
20.1.3.2.1;OLTP Systems;592
20.1.3.2.2;Data Warehouse Systems;592
20.1.4;Reduced Contention in an OLTP System;593
20.2;Table Partitioning Schemes;593
20.2.1;Range Partitioning;594
20.2.2;Hash Partitioning;597
20.2.2.1;How Hash Partitioning Works;597
20.2.2.2;Hash Partition Using Powers of Two;599
20.2.3;List Partitioning;602
20.2.4;Interval Partitioning;604
20.2.5;Reference Partitioning;609
20.2.6;Interval Reference Partitioning;614
20.2.7;Virtual Column Partitioning;616
20.2.8;Composite Partitioning;617
20.2.9;Row Movement;620
20.2.10;Table Partitioning Schemes Wrap-up;622
20.3;Partitioning Indexes;623
20.3.1;Local Indexes vs. Global Indexes;624
20.3.2;Local Indexes;624
20.3.2.1;Partition Elimination Behavior;625
20.3.2.2;Local Indexes and Unique Constraints;628
20.3.3;Global Indexes;630
20.3.3.1;Data Warehousing and Global Indexes;632
20.3.3.2;Sliding Windows and Indexes;632
20.3.3.3;“Live” Global Index Maintenance;636
20.3.3.4;Asynchronous Global Index Maintenance;638
20.3.3.5;OLTP and Global Indexes;640
20.3.4;Partial Indexes;645
20.4;Partitioning and Performance, Revisited;647
20.5;Ease of Maintenance Features;653
20.5.1;Multiple Partition Maintenance Operations;653
20.5.2;Cascade Truncate;656
20.5.3;Cascade Exchange;657
20.6;Auditing and Segment Space Compression;659
20.7;Summary;660
21;Chapter 14: Parallel Execution;662
21.1;When to Use Parallel Execution;663
21.1.1;A Parallel Processing Analogy;664
21.1.1.1;One-Page Summary;664
21.1.1.2;Ten-Chapter Report;664
21.2;Oracle Exadata;665
21.3;Parallel Query;666
21.4;Parallel DML;671
21.5;Parallel DDL;675
21.5.1;Parallel DDL and Data Loading Using External Tables;676
21.5.2;Parallel DDL and Extent Trimming;678
21.5.2.1;Extent Trimming and Dictionary-Managed Tablespaces;679
21.5.2.2;Extent Trimming and Locally-Managed Tablespaces;679
21.5.2.3;Setting Up for Locally-Managed Tablespaces;679
21.5.2.4;Extent Trimming with UNIFORM vs. AUTOALLOCATE Locally-Managed Tablespaces;682
21.6;Procedural Parallelism;687
21.6.1;Parallel Pipelined Functions;687
21.6.2;Do-It-Yourself Parallelism;690
21.6.3;Old School Do-It-Yourself Parallelism;694
21.7;Summary;698
22;Chapter 15: Data Loading and Unloading;699
22.1;External Tables;699
22.1.1;Setting Up External Tables;700
22.1.1.1;Executing SQLLDR with the EXTERNAL_TABLE Parameter;701
22.1.1.2;Running SQLLDR in Express Mode;706
22.1.2;Dealing with Errors;709
22.1.3;Using an External Table to Load Different Files;713
22.1.4;Multiuser Issues;713
22.1.5;Preprocessing;714
22.1.5.1;Monitoring the File System Through SQL;714
22.1.5.2;Reading and Filtering Compressed Files in a Directory Tree;718
22.1.5.3;Trimming Characters Out of a File;722
22.1.5.4;Preprocessing Wrap-Up;724
22.1.6;External Tables Summary;724
22.2;Data Pump Unload;725
22.3;SQLLDR;727
22.3.1;Loading Data with SQLLDR FAQs;731
22.3.1.1;Why Do I Receive “exceeds maximum length” in My Log File?;731
22.3.1.2;How Do I Load Delimited Data?;732
22.3.1.3;How Do I Load Fixed Format Data?;734
22.3.1.4;How Do I Load Dates?;736
22.3.1.5;How Do I Load Data Using Functions?;737
22.3.1.6;How Do I Load Data with Embedded Newlines?;741
22.3.1.6.1;Use a Character Other Than a Newline;741
22.3.1.6.2;Use the FIX Attribute;742
22.3.1.6.3;Use the VAR Attribute;744
22.3.1.6.4;Use the STR Attribute;745
22.3.1.6.5;Embedded Newlines Wrap-up;746
22.3.1.7;How Do I Load LOBs?;746
22.3.1.7.1;Loading a LOB via PL/SQL;747
22.3.1.7.2;Loading LOB Data via SQLLDR;751
22.3.1.7.2.1;Loading LOB Data That Is Inline;751
22.3.1.7.2.2;Loading LOB Data That Is Out of Line;752
22.3.1.7.2.3;Loading LOB Data into Object Columns;754
22.3.1.8;How Do I Call SQLLDR from a Stored Procedure?;757
22.3.2;SQLLDR Caveats;757
22.3.2.1;TRUNCATE Appears to Work Differently;757
22.3.2.2;SQLLDR Defaults to CHAR(255);757
22.3.2.3;Command Line Overrides Control File;758
22.3.3;SQLLDR Summary;758
22.4;Flat File Unload;758
22.5;Summary;767
23;Index;768




