Contents

Foreword

About the Author

About the Technical Reviewers

Acknowledgments

Introduction

Setting Up Your Environment


CHAPTER 1 Developing Successful Oracle Applications

My Approach

The Black Box Approach

How (and How Not) to Develop Database Applications

Understanding Oracle Architecture

Understanding Concurrency Control

Multi-Versioning

Database Independence?

"How Do I Make It Run Faster?"

The DBA-Developer Relationship

Summary

CHAPTER 2 Architecture Overview

Defining Database and Instance

The SGA and Background Processes

Connecting to Oracle

Dedicated Server

Shared Server

Mechanics of Connecting over TCP/IP

Summary

CHAPTER 3 Files

Parameter Files

What Are Parameters?

Legacy init.ora Parameter Files

Server Parameter Files (SPFILEs)

Parameter File Wrap-Up

Trace Files

Requested Trace Files

Trace Files Generated in Response to Internal Errors

Trace File Wrap-Up

Alert File

Data Files

A Brief Review of File System Mechanisms

The Storage Hierarchy in an Oracle Database

Dictionary-Managed and Locally-Managed Tablespaces

Temp Files

Control Files

Redo Log Files

Online Redo Log

Archived Redo Log

Password Files

Change Tracking File

Flashback Log Files

Flashback Database

Flash Recovery Area

DMP Files (EXP/IMP Files)

Data Pump Files

Flat Files

Summary

CHAPTER 4 Memory Structures

The Process Global Area and User Global Area

Manual PGA Memory Management

Automatic PGA Memory Management

Choosing Between Manual and Auto Memory Management

PGA and UGA Wrap-Up

The System Global Area

Fixed SGA

Redo Buffer

Block Buffer Cache

Shared Pool

Large Pool

Java Pool

Streams Pool

Automatic SGA Memory Management

Summary

CHAPTER 5 Oracle Processes

Server Processes

Dedicated Server Connections

Shared Server Connections

Connections vs. Sessions

Dedicated Server vs. Shared Server

Dedicated/Shared Server Wrap-Up

Background Processes

Focused Background Processes

Utility Background Processes

Slave Processes

I/O Slaves

Parallel Query Slaves

Summary

CHAPTER 6 Locking and Latching

What Are Locks?

Locking Issues

Lost Updates

Pessimistic Locking

Optimistic Locking

Optimistic or Pessimistic Locking?

Blocking

Deadlocks

Lock Escalation

Lock Types

DML Locks

DDL Locks

Latches

Manual Locking and User-Defined Locks

Summary

CHAPTER 7 Concurrency and Multi-Versioning

What Are Concurrency Controls?

Transaction Isolation Levels

READ UNCOMMITTED

READ COMMITTED

REPEATABLE READ

SERIALIZABLE

READ ONLY

Implications of Multi-Version Read Consistency

A Common Data Warehousing Technique That Fails

An Explanation for Higher Than Expected I/O on Hot Tables

Write Consistency

Consistent Reads and Current Reads

Seeing a Restart

Why Is a Restart Important to Us?

Summary

CHAPTER 8 Transactions

Transaction Control Statements

Atomicity

Statement-Level Atomicity

Procedure-Level Atomicity

Transaction-Level Atomicity

Integrity Constraints and Transactions

IMMEDIATE Constraints

DEFERRABLE Constraints and Cascading Updates

Bad Transaction Habits

Committing in a Loop

Using Autocommit

Distributed Transactions

Autonomous Transactions

How Autonomous Transactions Work

When to Use Autonomous Transactions

Summary

CHAPTER 9 Redo and Undo

What Is Redo?

What Is Undo?

How Redo and Undo Work Together

Example INSERT-UPDATE-DELETE Scenario

Commit and Rollback Processing

What Does a COMMIT Do?

What Does a ROLLBACK Do?

Investigating Redo

Measuring Redo

Redo Generation and BEFORE/AFTER Triggers

Can I Turn Off Redo Log Generation?

Why Can't I Allocate a New Log?

Block Cleanout

Log Contention

Temporary Tables and Redo/Undo

Investigating Undo

What Generates the Most and Least Undo?

ORA-01555: snapshot too old Error

Summary

CHAPTER 10 Database Tables

Types of Tables

Terminology

Segment

Segment Space Management

High-Water Mark

FREELISTS

PCTFREE and PCTUSED

LOGGING and NOLOGGING

INITRANS and MAXTRANS

Heap Organized Tables

Index Organized Tables

Index Organized Tables Wrap-Up

Index Clustered Tables

Index Clustered Tables Wrap-Up

Hash Clustered Tables

Hash Clustered Tables Wrap-Up

Sorted Hash Clustered Tables

Nested Tables

Nested Tables Syntax

Nested Table Storage

Nested Tables Wrap-Up

Temporary Tables

Temporary Tables Wrap-Up

Object Tables

Object Tables Wrap-Up

Summary

CHAPTER 11 Indexes

An Overview of Oracle Indexes

B*Tree Indexes

Index Key Compression

Reverse Key Indexes

Descending Indexes

When Should You Use a B*Tree Index?

B*Trees Wrap-Up

Bitmap Indexes

When Should You Use a Bitmap Index?

Bitmap Join Indexes

Bitmap Indexes Wrap-Up

Function-Based Indexes

Important Implementation Details

A Simple Function-Based Index Example

Indexing Only Some of the Rows

Implementing Selective Uniqueness

Caveat on CASE

Caveat Regarding ORA-01743

Function-Based Indexes Wrap-Up

Application Domain Indexes

Frequently Asked Questions and Myths About Indexes

Do Indexes Work on Views?

Do Nulls and Indexes Work Together?

Should Foreign Keys Be Indexed?

Why Isn't My Index Getting Used?

Myth: Space Is Never Reused in an Index

Myth: Most Discriminating Elements Should Be First

Summary

CHAPTER 12 Datatypes

An Overview of Oracle Datatypes

Character and Binary String Types

NLS Overview

Character Strings

Binary Strings: RAW Types

Number Types

NUMBER Type Syntax and Usage

BINARY_FLOAT/BINARY_DOUBLE Type Syntax and Usage

Non-Native Number Types

Performance Considerations

LONG Types

Restrictions on LONG and LONG RAW Types

Coping with Legacy LONG Types

DATE, TIMESTAMP, and INTERVAL Types

Formats

DATE Type

TIMESTAMP Type

INTERVAL Type

LOB Types

Internal LOBs

BFILEs

ROWID/UROWID Types

Summary

CHAPTER 13 Partitioning

Partitioning Overview

Increased Availability

Reduced Administrative Burden

Enhanced Statement Performance

Table Partitioning Schemes

Range Partitioning

Hash Partitioning

List Partitioning

Composite Partitioning

Row Movement

Table Partitioning Schemes Wrap-Up

Partitioning Indexes

Local Indexes vs. Global Indexes

Local Indexes

Global Indexes

Partitioning and Performance, Revisited

Auditing and Segment Space Compression

Summary

CHAPTER 14 Parallel Execution

When to Use Parallel Execution

A Parallel Processing Analogy

Parallel Query

Parallel DML

Parallel DDL

Parallel DDL and Data Loading Using External Tables

Parallel DDL and Extent Trimming

Parallel Recovery

Procedural Parallelism

Parallel Pipelined Functions

Do-It-Yourself Parallelism

Summary

CHAPTER 15 Data Loading and Unloading

SQL*Loader

Loading Data with SQLLDR FAQs

SQLLDR Caveats

SQLLDR Summary

External Tables

Setting Up External Tables

Dealing with Errors

Using an External Table to Load Different Files

Multiuser Issues

External Tables Summary

Flat File Unload

Data Pump Unload

Summary

INDEX

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.191.88.249