In May I’ll be speaking at two events and present a two-day class.

When Where What
2009-05-05 09:00-11:20 OakTable Day, Ljubljana (SI) Execution Plans
2009-05-11 12:05-13:05 Orcan Conference, Baltic Sea (SE/FI) Interpreting Execution Plans
2009-05-12 17.30-17.45 Orcan Conference, Baltic Sea (SE/FI) SQL Plan Baselines
2009-05-25/26 09:00-17:00 Trivadis, Glattbrugg (CH) Oracle Data Storage Internals

The abstracts of the presentations and the class are the following:

  • Execution Plans: An execution plan describes the operations carried out by the SQL engine to execute a SQL statement. Every time you have to analyze a performance problem related to a SQL statement, or simply question the decisions taken by the query optimizer, you must know the execution plan. Whenever you deal with an execution plan, you carry out three basic actions: you obtain it, you interpret it, and you judge its efficiency. The aim of this session is to describe in detail how you should perform these three actions.
  • Interpreting Execution Plans: An execution plan describes the operations carried out by the SQL engine to execute a SQL statement. Every time you have to analyze a performance problem related to a SQL statement, or simply question the decisions taken by the query optimizer, you must know the execution plan. Whenever you deal with an execution plan, you carry out three basic actions: you obtain it, you interpret it, and you judge its efficiency. The aim of this session is to describe in detail how you should perform the second of these three actions. In other words, how to read execution plans.
  • SQL Plan Baselines: A SQL plan baseline is an object associated with a SQL statement that is designed to influence the query optimizer while it generates execution plans. As of Oracle Database 11g, SQL plan baselines substitute stored outlines. Actually, they can be considered an enhanced version of stored outlines. The aim of this session is to explain what SQL plan baselines are, how to create and manage them, and when to use them.
  • Oracle Data Storage Internals: During this class, you will learn how Oracle stores data and indexes in blocks and segments, manages free space at the segment and the block level, and implements transactions. With this information you will be able, during the physical design, to minimize the access costs, to imcrease the throughput, and to avoid/minimize the fragmentation. The internal structure of the most important block types will be described in detail. The detailed content of this calss is the following:
    • Description of key identifiers (RDBA, ROWID, SCN, XID and UBA)
    • How to inspect blocks (formatted block dumps, BBED and raw blocks dumps)
    • Common block structures
    • Segment space management (extent map, high water mark, freelist, freelist groups, automatic segment space management, waits)
    • Transaction layer (block cleanout, interested transaction list, waits and deadlocks)
    • Undo block management (transaction table, undo chain)
    • Data storage (table and row directory, row migration/chaining, row format, compression, reorganizations)
    • Index Storage (B*Tree and bitmap concepts, structure, management, compression, reorganizations)
    • Corruptions (block checksum, block checking, find and resolve corruptions)

I will present the class Oracle Data Storage Internals in German. Later this year further dates will be planned in both German and English. If you are interested, do not hesitate to send me a message through the contact form.