THE EXPERT’S VOICE ® IN ORACLEExpertOracleDatabase ArchitectureOracle Database 9i, 10g, and 11gProgramming Techniques and ...
Praise forExpert Oracle Database Architecture:9i and 10g Programming Techniques and Solutions   “This book will help you m...
Expert Oracle Database ArchitectureOracle Database 9i, 10g, and 11g Programming          Techniques and Solutions         ...
Expert Oracle Database Architecture: Oracle Database 9i, 10g, and 11g ProgrammingTechniques and Solutions, Second EditionC...
Contents at a Glance ■ Chapter 1: Developing Successful Oracle Applications .......................................1 ■ Cha...
■ CONTENTS     Contents       Contents at a Glance...........................................................................
■ CONTENTS■ Chapter 2: Architecture Overview......................................................................51   Def...
■ CONTENTS            Change Tracking File ..................................................................................
■ CONTENTS      Database Resident Connection Pooling (DRCP) .................................................................
■ CONTENTS      ■ Chapter 7: Concurrency and Multi-versioning .................................................243        ...
■ CONTENTS   Bad Transaction Habits..........................................................................................
■ CONTENTS        ■ Chapter 10: Database Tables .............................................................................
■ CONTENTS■ Chapter 11: Indexes .........................................................................................4...
■ CONTENTS        ■ Chapter 12: Datatypes....................................................................................
■ CONTENTS   Table Partitioning Schemes......................................................................................
■ CONTENTS              Old School Do-It-Yourself Parallelism ...............................................................
■ CONTENTS   Implementing Column Level Encryption ......................................................................72...
■ FOREWORD FROM THE FIRST EDITION        Foreword        I first met the Oracle RDBMS some time in 1988, or possibly 1987,...
■ FOREWORD FROM THE FIRST EDITIONForeword from the First Edition“THINK.” In 1914, Thomas J. Watson, Sr. joined the company...
■ FOREWORD FROM THE FIRST EDITION     between the application and the database is a good thing. But, if you think about it...
■ FOREWORD FROM THE FIRST EDITION  •    Break apart a problem into simpler questions, and assemble the answers to each ste...
■ FOREWORD FROM THE FIRST EDITION       About the Author                                    ■ I am Tom Kyte. I have been w...
■ FOREWORD FROM THE FIRST EDITIONAbout the Technical Reviewers        ■ Christopher Beck has a degree in computer science ...
■ INTRODUCTION       Acknowledgments       I would like to thank many people for helping me complete this book.           ...
■ INTRODUCTIONIntroductionThe inspiration for the material contained in this book comes from my experiences developing Ora...
■ INTRODUCTION           In this book I strove to not only describe how things work, but also explain when and why you    ...
■ INTRODUCTION  •    Built-in datatypes and user-defined datatypes  •    SQL stored procedures  •    How transactions work...
■ INTRODUCTION     your database can do, you run the risk of continually reinventing the wheel—developing functionality   ...
■ INTRODUCTIONChapter 7: Concurrency and Multi-versioningIn this chapter, we’ll explore my favorite Oracle feature, multi-...
■ INTRODUCTION      Chapter 12: Datatypes      There are a lot of datatypes to choose from. This chapter explores each of ...
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Expert.oracle.database.architecture.2nd.edition
Upcoming SlideShare
Loading in...5
×

Expert.oracle.database.architecture.2nd.edition

9,565

Published on

