On February 8, 9 and 10, Tom Kyte will present a seminar – just around the corner, in Utrecht. See Seminar Details for details. The event is organized by fellow Oak Table member Lex de Haan (you may know him from the HR schema in the Oracle database –
select * from hr.employees where emp_id = 102
-. It is a rare opportunity to see Tom Kyte in action on this side of the Atlantic or at least in The Netherlands.
From his column in Oracle Magazine, is own website asktom and especially his two books – Expert One-on-One Oracle and Effective Oracle by Design, both of which we use extensively for our Oracle 7Up (…to10g) workshops – I can only highly recommend this seminar for any (senior) Oracle Developer. AMIS will most certainly attend with a bunch of people!
He will speak about:
# The tools Tom uses
This first session gives an overview of (and practical use examples of) the common tools every Oracle developer and database administrator should master. Using AUTOTRACE and DBMS_XPLAN, TKPROF, and StatsPack. Tom will show how these tools relate to functionality in Oracle 10g Enterprise Manager DBconsole. Additionally, more in depth tools are covered, such as DBMS_PROFILER, a self developed tool for benchmarking ideas “runstats”, and using JDeveloper as a PL/SQL developer.
# Efficient schema design
Based entirely on chapter 7 of Tom’s book “Effective Oracle by Design”, this session takes you through the fundamentals of physical schema design. It demonstrates the various structures (hash clusters, B*-tree clusters, index-organized tables, …) and tells when and where you want to use them. The session closes with indexing and compression techniques.
# Advanced analytic functions
Analytic functions are the coolest thing to happen to the SQL language since the introduction of the keyword SELECT. This session explores the use cases for analytic functions, demonstrates how and where you should use them, and explains the (nontrivial) syntax behind them.
# To Hint or not to Hint, that’s the question
There are good hints — hints that give the optimizer information — and there are “bad” hints, hints that take over the job of the optimizer. We’ll explore the differences between the two, learn what good hints are and when (not) to apply them. We’ll also look at optimizer dynamic sampling, system level statistics, and other optimizer related settings in the Oracle database.
# Read and write consistency
Oracle’s multiversioning model is by far it’s most striking core RDBMS feature. We’ll explore this often misunderstood database feature, both from a “read” perspective as well as some nuances you probably are not aware of in a multi-user environment. This session is probably an eye-opening experience, even for people that have been using Oracle for many many years.
# Versioning of data
A common requirement today is to maintain a complete history of data: every change made to a row over time, for all rows in a table or set of tables. This session explores the methods available to do this, from “do it yourself” versioning (via triggers/application code) to letting the database do it for you with workspace management. Key focuses of this session are time to develop, performance, and implementation.
# The Top 5 things done wrong over and over again
This session covers the top 5 things Tom Kyte has seen done wrong over and over again, based on questions to the http://asktom.oracle.com site as well as interaction with customers in the field.
# Building test cases
When you say “it doesn’t work”, or “it isn’t working right”, you will need to build a small, concise, yet 100% complete test case that demonstrates the issue at hand (and removes all of the irrelevant bits). This session walks through how Tom Kyte builds his own test cases — and how he many times finds his own mistakes in the development of them (such as: it wasn’t a database bug in the first place!) – or, even if it turns out to be a problem in the database, how the development of the test case often leads to finding a workable “workaround”.
# PL/SQL or Java?
Is one language “better” than the other? Or maybe there is room for both? This session explores when you might want to use one over the other.
# Oracle 10g: So, is tuning dead?
With Oracle 10g you no longer have to tune, right? The database just does it for you. This session will explore what is left for the database administrator or developer to do in Oracle 10g.
# All about Flashing back
This session covers all of the flashback areas: flashback query, flashback table, flashback row history, flashback drop, and flashback database. Tom explains how each feature is physically implemented; for example, what settings like undo_retention and guaranteed undo retention mean and what they do. This session is very in depth (on the “how”) so database administrators can be prepared to allow these features to be used in their database environments.
# Oracle 10g: Regular expression support
The where, when, how, and why for regular expressions — an extremely powerful new Oracle 10g feature in the SQL language.
# Oracle 10g: Bits and bytes
This session covers some Oracle 10g features that are really “cool” but not played up in the Oracle marketing messages. Mundane features that make our day to day lives that much nicer. Features such as case insensitive queries, native floating point numbers, data pumping, unloading data, a better merge, partitioned outer joins, and many more features.