![](https://csdnimg.cn/release/download_crawler_static/8194817/bg1.jpg)
Kyte
Kuhn
Shelve in:
Databases/Oracle
User level:
Intermediate–Advanced
SOURCE CODE ONLINE
Now in its third edition, this best-selling book continues to bring you some of the
best thinking on how to apply Oracle Database to produce scalable applications
that perform well and deliver correct results. Tom Kyte and Darl Kuhn share a simple
philosophy: “you can treat Oracle as a black box and just stick data into it, or you
can understand how it works and exploit it as a powerful computing environment.”
If you choose the latter, then you’ll find that there are few information management
problems that you cannot solve quickly and elegantly.
This fully revised third edition covers the developments up to Oracle Database 12c.
Significant new content is included surrounding Oracle’s new cloud feature
set, and especially the use of pluggable databases. Each feature is taught in a
proof-by-example manner, not only discussing what it is, but also how it works,
how to implement software using it, and the common pitfalls associated with it.
Expert Oracle Database Architecture continues its long tradition of diving deeply
into Oracle Database’s most powerful features.
Don’t treat Oracle Database as a black-box. Get this book. Get under the
hood. Turbo-charge your career.
THIRD
EDITION
RELATED
9781430 262985
55999
ISBN 978-1-4302-6298-5
![](https://csdnimg.cn/release/download_crawler_static/8194817/bg2.jpg)
For your convenience Apress has placed some of the front
matter material after the index. Please use the Bookmarks
and Contents at a Glance links to access them.
![](https://csdnimg.cn/release/download_crawler_static/8194817/bg3.jpg)
iii
Contents at a Glance
About the Authors ������������������������������������������������������������������������������������������������������������� xvii
About the Technical Reviewers ����������������������������������������������������������������������������������������� xix
Acknowledgments ������������������������������������������������������������������������������������������������������������� xxi
Introduction ��������������������������������������������������������������������������������������������������������������������� xxiii
Setting Up Your Environment ������������������������������������������������������������������������������������������� xxxi
Chapter 1: Developing Successful Oracle Applications ■ �����������������������������������������������������1
Chapter 2: Architecture Overview ■ �����������������������������������������������������������������������������������53
Chapter 3: Files ■ ���������������������������������������������������������������������������������������������������������������73
Chapter 4: Memory Structures ■ ��������������������������������������������������������������������������������������127
Chapter 5: Oracle Processes ■ �����������������������������������������������������������������������������������������173
Chapter 6: Locking and Latching ■ �����������������������������������������������������������������������������������205
Chapter 7: Concurrency and Multiversioning ■ ����������������������������������������������������������������253
Chapter 8: Transactions ■ �������������������������������������������������������������������������������������������������275
Chapter 9: Redo and Undo ■ ���������������������������������������������������������������������������������������������307
Chapter 10: Database Tables ■ �����������������������������������������������������������������������������������������355
Chapter 11: Indexes ■ �������������������������������������������������������������������������������������������������������439
Chapter 12: Datatypes ■ ���������������������������������������������������������������������������������������������������511
Chapter 13: Partitioning ■ ������������������������������������������������������������������������������������������������581
Chapter 14: Parallel Execution ■ ��������������������������������������������������������������������������������������659
Chapter 15: Data Loading and Unloading ■ ���������������������������������������������������������������������697
Index ���������������������������������������������������������������������������������������������������������������������������������767
![](https://csdnimg.cn/release/download_crawler_static/8194817/bg4.jpg)
xxiii
Introduction
e inspiration for the material contained in this book comes from my experiences developing Oracle software, and
from working with fellow Oracle developers to help them build reliable and robust applications based on the Oracle
database. e book is basically a reection of what I do every day and of the issues I see people encountering each
and every day.
I covered what I felt was most relevant, namely the Oracle database and its architecture. I could have written
a similarly titled book explaining how to develop an application using a specic language and architecture—for
example, one using JavaServer Pages that speaks to Enterprise JavaBeans, which in turn uses JDBC to communicate
with Oracle. However, at the end of the day, you really do need to understand the topics covered in this book in
order to build such an application successfully. is book deals with what I believe needs to be universally known
to develop successfully with Oracle, whether you are a Visual Basic programmer using ODBC, a Java programmer
using EJBs and JDBC, or a Perl programmer using DBI Perl. is book does not promote any specic application
architecture; it does not compare three tier to client/server. Rather, it covers what the database can do and what you
must understand about the way it works. Since the database is at the heart of any application architecture, the book
should have a broad audience.
As the title suggests, Expert Oracle Database Architecture concentrates on the database architecture and how the
database itself works. I cover the Oracle database architecture in depth: the les, memory structures, and processes
that comprise an Oracle database and instance. I then move on to discuss important database topics such as locking,
concurrency controls, how transactions work, and redo and undo, and why it is important for you to know about
these things. Lastly, I examine the physical structures in the database such as tables, indexes, and datatypes, covering
techniques for making optimal use of them.
What This Book Is About
One of the problems with having plenty of development options is that it’s sometimes hard to gure out which one
might be the best choice for your particular needs. Everyone wants as much exibility as possible (as many choices
as they can possibly have), but they also want things to be very cut and dried—in other words, easy. Oracle presents
developers with almost unlimited choice. No one ever says, “You can’t do that in Oracle.” Rather, they say, “How many
dierent ways would you like to do that in Oracle?” I hope that this book will help you make the correct choice.
is book is aimed at those people who appreciate the choice but would also like some guidelines and practical
implementation details on Oracle features and functions. For example, Oracle has a really neat feature called parallel
execution. e Oracle documentation tells you how to use this feature and what it does. Oracle documentation does
not, however, tell you when you should use this feature and, perhaps even more important, when you should not use
this feature. It doesn’t always tell you the implementation details of this feature, and if you’re not aware of them, this
can come back to haunt you (I’m not referring to bugs, but the way the feature is supposed to work and what it was
really designed to do).
In this book I strove to not only describe how things work, but also explain when and why you would consider
using a particular feature or implementation. I feel it is important to understand not only the “how” behind things, but
also the “when” and “why” as well as the “when not” and “why not!”
![](https://csdnimg.cn/release/download_crawler_static/8194817/bg5.jpg)
■ intRoduCtion
xxiv
Who Should Read This Book
e target audience for this book is anyone who develops applications with Oracle as the database back end. It is a
book for professional Oracle developers who need to know how to get things done in the database. e practical nature
of the book means that many sections should also be very interesting to the DBA. Most of the examples in the book use
SQL*Plus to demonstrate the key features, so you won’t nd out how to develop a really cool GUI—but you will nd out
how the Oracle database works, what its key features can do, and when they should (and should not) be used.
is book is for anyone who wants to get more out of Oracle with less work. It is for anyone who wants to see new
ways to use existing features. It is for anyone who wants to see how these features can be applied in the real world (not
just examples of how to use the feature, but why the feature is relevant in the rst place). Another category of people
who would nd this book of interest is technical managers in charge of the developers who work on Oracle projects. In
some respects, it is just as important that they understand why knowing the database is crucial to success. is book
can provide ammunition for managers who would like to get their personnel trained in the correct technologies or
ensure that personnel already know what they need to know.
To get the most out of this book, the reader should have
• Knowledge of SQL. You don’t have to be the best SQL coder ever, but a good working
knowledge will help.
• An understanding of PL/SQL. is isn’t a prerequisite, but it will help you to absorb the
examples. is book will not, for example, teach you how to program a FOR loop or declare
a record type; the Oracle documentation and numerous books cover this well. However,
that’s not to say that you won’t learn a lot about PL/SQL by reading this book. You will. You’ll
become very intimate with many features of PL/SQL, you’ll see new ways to do things, and
you’ll become aware of packages/features that perhaps you didn’t know existed.
• Exposure to some third-generation language (3GL), such as C or Java. I believe that anyone
who can read and write code in a 3GL language will be able to successfully read and
understand the examples in this book.
• Familiarity with the Oracle Database Concepts manual.
A few words on that last point: due to the Oracle documentation set’s vast size, many people nd it to be
somewhat intimidating. If you’re just starting out or haven’t read any of it as yet, I can tell you that the Oracle Database
Concepts manual is exactly the right place to start. It’s about 450 pages long (I know that because I wrote some of the
pages and edited every one) and touches on many of the major Oracle concepts that you need to know about. It may
not give you each and every technical detail (that’s what the other 10,000 to 20,000 pages of documentation are for),
but it will educate you on all the important concepts. is manual touches the following topics (to name a few):
e structures in the database, and how data is organized and stored•
Distributed processing•
Oracle’s memory architecture•
Oracle’s process architecture•
Schema objects you will be using (tables, indexes, clusters, and so on)•
Built-in datatypes and user-dened datatypes•
SQL stored procedures•
How transactions work•
e optimizer•
Data integrity•
Concurrency control•
- 1
- 2
- 3
前往页