Published in: Technology, Business
1 Comment
0 Likes
Statistics
Notes
  • http://dbmanagement.info/Tutorials/PLSQL.htm
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
9,565
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
779
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Expert.oracle.database.architecture.2nd.edition

  1. 1. THE EXPERT’S VOICE ® IN ORACLEExpertOracleDatabase ArchitectureOracle Database 9i, 10g, and 11gProgramming Techniques and SolutionsSECOND EDITIONThomas KyteForewords by Jonathan Lewis and Ken Jacobs (aka “Dr. DBA”)
  2. 2. Praise forExpert Oracle Database Architecture:9i and 10g Programming Techniques and Solutions “This book will help you make the best use of Oracle technology. Emulating Tom’s rational methodology, and demand for proof by example, will make you a far better technology thinker. Without question, this is one of the most important Oracle books you can possess.” —Ken Jacobs, (aka “Dr. DBA”) Vice President of Product Strategy (Server Technologies), Oracle Corporation “It’s an excellent book, full of plenty of deep insights about Oracle technology.” —Sean Hull, Heavyweight Internet Group (http://iheavy.com)
  3. 3. Expert Oracle Database ArchitectureOracle Database 9i, 10g, and 11g Programming Techniques and Solutions Second Edition■■■Thomas Kyte
  4. 4. Expert Oracle Database Architecture: Oracle Database 9i, 10g, and 11g ProgrammingTechniques and Solutions, Second EditionCopyright © 2010 by Thomas KyteAll rights reserved. No part of this work may be reproduced or transmitted in any form or by any means,electronic or mechanical, including photocopying, recording, or by any information storage or retrievalsystem, without the prior written permission of the copyright owner and the publisher.ISBN-13 (pbk): 978-1-4302-2946-9ISBN-13 (electronic): 978-1-4302-2947-6Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbolwith every occurrence of a trademarked name, logo, or image we use the names, logos, and images onlyin an editorial fashion and to the benefit of the trademark owner, with no intention of infringement ofthe trademark.The use in this publication of trade names, trademarks, service marks, and similar terms, even if they arenot identified as such, are not to be taken as an expression of opinion as to whether or not they aresubject to proprietary rights. President and Publisher: Paul Manning Lead Editor: Jonathan Gennick Technical Reviewers: Christopher Beck, Melanie Caffrey, and Jason Straub Editorial Board: Clay Andres, Steve Anglin, Mark Beckner, Ewan Buckingham, Gary Cornell, Jonathan Gennick, Jonathan Hassell, Michelle Lowman, Matthew Moodie, Duncan Parkes, Jeffrey Pepper, Frank Pohlmann, Douglas Pundick, Ben Renow-Clarke, Dominic Shakeshaft, Matt Wade, Tom Welsh Coordinating Editor: Debra Kelly Copy Editors: Mary Behr and Sharon Terdeman Compositor: Mary Sudul Indexer: BIM Indexing and Proofreading Services Artist: April Milne Cover Designer: Anna IshchenkoDistributed to the book trade worldwide by Springer Science+Business Media, LLC., 233 SpringStreet, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mailorders-ny@springer-sbm.com, or visit www.springeronline.com.For information on translations, please e-mail rights@apress.com, or visit www.apress.com.Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use.eBook versions and licenses are also available for most titles. For more information, reference ourSpecial Bulk Sales–eBook Licensing web page at www.apress.com/info/bulksales.The information in this book is distributed on an “as is” basis, without warranty. Although everyprecaution has been taken in the preparation of this work, neither the author(s) nor Apress shall haveany liability to any person or entity with respect to any loss or damage caused or alleged to be causeddirectly or indirectly by the information contained in this work.The source code for this book is available to readers at www.apress.com.
  5. 5. Contents at a Glance ■ Chapter 1: Developing Successful Oracle Applications .......................................1 ■ Chapter 2: Architecture Overview......................................................................51 ■ Chapter 3: Files ..................................................................................................67 ■ Chapter 4: Memory Structures.........................................................................121 ■ Chapter 5: Oracle Processes............................................................................165 ■ Chapter 6: Locking and Latching .....................................................................195 ■ Chapter 7: Concurrency and Multi-versioning .................................................243 ■ Chapter 8: Transactions...................................................................................267 ■ Chapter 9: Redo and Undo................................................................................299 ■ Chapter 10: Database Tables ...........................................................................345 ■ Chapter 11: Indexes .........................................................................................425 ■ Chapter 12: Datatypes......................................................................................493 ■ Chapter 13: Partitioning...................................................................................557 ■ Chapter 14: Parallel Execution.........................................................................621 ■ Chapter 15: Data Loading and Unloading.........................................................657 ■ Chapter 16: Data Encryption ............................................................................709 Index.....................................................................................................................751 v
  6. 6. ■ CONTENTS Contents Contents at a Glance.................................................................................................v Foreword ............................................................................................................. xviii Foreword from the First Edition ............................................................................ xix About the Author .................................................................................................. xxii About the Technical Reviewers ........................................................................... xxiii Acknowledgments ............................................................................................... xxiv Introduction .......................................................................................................... xxv Setting Up Your Environment ............................................................................. xxxii ■ Chapter 1: Developing Successful Oracle Applications .......................................1 My Approach....................................................................................................................2 The Black Box Approach..................................................................................................3 How (and How Not) to Develop Database Applications .................................................11 Understanding Oracle Architecture ......................................................................................................12 Understanding Concurrency Control.....................................................................................................21 Multi-Versioning ...................................................................................................................................25 Database Independence? .....................................................................................................................32 How Do I Make It Run Faster? ..............................................................................................................46 The DBA-Developer Relationship..........................................................................................................48 Summary .......................................................................................................................49vi
  7. 7. ■ CONTENTS■ Chapter 2: Architecture Overview......................................................................51 Defining Database and Instance....................................................................................52 The SGA and Background Processes....................................................................................................58 Connecting to Oracle .....................................................................................................60 Dedicated Server ..................................................................................................................................60 Shared Server.......................................................................................................................................62 Mechanics of Connecting over TCP/IP..................................................................................................63 Summary .......................................................................................................................66■ Chapter 3: Files ..................................................................................................67 Parameter Files..............................................................................................................68 What Are Parameters?..........................................................................................................................69 Legacy init.ora Parameter Files............................................................................................................73 Server Parameter Files (SPFILEs) ..................................................................................74 Converting to SPFILEs ..........................................................................................................................75 Trace Files .....................................................................................................................82 Requested Trace Files ..........................................................................................................................83 Trace Files Generated in Response to Internal Errors ..........................................................................88 Trace File Wrap-up ...............................................................................................................................93 Alert File ........................................................................................................................93 Data Files.......................................................................................................................96 A Brief Review of File System Mechanisms .........................................................................................96 The Storage Hierarchy in an Oracle Database......................................................................................97 Dictionary-Managed and Locally-Managed Tablespaces...................................................................101 Temp Files ...................................................................................................................103 Control Files.................................................................................................................105 Redo Log Files .............................................................................................................105 Online Redo Log..................................................................................................................................106 Archived Redo Log..............................................................................................................................108 Password Files.............................................................................................................109 vii
  8. 8. ■ CONTENTS Change Tracking File ...................................................................................................113 Flashback Logs............................................................................................................114 Flashback Database ...........................................................................................................................114 Flash Recovery Area...........................................................................................................................115 DMP Files (EXP/IMP Files)............................................................................................116 Data Pump Files...........................................................................................................117 Flat Files ......................................................................................................................120 Summary .....................................................................................................................120 ■ Chapter 4: Memory Structures.........................................................................121 The Process Global Area and User Global Area ...........................................................122 Manual PGA Memory Management ....................................................................................................123 Automatic PGA Memory Management................................................................................................129 Choosing Between Manual and Auto Memory Management..............................................................140 PGA and UGA Wrap-up........................................................................................................................142 The System Global Area...............................................................................................142 Fixed SGA ...........................................................................................................................................148 Redo Buffer.........................................................................................................................................148 Block Buffer Cache .............................................................................................................................149 Shared Pool ........................................................................................................................................156 Large Pool...........................................................................................................................................159 Java Pool ............................................................................................................................................160 Streams Pool ......................................................................................................................................160 Automatic SGA Memory Management................................................................................................161 Automatic Memory Management .......................................................................................................162 Summary .....................................................................................................................164 ■ Chapter 5: Oracle Processes............................................................................165 Server Processes.........................................................................................................166 Dedicated Server Connections ...........................................................................................................166 Shared Server Connections ................................................................................................................169viii
  9. 9. ■ CONTENTS Database Resident Connection Pooling (DRCP) ..................................................................................170 Connections vs. Sessions ...................................................................................................................170 Dedicated Server vs. Shared Server vs. DRCP ...................................................................................176 Dedicated/Shared Server Wrap-up.....................................................................................................179 Background Processes ................................................................................................180 Focused Background Processes.........................................................................................................181 Utility Background Processes.............................................................................................................190 Slave Processes...........................................................................................................193 I/O Slaves............................................................................................................................................193 Pnnn: Parallel Query Execution Servers .............................................................................................193 Summary .....................................................................................................................194■ Chapter 6: Locking and Latching .....................................................................195 What Are Locks?..........................................................................................................195 Locking Issues .............................................................................................................198 Lost Updates.......................................................................................................................................198 Pessimistic Locking............................................................................................................................199 Optimistic Locking ..............................................................................................................................201 Optimistic or Pessimistic Locking?.....................................................................................................207 Blocking..............................................................................................................................................208 Deadlocks ...........................................................................................................................................211 Lock Escalation...................................................................................................................................215 Lock Types...................................................................................................................216 DML Locks ..........................................................................................................................................216 DDL Locks...........................................................................................................................................225 Latches ...............................................................................................................................................230 Mutexes ..............................................................................................................................................240 Manual Locking and User-Defined Locks ...........................................................................................240 Summary .....................................................................................................................241 ix
  10. 10. ■ CONTENTS ■ Chapter 7: Concurrency and Multi-versioning .................................................243 What Are Concurrency Controls?.................................................................................243 Transaction Isolation Levels ........................................................................................244 READ UNCOMMITTED..........................................................................................................................246 READ COMMITTED ..............................................................................................................................248 REPEATABLE READ .............................................................................................................................249 SERIALIZABLE .....................................................................................................................................252 READ ONLY .........................................................................................................................................254 Implications of Multi-version Read Consistency..........................................................255 A Common Data Warehousing Technique That Fails..........................................................................255 An Explanation for Higher Than Expected I/O on Hot Tables ..............................................................256 Write Consistency ........................................................................................................259 Consistent Reads and Current Reads .................................................................................................259 Seeing a Restart .................................................................................................................................262 Why Is a Restart Important to Us? ......................................................................................................264 Summary .....................................................................................................................265 ■ Chapter 8: Transactions...................................................................................267 Transaction Control Statements ..................................................................................267 Atomicity......................................................................................................................269 Statement-Level Atomicity .................................................................................................................269 Procedure-Level Atomicity .................................................................................................................271 Transaction-Level Atomicity ...............................................................................................................275 DDL and Atomicity ..............................................................................................................................275 Durability .....................................................................................................................275 WRITE Extensions to COMMIT.............................................................................................................276 COMMITS in a Non-Distributed PL/SQL Block ....................................................................................277 Integrity Constraints and Transactions........................................................................279 IMMEDIATE Constraints ......................................................................................................................279 DEFERRABLE Constraints and Cascading Updates.............................................................................280x
  11. 11. ■ CONTENTS Bad Transaction Habits................................................................................................284 Committing in a Loop .........................................................................................................................284 Using Autocommit ..............................................................................................................................290 Distributed Transactions..............................................................................................291 Autonomous Transactions ...........................................................................................293 How Autonomous Transactions Work.................................................................................................293 When to Use Autonomous Transactions .............................................................................................295 Summary .....................................................................................................................298■ Chapter 9: Redo and Undo................................................................................299 What Is Redo?..............................................................................................................300 What Is Undo?..............................................................................................................300 How Redo and Undo Work Together............................................................................304 Example INSERT-UPDATE-DELETE Scenario ......................................................................................304 Commit and Rollback Processing ................................................................................308 What Does a COMMIT Do? ..................................................................................................................308 What Does a ROLLBACK Do? ..............................................................................................................315 Investigating Redo .......................................................................................................316 Measuring Redo..................................................................................................................................316 Can I Turn Off Redo Log Generation? .................................................................................................318 Why Can’t I Allocate a New Log?........................................................................................................321 Block Cleanout....................................................................................................................................323 Log Contention....................................................................................................................................326 Temporary Tables and Redo/Undo .....................................................................................................328 Investigating Undo .......................................................................................................332 What Generates the Most and Least Undo? .......................................................................................332 ORA-01555: snapshot too old Error ....................................................................................................334 Summary .....................................................................................................................344 xi
  12. 12. ■ CONTENTS ■ Chapter 10: Database Tables ...........................................................................345 Types of Tables............................................................................................................345 Terminology .................................................................................................................347 Segment .............................................................................................................................................347 Segment Space Management ............................................................................................................350 High-water Mark ................................................................................................................................350 FREELISTS ..........................................................................................................................................352 PCTFREE and PCTUSED ......................................................................................................................356 LOGGING and NOLOGGING ..................................................................................................................359 INITRANS and MAXTRANS ..................................................................................................................359 Heap Organized Tables................................................................................................359 Index Organized Tables ...............................................................................................363 Index Organized Tables Wrap-up .......................................................................................................378 Index Clustered Tables ................................................................................................378 Index Clustered Tables Wrap-up ........................................................................................................386 Hash Clustered Tables .................................................................................................386 Hash Clustered Tables Wrap-up .........................................................................................................394 Sorted Hash Clustered Tables .....................................................................................395 Nested Tables ..............................................................................................................397 Nested Tables Syntax .........................................................................................................................398 Nested Table Storage .........................................................................................................................405 Nested Tables Wrap-up ......................................................................................................................408 Temporary Tables ........................................................................................................409 Temporary Tables Wrap-up ................................................................................................................415 Object Tables ...............................................................................................................416 Object Tables Wrap-up .......................................................................................................................423 Summary .....................................................................................................................423xii
  13. 13. ■ CONTENTS■ Chapter 11: Indexes .........................................................................................425 An Overview of Oracle Indexes ....................................................................................425 B*Tree Indexes ............................................................................................................427 Index Key Compression ......................................................................................................................430 Reverse Key Indexes ..........................................................................................................................433 Descending Indexes ...........................................................................................................................439 When Should You Use a B*Tree Index? ..............................................................................................441 B*Trees Wrap-up ................................................................................................................................452 Bitmap Indexes ............................................................................................................452 When Should You Use a Bitmap Index?..............................................................................................453 Bitmap Join Indexes ...........................................................................................................................457 Bitmap Indexes Wrap-up ....................................................................................................................459 Function-Based Indexes ..............................................................................................460 Important Implementation Details ......................................................................................................460 A Simple Function-Based Index Example...........................................................................................461 Indexing Only Some of the Rows........................................................................................................470 Implementing Selective Uniqueness ..................................................................................................472 Caveat Regarding ORA-01743 ............................................................................................................472 Function-Based Indexes Wrap-up ......................................................................................................473 Application Domain Indexes ........................................................................................474 Frequently Asked Questions and Myths About Indexes...............................................475 Do Indexes Work on Views? ...............................................................................................................475 Do Nulls and Indexes Work Together?................................................................................................475 Should Foreign Keys Be Indexed? ......................................................................................................477 Why Isn’t My Index Getting Used? ......................................................................................................479 Myth: Space Is Never Reused in an Index ..........................................................................................485 Myth: Most Discriminating Elements Should Be First ........................................................................488 Summary .....................................................................................................................491 xiii
  14. 14. ■ CONTENTS ■ Chapter 12: Datatypes......................................................................................493 An Overview of Oracle Datatypes ................................................................................493 Character and Binary String Types ..............................................................................496 NLS Overview .....................................................................................................................................496 Character Strings................................................................................................................................499 Binary Strings: RAW Types ..........................................................................................506 Number Types..............................................................................................................508 NUMBER Type Syntax and Usage .......................................................................................................510 BINARY_FLOAT/BINARY_DOUBLE Type Syntax and Usage.................................................................513 Non-native Number Types..................................................................................................................514 Performance Considerations ..............................................................................................................514 Long Types ..................................................................................................................516 Restrictions on LONG and LONG RAW Types ......................................................................................516 Coping with Legacy LONG Types ........................................................................................................518 Dates, Timestamps, and Interval Types.......................................................................523 Formats ..............................................................................................................................................523 DATE Type ..........................................................................................................................................525 TIMESTAMP Type................................................................................................................................531 INTERVAL Type ...................................................................................................................................538 LOB Types....................................................................................................................541 Internal LOBs ......................................................................................................................................541 BFILEs.................................................................................................................................................552 ROWID/UROWID Types .................................................................................................554 Summary .....................................................................................................................555 ■ Chapter 13: Partitioning...................................................................................557 Partitioning Overview ..................................................................................................557 Increased Availability .........................................................................................................................558 Reduced Administrative Burden .........................................................................................................560 Enhanced Statement Performance.....................................................................................................564xiv
  15. 15. ■ CONTENTS Table Partitioning Schemes.........................................................................................566 Range Partitioning ..............................................................................................................................567 Hash Partitioning ................................................................................................................................569 List Partitioning ..................................................................................................................................574 Interval Partitioning ............................................................................................................................575 Reference Partitioning........................................................................................................................581 Composite Partitioning .......................................................................................................................586 Row Movement...................................................................................................................................588 Table Partitioning Schemes Wrap-up .................................................................................................590 Partitioning Indexes .....................................................................................................591 Local Indexes vs. Global Indexes........................................................................................................592 Local Indexes......................................................................................................................................593 Global Indexes ....................................................................................................................................599 Partitioning and Performance, Revisited .....................................................................612 Auditing and Segment Space Compression.................................................................618 Summary .....................................................................................................................619■ Chapter 14: Parallel Execution.........................................................................621 When to Use Parallel Execution ...................................................................................622 A Parallel Processing Analogy ............................................................................................................623 Oracle Exadata.............................................................................................................624 Parallel Query ..............................................................................................................624 Parallel DML.................................................................................................................630 Parallel DDL .................................................................................................................633 Parallel DDL and Data Loading Using External Tables........................................................................634 Parallel DDL and Extent Trimming......................................................................................................636 Parallel Recovery .........................................................................................................645 Procedural Parallelism.................................................................................................645 Parallel Pipelined Functions ...............................................................................................................646 Do-It-Yourself Parallelism ..................................................................................................................649 xv
  16. 16. ■ CONTENTS Old School Do-It-Yourself Parallelism ................................................................................................652 Summary .....................................................................................................................656 ■ Chapter 15: Data Loading and Unloading.........................................................657 SQL*Loader..................................................................................................................657 Loading Data with SQLLDR FAQs........................................................................................................661 SQLLDR Caveats .................................................................................................................................686 SQLLDR Summary ..............................................................................................................................686 External Tables ............................................................................................................686 Setting Up External Tables .................................................................................................................687 Dealing with Errors.............................................................................................................................693 Using an External Table to Load Different Files..................................................................................696 Multiuser Issues .................................................................................................................................696 External Tables Summary...................................................................................................................697 Flat File Unload ............................................................................................................698 Data Pump Unload .......................................................................................................706 Summary .....................................................................................................................708 ■ Chapter 16: Data Encryption ............................................................................709 Types of Encryption .....................................................................................................709 Data in Motion ....................................................................................................................................709 Data at Rest ........................................................................................................................................710 Manual Application Encryption ...........................................................................................................713 The Oracle Wallet ...............................................................................................................................714 Transparent Column Level Encryption................................................................................................717 Transparent Tablespace Encryption ...................................................................................................719 What Encryption Is Not About ......................................................................................722 Implementing Manual Application Encryption .............................................................723 Reasons to Avoid the Manual Approach .............................................................................................723 Performance Implications of the Manual Approach ...........................................................................724 When to Use the Manual Approach ....................................................................................................729xvi
  17. 17. ■ CONTENTS Implementing Column Level Encryption ......................................................................729 How to Use Column Encryption ..........................................................................................................729 Data Storage with Column Encryption................................................................................................730 Measuring the Performance Impact of Column Encryption ................................................................734 Influences on the Magnitude ..............................................................................................................734 Limitations of Column Encryption.......................................................................................................740 Implementing Tablespace Encryption..........................................................................741 How to Use Tablespace Encryption ....................................................................................................741 Data Storage with Tablespace Encryption..........................................................................................741 Measuring the Performance Impact of Tablespace Encryption..........................................................743 Deciding on an Encryption Technique .........................................................................748 Summary .....................................................................................................................749Index.....................................................................................................................751 xvii
  18. 18. ■ FOREWORD FROM THE FIRST EDITION Foreword I first met the Oracle RDBMS some time in 1988, or possibly 1987, when my manager dumped a small box on my desk and said something like: “There’s this new product called Oracle just coming into the country. Play around with it for a few weeks and then tell us what it’s good for.” The version was something like 5.0.22, and in those days it was a lot easier getting started with Oracle. The entire printed manual set—including Forms 2.0, SQL*Report, and everything else—would fit into a small briefcase and the documentation for the create table statement ran to about three pages. If you check the PDF file for the 11.2 SQL reference manual, you’ll find that create table currently starts at page 16-6 and runs on to page 16-79 for a total of 74 pages. The last time I checked the total page count was for 9i, and that was more than 20,000 pages—and I doubt if the number has dropped in 10g and 11g. With three (fairly slim) manuals for 5.0.22, it didn’t take me very long to learn about everything that Oracle was supposed to do and how to do it efficiently. There weren’t many options, so there weren’t many ways to do things wrong. But how do you get started today when the core of Oracle is hidden under a huge mass of options and features? Worse, the details you really need to understand are covered by a mountain of information that is nice to have, but not critical to getting started. The answer is simple. Step 1: Read the concepts manual so you have an idea of what it’s all about. Step 2: Read Tom Kyte’s book so that you can follow a rational progression of learning and experimenting that leads you from your first “select ‘hello world’ from dual” to the day when you can confidently say things like “we should use a range partitioned IOT with these columns in the overflow for this table because … .” Tom combines three things in this book: a conversational style that makes it easier to read about technical details and understand the “why” behind the “how”; a structured “storyline” so that you see the text building towards a target rather than scattering a disjointed collection of random tips; and an array of carefully constructed demonstrations that teach you how things work and how you should work and think. Consider just one example, indexing. There are many types of indexes, so we need a brief introduction to separate the different types. It’s good to have an idea of how B-tree indexes (for example) actually work so that we can understand their strengths and weaknesses. Then we can move on to the idea of function-based indexes—indexes on “data that don’t really exist.” This gets us to the point of understanding what Oracle can do, but we can (and do) go further with what we can do with Oracle. So we see how we can put the pieces together to create an index that guarantees uniqueness across subsets of the data, we see how we can—on a huge data set—create a tiny, low-maintenance index that identifies exactly the data that we really want to access and minimizes the risk of the optimizer producing a silly execution plan. In principle, it’s all in the manuals, but only if we have the insight to take the naked descriptions of the available commands and see how we can use them to construct solutions to real problems. Tom Kyte supplies that insight, and then encourages you to go further in developing your own insights. Frankly, if every DBA and developer in the world were made to work carefully through Tom Kyte’s book, I’d probably have to start offering consultancy services to SQL Server users because the number of clients needing Oracle consultancy would drop dramatically. Jonathan Lewisxviii
  19. 19. ■ FOREWORD FROM THE FIRST EDITIONForeword from the First Edition“THINK.” In 1914, Thomas J. Watson, Sr. joined the company that was to become IBM, and he broughtwith him this simple one-word motto. It was an exhortation to all IBM employees, no matter their role,to take care in decision-making and do their jobs with intelligence. “THINK” soon became an icon,appearing on publications, calendars, and plaques in the offices of many IT and business managerswithin and outside IBM, and even in The New Yorker magazine cartoons. “THINK” was a good idea in1914, and it is a good idea now. “Think different.” More recently, Apple Computer used this slogan in a long-running advertisingcampaign to revitalize the company’s brand, and even more important, to revolutionize how peoplethink of technology in their daily lives. Instead of saying “think differently,” suggesting how to think,Apple’s slogan used the word “different” as the object of the verb “think,” suggesting what to think (as in,“think big”). The advertising campaign emphasized creativity and creative people, with the implicationthat Apple’s computers uniquely enable innovative solutions and artistic achievements. When I joined Oracle Corporation (then Relational Software Incorporated) back in 1981, databasesystems incorporating the relational model were a new, emerging technology. Developers,programmers, and a growing group of database administrators were learning the discipline of databasedesign using the methodology of normalization. The then unfamiliar, nonprocedural SQL languageimpressed people with its power to manipulate data in ways that previously took painstaking proceduralprogramming. There was a lot to think about back then—and there still is. These new technologieschallenged people not only to learn new ideas and approaches, but also to think in new ways. Those whodid, and those who do, were and are the most successful in creating innovative, effective solutions tobusiness problems using database technology to its best advantage. Consider the SQL database language that was first introduced commercially by Oracle. SQL permitsapplication designers to manipulate sets of rows with a nonprocedural (or “declarative”) language,rather than writing iterative loops in conventional languages that process records one at a time. When Iwas first introduced to SQL, I found it required me to “think at 45 degrees” to figure out how to use setprocessing operations like joins and subqueries to achieve the result I wanted. Not only was the idea ofset processing new to most people, but so also was the idea of a nonprocedural language, where youspecified the result you wanted, not how to derive it. This new technology really did require me to “thinkdifferently” and also gave me an opportunity to “think different.” Set processing is far more efficient than one-at-a-time processing, so applications that fully exploitSQL in this way perform much better than those that do not. Yet, it is surprising how often applicationsdeliver suboptimal performance. In fact, in most cases, it is application design—rather than Oracleparameter settings or other configuration choices—that most directly determines overall performance.Thus, application developers must learn not only details about database features and programminginterfaces, but also new ways to think about and use these features and interfaces in their applications. Much conventional wisdom exists in the Oracle community about how to tune the system for bestperformance or the best way to use various Oracle features. Such wisdom sometimes becomes folkloreor even mythology, with developers and database administrators adopting these ideas uncritically orextending these ideas without reasoning about them. One example is the idea that “if one is good, more—lots more—is better.” This idea is popular, butonly rarely true. Take Oracle’s array interface, for example, which allows the developer to insert orretrieve multiple rows in a single system call. Clearly, reducing the number of network messages xix
  20. 20. ■ FOREWORD FROM THE FIRST EDITION between the application and the database is a good thing. But, if you think about it, there is a point of diminishing returns. While fetching 100 rows at once is far better than one at a time, fetching 1,000 rows at once is generally not really any more efficient overall, especially when you consider memory requirements. Another example of uncritical thinking is to focus on the wrong aspects of system design or configuration, rather than those most likely to improve performance (or, for that matter, reliability, availability, or security). Consider the conventional wisdom of tuning the system to maximize the buffer hit ratio. For some applications, it’s true that maximizing the chance that required data is in memory will maximize performance. However, for most applications it’s better to focus attention on performance bottlenecks (what we call “wait states”) than it is to focus on specific system-level metrics. Eliminate those aspects of the application design that are causing delays, and you’ll get the best performance. I’ve found that breaking down a problem into smaller parts and solving each part separately is a great way to think about application design. In this way, you can often find elegant and creative uses of SQL to address application requirements. Often, it is possible to do things in a single SQL statement that at first seem to require complex procedural programming. When you can leverage the power of SQL to process sets of rows at a time, perhaps in parallel, not only are you more productive as an application developer, but the application runs faster as well! Sometimes, best practices that were based, even in part, on some degree of truth become no longer applicable as the facts change. Consider the old adage, “Put indexes and data in separate tablespaces for best performance.” I’ve often seen database administrators express strong opinions over the merits of this idea, without taking into account changes in disk speeds and capacities over time, or the specifics of given workloads. In evaluating this particular “rule,” you should think about the fact that the Oracle database caches frequently and recently used database blocks (often blocks belonging to an index) in memory, and the fact that it uses index and data blocks sequentially, not simultaneously, for any given request. The implication is that I/O operations for both index and data really should be spread across all simultaneous users, and across as many disk drives as you have. You might choose to separate index and data blocks for administrative reasons or for personal preference, but not for performance. (Tom Kyte provides valuable insights on this topic on the Ask Tom web site, http://asktom.oracle.com, where you can search for articles on “index data tablespace.”) The lesson here is to base your decisions on facts, and a complete set of current facts at that. No matter how fast our computers are or how sophisticated the database becomes, and regardless of the power of our programming tools, there simply is no substitute for human intelligence coupled with a “thinking discipline.” So, while it’s important to learn the intricacies of the technologies we use in our applications, it’s even more important to know how to think about using them appropriately. Tom Kyte is one of the most intelligent people I know, and one of the most knowledgeable about the Oracle database, SQL, performance tuning, and application design. I’m pretty sure Tom is an aficionado of the “THINK” and “Think different” slogans. Tom also quite obviously believes in that anonymous saying, “Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime.” Tom enjoys sharing his knowledge about Oracle, to the great benefit of our community, but rather than simply dispensing answers to questions, he helps others learn to think and reason. On his web site (http://asktom.oracle.com), in his public speaking engagements, and in this book, Tom implicitly challenges people to “think differently” too, as they design database applications with the Oracle database. He rejects conventional wisdom and speculation, instead insisting on relying on facts proven through examples. Tom takes a very pragmatic and simple approach to problem solving, and by following his advice and methodology, you can be more productive and develop better, faster applications. Not only will Tom’s book teach you about features of Oracle and how to use them, but it also reflects many of these simple thoughts: • Don’t believe in myths. Reason for yourself. • Don’t follow conventional wisdom. Often the things everybody knows are simply wrong! • Don’t trust rumors or opinions. Test things for yourself and base decisions on proven examples.xx
  21. 21. ■ FOREWORD FROM THE FIRST EDITION • Break apart a problem into simpler questions, and assemble the answers to each step into an elegant, efficient solution. • Don’t do things in your programs when the database can do them better and faster. • Understand the differences between the ideal and the real. • Ask questions about and be skeptical of unjustified company policies for technical standards. • Consider the big picture of what’s best overall for the requirements at hand. • Take the time to THINK. Tom encourages you to treat Oracle as much more than a black box. Instead of you just putting datainto and taking data out of Oracle, Tom will help you understand how Oracle works and how to exploitits power. By learning how to apply Oracle technology creatively and thoughtfully, you will be able tosolve most application design problems quickly and elegantly. As you read and enjoy this book, I know you’ll learn a lot of new facts about Oracle databasetechnology and important concepts about application design. As you do, I’m confident that you’ll alsostart to “think differently” about the challenges you face. IBM’s Watson once said, “Thought has been the father of every advance since time began. ‘I didn’tthink’ has cost the world millions of dollars.” This is a thought with which both Tom and I agree. Armedwith the knowledge and techniques you’ll learn in this book, I hope you’ll be able to save the world (or atleast your enterprise) millions of dollars, and enjoy the satisfaction of a job well done. Ken Jacobs aka “Dr. DBA” xxi
  22. 22. ■ FOREWORD FROM THE FIRST EDITION About the Author ■ I am Tom Kyte. I have been working for Oracle since version 7.0.9 (that’s 1993 for people who don’t mark time by Oracle versions). However, I’ve been working with Oracle since about version 5.1.5c (the $99 single-user version for DOS on 360KB floppy disks). Before coming to work at Oracle, I worked for more than six years as a systems integrator, building large-scale, heterogeneous databases and applications, mostly for military and government customers. These days, I spend a great deal of my time working with the Oracle database and, more specifically, helping people who are using the Oracle database. I work directly with customers, either in specifying and building their systems or, more frequently, in helping them rebuild or tune them (“tuning” frequently being a synonym for rebuilding). In addition, I am the Tom behind the “Ask Tom” column in Oracle Magazine, where I answer people’s questions about the Oracle database and tools. On a typical day, I receive and answer dozens of questions at http: