Muutke küpsiste eelistusi

Oracle Database 12c Release 2 Performance Tuning Tips & Techniques [Pehme köide]

  • Formaat: Paperback / softback, 1136 pages, kõrgus x laius x paksus: 229x185x53 mm, kaal: 1912 g, 280 Illustrations
  • Ilmumisaeg: 16-Apr-2017
  • Kirjastus: McGraw-Hill Education
  • ISBN-10: 1259589684
  • ISBN-13: 9781259589683
Teised raamatud teemal:
  • Formaat: Paperback / softback, 1136 pages, kõrgus x laius x paksus: 229x185x53 mm, kaal: 1912 g, 280 Illustrations
  • Ilmumisaeg: 16-Apr-2017
  • Kirjastus: McGraw-Hill Education
  • ISBN-10: 1259589684
  • ISBN-13: 9781259589683
Teised raamatud teemal:
Publisher's Note: Products purchased from Third Party sellers are not guaranteed by the publisher for quality,  authenticity, or access to any online entitlements included with the product.

Proven Database Optimization SolutionsFully Updated for Oracle Database 12c Release 2

Systematically identify and eliminate database performance problems with help from Oracle Certified Master Richard Niemiec. Filled with real-world case studies and best practices, Oracle Database 12c Release 2 Performance Tuning Tips and Techniques details the latest monitoring, troubleshooting, and optimization methods. Find out how to identify and fix bottlenecks on premises and in the cloud, configure storage devices, execute effective queries, and develop bug-free SQL and PL/SQL code. Testing, reporting, and security enhancements are also covered in this Oracle Press guide.

 Properly index and partition Oracle Database 12c Release 2  Work effectively with Oracle Cloud, Oracle Exadata, and Oracle Enterprise Manager  Efficiently manage disk drives, ASM, RAID arrays, and memory  Tune queries with Oracle SQL hints and the Trace utility  Troubleshoot databases using V$ views and X$ tables  Create your first cloud database service and prepare for hybrid cloud  Generate reports using Oracles Statspack and Automatic Workload Repository tools  Use sar, vmstat, and iostat to monitor operating system statistics
Acknowledgments xxix
Introduction xxxvii
1 Introduction to Oracle Database 12c R1 & R2 New Features (DBA and Developer) 1(42)
Oracle Database 12cR1 (12.1.0.1)
5(20)
Increased Size Limit to 32K for VARCHAR2 and NVARCHAR2
5(1)
Partial Indexes
5(1)
Invisible Columns
6(1)
Multiple Indexes on the Same Column List
7(1)
Fetch First x Rows
8(1)
Pluggable Databases (PDBs)
9(2)
Oracle Database Cloud Service (Database as a Service)
11(6)
PDB Level: MEMORY_LIMIT and MEMORY_MINIMUM (12cR2)
17(1)
Change Compression at Import Time
18(1)
Adaptive Query Optimization
18(1)
PGA_AGGREGATE_LIMIT
19(1)
Concurrent Execution for UNION/UNION ALL
20(1)
Invoker Rights Function Can Be Results Cached
20(1)
New DBMS_UTILITY.EXPAND_SQL_TEXT
20(1)
Default for Columns Based on Sequence
20(1)
Multiple SSD Devices for Smart Flash Cache
20(1)
Concurrent Cost-Based Optimizer Statistics Gathering
21(1)
Enhanced System Statistics
21(1)
Resource Manager for Runaway Queries
22(1)
Automatic Data Optimization (ADO)
22(1)
Global Index Maintenance: Drop and Truncate Partition Operations
23(1)
ASM Disk Scrubbing
23(1)
Online Capability Improvements
23(1)
Data Guard Improvements
24(1)
RMAN Improvements
24(1)
Oracle Database 12cR1 (12.1.0.2)
25(4)
In-Memory Database
25(3)
Advanced Index Compression
28(1)
Automatic Big Table Caching
28(1)
FDA Support for Container Databases
28(1)
Full Database Caching
28(1)
JSON Support
28(1)
FIPS 140 Parameter for Encryption
28(1)
PDB Subset Cloning
29(1)
Rapid Home Provisioning-Creating "Gold Images"
29(1)
Oracle Database 12cR2 (12.2)
29(5)
Application Development
29(1)
Enhanced Features to Reduce Costs and Issues for Migration to Oracle
30(1)
Availability
30(3)
Big Data
33(1)
Compression and Archiving
33(1)
Oracle RAC and Grid Infrastructure
34(1)
Security
34(1)
New Background Processes in 12c
34(1)
Exadata-New with Exadata X6!
35(1)
Version Comparison Chart
36(5)
New Features Review
41(1)
References
42(1)
2 Basic Index Principles (Beginner Developer and Beginner DBA) 43(40)
Basic Index Concepts
45(2)
Invisible Indexes
47(3)
Multiple Types of Indexes on the Same Column(s)
50(3)
Concatenated Indexes
53(1)
Suppressing Indexes
54(5)
Using the NOT EQUAL Operators: <>, 1-
55(1)
Using IS NULL or IS NOT NULL
55(2)
Using LIKE
57(1)
Using Functions
58(1)
Comparing Mismatched Data Types
58(1)
Selectivity
59(1)
The Clustering Factor
59(1)
The Binary Height
60(4)
Additional Details Concerning BLEVEL and Index Height
62(2)
Using Histograms
64(1)
Fast Full Scans
65(1)
Skip-Scans
66(1)
Types of Indexes
67(12)
B-Tree Indexes
68(1)
Bitmap Indexes
69(2)
Hash Indexes
71(1)
Index-Organized Tables
72(1)
Reverse Key Indexes
73(1)
Function-Based Indexes
73(1)
Partitioned Indexes
74(4)
New 12cR2 Features for Partitioned Indexes
78(1)
Bitmap Join Indexes
78(1)
Fast Index Rebuilding
79(1)
Rebuilding Indexes Online
79(1)
Tips Review
80(2)
References
82(1)
3 Pluggable Databases, Disk Implementation Methodology, and ASM (DBA) 83(80)
Pluggable Databases (New in Oracle 12c)
85(9)
CDB or PDB Created Objects
86(1)
Creating a PDB: Many Ways to Do It
87(1)
Great Pluggable Database Commands
88(4)
ALTER SYSTEM While in a PDB and Other Nice Commands
92(1)
Using In-Memory (IM) with Pluggable Databases
93(1)
Other 12cR2 Features with Pluggable Databases
93(1)
Subset Standby (New in Oracle 12cR2)
94(1)
Disk Arrays
94(4)
Use Disk Arrays to Improve Performance and Availability
94(1)
How Many Disks Do You Need?
95(1)
What Are Some of the RAID Levels Available?
95(1)
The Newer RAID 5
96(1)
Solid-State Disks
97(1)
ASM Storage Management (Striping/Mirroring)
97(1)
Setup and Maintenance of the Traditional Filesystem
98(3)
What Is the Cost?
98(1)
Storing Data and Index Files in Separate Locations
99(1)
Avoiding I/O Disk Contention
99(2)
The 12c Heat Map and Automatic Data Optimization (ADO)
101(1)
12c I/O Performance Tracking Views (Outliers)
102(1)
Oracle B igfi le Tablespaces
103(1)
ASM Introduction
104(33)
Communication Across IT Roles
105(1)
ASM Instances
106(1)
ASM Initialization Parameters
107(1)
ASM Installation in 12c
107(8)
Srvctl Enhancements
115(4)
ASM Disk Scrubbing
119(2)
ASM Rebalance Enhancements
121(2)
ASM Fast Mirror Resync
123(1)
ASM Filter Driver
124(8)
ASM and Privileges
132(4)
ASM and Multipathing
136(1)
Bigfile and ASM
137(1)
Avoiding Disk Contention by Using Partitions
137(13)
Getting More Information About Partitions
139(1)
Other Types of Partitioning
140(3)
Partitioned Indexes (Local)
143(1)
Partial Indexes
143(3)
Global Index Maintenance: Drop and Truncate Partition Operations
146(1)
Other Partitioning Options
146(3)
Index Partitioning
149(1)
Exporting Partitions
150(1)
Eliminating Fragmentation (Only If Needed-Careful!)
150(3)
Using the Correct Extent Size
151(1)
Avoiding Chaining by Setting PCTFREE Correctly
151(1)
Using Automatic Segment Space Management (ASSM)
152(1)
Increasing the Log File Size and LOG_CHECKPOINT_INTERVAL for Speed
153(1)
Determining If Redo Log File Size Is a Problem
154(3)
Determining the Size of Your Log Files and Checkpoint Interval
155(1)
Other Helpful Redo Log Commands
155(2)
Storing Multiple Control Files on Different Disks and Controllers
157(1)
Other Disk I/O Precautions and Tips
157(1)
Issues to Consider in the Planning Stages
158(1)
Tips Review
159(2)
References
161(2)
4 Tuning the Database with Initialization Parameters (DBA) 163(58)
When Upgrading to Oracle Database 12c
165(1)
Using SEC_CASE_SENSITIVE_LOGON
166(1)
Crucial Memory Initialization Parameters for Performance
166(4)
PDB Level: MEMORY LIMIT and MEMORY_MINIMUM
170(1)
In-Memory Database (INMEMORY_SIZE)
170(6)
Changing the Initialization Parameters Without a Restart
176(4)
Modifying an Initialization Parameter at the PDB Level
180(1)
Insight into the Initialization Parameters from Oracle Utilities
181(1)
Viewing the Initialization Parameters with Enterprise Manager
181(1)
Increasing Performance by Tuning the DB_CACHE_SIZE
182(3)
Using V$DB_CACHE_ADVICE in Tuning DB_CACHE_SIZE
185(4)
Monitoring the V$SQLAREA View to Find Bad Queries
186(3)
Setting DB_BLOCK_SIZE to Reflect the Size of Your Data Reads
189(1)
Setting SGA_MAX_SIZE to 25 to 50 Percent of the Size Allocated to Main Memory
190(1)
Tuning the SHARED_POOL_SIZE for Optimal Performance
191(6)
Using Stored Procedures for Optimal Use of the Shared SQL Area
191(2)
Setting the SHARED_POOL_SIZE High Enough to Fully Use the DB_CACHE_SIZE
193(1)
Keeping the Data Dictionary Cache Objects Cached
193(2)
Keeping the Library Cache Reload Ratio at 0 and the Hit Ratio Above 95 Percent
195(2)
Using Available Memory to Determine If the SHARED_POOL_SIZE s Set Correctly
197(6)
Using the X$KSMSP Table to Get a Detailed Look at the Shared Pool
198(1)
Points to Remember About Cache Size
199(1)
Waits Related to Initialization Parameters
200(1)
Using Oracle Multiple Buffer Pools
201(1)
Pools Related to DB_CACHE_SIZE and Allocating Memory for Data
201(1)
Modifying the LRU Algorithm
202(1)
Pools Related to SHARED_POOL_SIZE and
Allocating Memory for Statements
202(1)
Tuning PGA_AGGREGATE_TARGET and PGA_AGGREGATE_LIMIT
203(1)
Modifying the Size of Your SGA to Avoid Paging and Swapping
204(1)
Understanding the Oracle Optimizer
204(1)
How Optimization Looks at the Data
204(1)
Creating Enough Dispatchers
205(2)
Have Enough Open Cursors (OPEN_CURSORS)
206(1)
Don't Let Your DDL Statements Fail (DDL_LOCK_TIMEOUT)
206(1)
Two Important Exadata Initialization Parameters (Exadata Only)
207(1)
Top 25 Initialization Parameters
207(4)
Initialization Parameters over the Years
210(1)
Finding Undocumented Initialization Parameters
210(1)
Understanding the Typical Server
211(7)
Modeling a Typical Server
212(1)
Sizing the Oracle Applications Database
213(5)
Tips Review
218(2)
References
220(1)
5 Tuning with Enterprise Manager Cloud Control (DBA and Developer) 221(34)
Oracle Enterprise Manager Basics and Accessing OEM via Oracle Cloud
223(4)
Starting with All Targets and Other Groupings
227(2)
Monitoring and Tuning Using the OEM Performance Menu
229(12)
Performance Tab: Top Activity
229(1)
Performance Tab: SQL|SQL Performance Analyzer
230(3)
Performance Tab: Real-Time ADDM
233(4)
Performance Tab: SQL|Access Advisor
237(1)
Performance Tab: Manage Optimizer Statistics
237(1)
Performance Tab: AWR AWR Administration
238(3)
Performance Tab: ASH Analytics
241(1)
Monitoring and Tuning Using the OEM Administration Menu
241(6)
Database Administration Tab: StoragelTablespaces
242(2)
Database Administration Tab: In-Memory Central and Initialization Parameters
244(1)
Database Administration Tab: All Initialization Parameters
244(2)
Database Administration Tab: Resource Manager (Consumer Groups)
246(1)
Monitoring and Tuning Using the OEM Database or Cluster Database Menu
247(1)
Database Tab: Job Activity
247(1)
Cluster Database Tab: Configuration|Database Topology
248(1)
Monitoring the Hosts
248(2)
Monitoring the Application Servers and Web Applications
250(2)
Real Application Testing (Database Replay)
252(1)
Summary
253(1)
Tips Review
253(1)
References
254(1)
6 Using EXPLAIN, TRACE, and SQL Plan Management (Developer and DBA) 255(50)
The Oracle SQL TRACE Utility
256(10)
Simple Steps for SQL TRACE with a Simple Query
257(5)
The Sections of a TRACE Output
262(1)
Digging into the TKPROF Output
263(3)
Using DBMS_MONITOR
266(5)
Setting Trace Based on Session ID and Serial Number
267(1)
Setting Trace Based on Client Identifier
267(1)
Setting Trace for the Service Name/Module Name/Action Name
268(1)
Enabled Tracing Views
269(1)
TRCSESS Multiple Trace Files into One File
269(2)
Using EXPLAIN PLAN Alone
271(13)
An Additional EXPLAIN Example for a Simple Query
273(1)
EXPLAIN PLAN-Read It Top to Bottom or Bottom to Top?
274(5)
Tracing/Explaining Problem Queries in Developer Products
279(1)
Important Columns in the PLAN_TABLE Table
280(2)
Using DBMS_XPLAN
282(1)
Initialization Parameters for Undocumented TRACE
283(1)
Using Stored Outlines
284(1)
Dropping Stored Outlines
285(1)
Using SQL Plan Management (SPM) and SPM Example
285(16)
SPM Terms
286(1)
Using SPM
287(4)
Using Fixed SQL Plan Baselines
291(1)
Dropping a Plan
292(1)
Converting from Stored Outlines to SQL Plan Management
292(2)
Adaptive Plans (12c New Feature) and SPM
294(7)
Tips Review
301(2)
References
303(2)
7 Basic Hint Syntax (Developer and DBA) 305(44)
Top Hints Used
307(2)
Use Hints Sparingly
308(1)
Fix the Design First
308(1)
Available Hints and Groupings
309(3)
Execution Path
309(1)
Access Methods
310(1)
Query Transformation Hints
310(1)
Join Operations
311(1)
Parallel Execution
311(1)
Other Hints
311(1)
Specifying a Hint
312(1)
Specifying Multiple Hints
313(1)
When Using an Alias, Hint the Alias, Not the Table
314(1)
The Hints
314(25)
The Oracle Demo Sample HR Schema
314(1)
The FIRST_ROWS Hint
315(1)
The ALL_ROWS Hint
316(1)
The FULL Hint
316(1)
The INDEX Hint
317(2)
The NO_INDEX Hint
319(1)
The INDEX_JOIN Hint
320(1)
The INDEX_COMBINE Hint
320(1)
The INDEX_ASC Hint
321(1)
The INDEX_DESC Hint
322(1)
The INDEX_FFS Hint
322(1)
The ORDERED Hint
323(1)
The LEADING Hint
324(1)
The NO EXPAND Hint
325(1)
The DRIVING SITE Hint
325(1)
The USE_MERGE Hint
326(1)
The USE_NL Hint
327(1)
The USE HASH Hint
328(1)
The QB_NAME Hint
329(1)
The PUSH_SUBQ Hint
330(1)
The PARALLEL Hint
331(1)
The NO_PARALLEL Hint
332(1)
The PARALLEL _INDEX Hint
333(1)
The APPEND Hint
333(1)
The NOAPPEND Hint
334(1)
The CACHE Hint
334(1)
The NOCACHE Hint
335(1)
The RESULT_CACHE Hint
335(1)
The CURSOR_SHARING_EXACT Hint
336(1)
The INMEMORY and NO_INMEMORY and Other IM Hints
337(1)
The USE_INVISIBLE_INDEXES Hint
338(1)
The CONTAINERS Hint
339(1)
The WITH_PLSQL Hint
339(1)
Some Miscellaneous Hints and Notes
339(4)
Undocumented Hints
341(1)
Using Hints with Views
342(1)
Notes on Hints and Stored Outlines (or SQL Plan Baselines)
343(1)
Why Isn't My Hint Working?
343(1)
Hints at a Glance
343(2)
Tips Review
345(2)
References
347(2)
8 Query Tuning (Developer and Beginner DBA) 349(66)
Which Queries Do I Tune? Querying V$SQLAREA and V$SQL Views
351(3)
Selecting from the V$SQLAREA View to Find the Worst Queries
351(2)
Selecting from the V$SQL View to Find the Worst Queries
353(1)
Oracle 12c Views for Locating Resource-Intensive Sessions and Queries
354(2)
Selecting from V$SESSMETRIC to Find Current Resource-Intensive Sessions
354(1)
Viewing Available AWR Snapshots
355(1)
Selecting from the DBA_HIST_SQLSTAT View to Find the Worst Queries
355(1)
When Should I Use an Index?
356(3)
Selecting Query Text from the DBA_HIST_SQLTEXT View
357(1)
Selecting Query EXPLAIN PLAN from the DBA_HIST_SQL_PLAN View
358(1)
What If I Forget the Index?
359(3)
Creating an Index
360(1)
Invisible Index
360(1)
Checking the Index on a Table
360(1)
Is the Column Properly Indexed?
361(1)
What If I Create a Bad Index?
362(2)
Exercising Caution When Dropping an Index
364(1)
Indexing the Columns Used in the SELECT and WHERE
365(2)
Using the Fast Full Scan
367(1)
Making the Query "Magically" Faster
368(1)
Caching a Table in Memory
369(2)
Using the Result Cache
371(1)
Choosing Among Multiple Indexes (Use the Most Selective)
372(1)
The Index Merge
373(2)
Indexes That Can Get Suppressed
375(2)
Function-Based Indexes
377(1)
Virtual Columns
378(1)
The "Curious" OR
379(1)
Using the EXISTS Function and the Nested Subquery
380(1)
That Table Is Actually a View!
381(1)
SQL and Grand Unified Theory
381(1)
Tuning Changes in Oracle Database 12c
382(15)
Oracle 12c Adaptive Query Optimization
383(6)
Adaptive Statistics
389(5)
Oracle 12c Changes in Statistics Gathering and Two New Histograms
394(1)
Oracle 12c Changes in SQL Plan Management
395(2)
Oracle Automatic SQL Tuning
397(5)
Ensuring the Tuning User Has Access to the APIs
398(1)
Creating the Tuning Task
398(1)
Making Sure the Task Can Be Seen in the Advisor Log
399(1)
Executing the SQL Tuning Task
399(1)
Checking Status of the Tuning Task
399(1)
Displaying the SQL Tuning Advisor Report
399(1)
Reviewing the Report Output
400(2)
Tuning SQL Statements Automatically Using SQL Tuning Advisor
402(5)
Enabling Automatic SQL Tuning Advisor
402(1)
Configuring Automatic SQL Tuning Advisor
402(1)
Viewing Automatic SQL Tuning Results
403(4)
Using SQL Performance Analyzer (SPA)
407(5)
Tips Review
412(2)
References
414(1)
9 Table joins and Other Advanced Tuning (Advanced DBA and Developer) 415(88)
Database Replay (capture/replay)
417(6)
Set Up Source Database for Database Replay Capture
418(1)
Prepare to Capture Workload
418(1)
Capture the Workload
418(1)
Prepare the Workload for Replay
419(1)
Process the Workload for Replay
420(1)
Prepare to Replay the Workload
420(1)
Execute the Workload Replay
421(2)
SQL Performance Analyzer
423(4)
Create a SQL Tuning Set
423(1)
Create an Analysis Task
424(1)
Execute Analysis Task
424(1)
Query SQL Performance Analyzer Advisor Tasks
425(1)
Cancel an Executing SQL Performance Analyzer Analysis Task
425(1)
Remove SQL Performance Analyzer Analysis Task
426(1)
Determine Active SQL Tuning Sets
426(1)
Remove SQL Tuning Set
426(1)
Drop SQL Tuning Set
427(1)
Join Methods
427(7)
NESTED LOOPS Joins
428(1)
SORT-MERGE Joins
428(1)
CLUSTER Joins
429(1)
HASH Joins
430(2)
INDEX-MERGE Joins
432(2)
Table Join Initialization Parameters
434(1)
SORT-MERGE and HASH Join Parameters
434(1)
A Two-Table Join: Equal-Sized Tables (Cost-Based)
435(4)
A Two-Table INDEXED Join: Equal-Sized Tables (Cost-Based)
439(4)
Forcing a Specific Join Method
443(2)
Eliminating Join Records (Candidate Rows) in Multitable Joins
445(2)
A Two-Table Join Between a Large and Small Table
447(3)
Three-Table Joins: Not as Much Fun
450(2)
Bitmap Join Indexes
452(6)
Bitmap Indexes
452(2)
Bitmap Join Index
454(1)
Best Uses for the Bitmap Join Index
455(3)
Third-Party Product Tuning
458(4)
Example 1
458(1)
Example 2
459(1)
Example 3
460(2)
Tuning Distributed Queries
462(2)
When You Have Everything Tuned
464(1)
Miscellaneous Tuning Snippets
464(9)
External Tables
465(4)
Snapshot Too Old: Developer Coding Issue
469(1)
Set Event to Dump Every Wait
469(2)
14 Hours to 30 Seconds with the EXISTS Operator
471(2)
Tuning at the Block Level (Advanced)
473(12)
Key Sections of a Block Dump
476(7)
A Brief Look at an Index Block Dump
483(2)
Tuning Using Simple Mathematical Techniques
485(14)
Traditional Mathematical Analysis
486(1)
Seven-Step Methodology
486(1)
Deriving Performance Equations
487(6)
Pattern Interpretation
493(5)
Mathematical Techniques Conclusions
498(1)
Tips Review
499(1)
References
500(3)
10 Using PL/SQL to Enhance Performance (Developer and DBA) 503(90)
Leverage the PL/SQL Function Result Cache to Improve Performance (Improved in 12c)
505(10)
Define PL/SQL Subprograms in a SQL Statement (New in 12c)
515(2)
Reference Sequences Directly in PL/SQL Expressions
517(2)
Identity Columns (New in 12c)
519(2)
Max Size Increase to 32K for VARCHAR2, NVARCHAR2, and RAW Data Types (New in 12c)
521(1)
Allow Binding PUSQL-Only Data Types to SQL Statements (New in 12c)
522(1)
Use Named Parameters in SQL Function Calls
523(2)
Simplify Loops with the CONTINUE Statement
525(3)
Leverage Compile-Time Warnings to Catch Programming Mistakes (Improved in 12c)
528(2)
Increase Performance with Native Compilation
530(3)
Maximize Performance with the Optimizing Compiler
533(6)
Use DBMS_APPLICATION_INFO for Real-Time Monitoring
539(2)
Log Timing Information in a Database Table
541(3)
Reduce PUSQL Program Unit Iterations and Iteration Time
544(2)
Use ROWID for Iterative Processing
546(2)
Standardize on Data Types, IF Statement Order, and PLS_INTEGER
548(4)
Ensure the Same Data Types in Comparison Operations
548(2)
Order IF Conditions Based on the Frequency of the Condition
550(1)
Use the PLS_INTEGER PUSQL Data Type for Integer Operations
551(1)
Reduce the Calls to SYSDATE
552(1)
Reduce the Use of the MOD Function
553(2)
Improve Shared Pool Use by Pinning PUSQL Objects
555(2)
Pinning (Caching) PUSQL Object Statements into Memory
555(1)
Pinning All Packages
556(1)
Identify PUSQL Objects That Need to Be Pinned
557(1)
Use and Modify DBMS_SHARED_POOL.SIZES
557(1)
Find Large Objects
558(1)
Get Detailed Object Information from DBA_OBJECT_SIZE
558(1)
Get Contiguous Space Currently in the Shared Pool
559(1)
Find Invalid Objects
559(2)
Find Disabled Triggers
561(1)
Use PUSQL Associative Arrays for Fast Reference Table Lookups
562(3)
Find and Tune the SQL When Objects Are Used
565(3)
Consider Time Component When Working with DATE Data Types
568(2)
Use PUSQL to Tune PUSQL
570(1)
Understand the Implications of PUSQL Object Location
571(1)
Use Rollback Segments to Open Large Cursors
572(2)
Active Transaction Management: Process Large Quantities of Data
573(1)
Use Temporary Database Tables for Increased Performance
574(1)
Limit the Use of Dynamic SQL
574(1)
Use Pipelined Table Functions to Build Complex Result Sets
575(5)
Leave Those Debugging Commands Alone!
580(6)
The "Look and Feel": Just for the Beginners
586(3)
PUSQL Example
587(1)
Create a Procedure Example
587(1)
Execute the Procedure from PUSQL Example
588(1)
Create a Function Example
588(1)
Execute the GET_CUST_NAME Function from SQL Example
588(1)
Create a Package Example
588(1)
Database Trigger Example Using PUSQL
589(1)
Tips Review
589(3)
References
592(1)
11 Oracle Cloud, Exadata, Tuning RAC, and Using Parallel Features 593(78)
The March to the Cloud (Past and Present)
596(3)
The Oracle Cloud
599(10)
Exadata Database Machine
609(15)
Exadata Terminology and the Basics
609(1)
Exadata Statistics
610(2)
Exadata Storage Expansion Rack Briefly
612(2)
Smart Scans
614(1)
Flash Cache
614(3)
Storage Indexes
617(1)
Hybrid Columnar Compression
618(3)
I/O Resource Management
621(1)
Use All Oracle Security Advantages with Exadata
622(1)
Best Practices
622(1)
Summary: Exadata = Paradigm Shift!
623(1)
Oracle Database Appliance (ODA)
624(1)
SuperCluster Using the M7 SPARC Chip
624(1)
Other Oracle Hardware to Consider
625(1)
Oracle Big Data Appliance X6-2
625(1)
ZFS Storage Servers
625(1)
StorageTek Modular Library System
625(1)
Parallel Databases
626(1)
Real Application Clusters (RAC)
626(6)
Oracle RAC Architecture
627(2)
Internal Workings of the Oracle RAC System
629(3)
RAC Performance Tuning Overview
632(13)
RAC Cluster Interconnect Performance
633(1)
Finding RAC Wait Events-Sessions Waiting
633(2)
RAC Wait Events and Interconnect Statistics
635(6)
Cluster Interconnect Tuning-Hardware Tier
641(4)
Basic Concepts of Parallel Operations
645(21)
Basic Concepts of Parallel Operations
645(2)
Parallel DML and DDL Statements and Operations
647(1)
Managing Parallel Server Resources and Parallel Statement Queuing
648(1)
Parallelism and Partitions
649(1)
Inter- and Intra-operation Parallelization
649(1)
Examples of Using Inter- and Intra-operations (PARALLEL and NO_PARALLEL Hints)
650(2)
Creating Table and Index Examples Using Parallel Operations
652(1)
Monitoring Parallel Operations via the V$ Views
653(2)
Using EXPLAIN PLAN and AUTOTRACE on Parallel Operations
655(3)
Using the SET AUTOTRACE ON/OFF Command
658(2)
Tuning Parallel Execution and the Initialization Parameters
660(2)
Parallel Loading
662(2)
Optimizing Parallel Operations in RAC
664(1)
Objectives of Parallel Operations
664(1)
RAC Parallel Usage Models
664(1)
Parallel Initialization Parameters
665(1)
V$ Views for Viewing Parallel Statistics
665(1)
Create Table As
665(1)
Parallel Index Builds
665(1)
Performance Considerations and Summary
666(1)
Other Parallel Notes
666(1)
Oracle Documentation Is Online
666(1)
Tips Review
667(1)
References
668(3)
12 The V$ Views (Developer and DBA) 671(60)
Creating and Granting Access to V$ Views
673(4)
Obtaining a Count and Listing of All V$ Views
676(1)
Getting a Listing for the X$ Scripts That Make Up the V$ Views
677(3)
Examining the Underlying Objects That Make Up the DBA_Views
678(2)
Using Helpful V$ Scripts
680(4)
Basic Database Information
681(1)
Basic Automatic Workload Repository (AWR) Information
682(1)
Basic Licensing Information
683(1)
Database Options Installed in Your Database
683(1)
Summary of Memory Allocated (V$SGA)
684(6)
Querying V$IM_SEGMENTS After Setting the INMEMORY_SIZE
685(2)
Automatic Memory Management and MEMORY_TARGET
687(1)
Detailed Memory Allocated (V$SGASTAT)
688(1)
Detailed Memory Allocated (V$SGASTAT) for a PDB vs. Root CDB
689(1)
Finding spfile.ora/init.ora Settings in V$PARAMETER
690(1)
Modifying an Initialization Parameter at PDB Level
691(1)
Determining If Data Is in Memory (V$SYSSTAT & V$SYSMETRIC)
692(1)
Determining Memory for the Data Dictionary (V$ROWCACHE)
693(1)
Determining Memory for the Shared SQL and PUSQL (V$LIBRARYCACHE)
694(2)
Querying V$CONTAINERS and V$PDBS for Container Information
696(4)
Querying V$CONTAINERS When Using Pluggable Databases
696(1)
Querying V$PDBS for Pluggable Database Information
697(1)
Using the Result Cache
698(2)
Identifying PUSQL Objects That Need to Be Kept (Pinned)
700(1)
Finding Problem Queries by Monitoring V$SESSION_LONGOPS
701(2)
Finding Problem Queries by Querying V$SQLAREA
703(1)
Finding Out What Users Are Doing and Which Resources They Are Using
704(2)
Finding Out Which Objects a User Is Accessing
705(1)
Getting Detailed User Information
706(1)
Using Indexes
706(2)
Identifying Locking Issues
708(5)
Killing the Problem Session
710(1)
Finding Users with Multiple Sessions
711(1)
Querying for Current Profiles
712(1)
Finding Disk I/O Issues
713(2)
Checking for Privileges and Roles
715(3)
Wait Events V$ Views
718(3)
Some of the Major V$ View Categories
721(7)
Tips Review
728(2)
References
730(1)
13 The X$ Tables and Internals Topics (Advanced DBA) 731(84)
Introducing the X$ Tables
732(3)
Misconceptions About the X$ Tables
734(1)
Granting Access to View the X$ Tables
734(1)
Creating V$ Views and X$ Tables in 12c
735(3)
The X$ Tables Comprising the V$ Views
737(1)
Obtaining a List of All the X$ Tables in 12c
738(2)
Obtaining a List of All the X$ Indexes in 12c
740(1)
Using Hints with X$ Tables and Indexes
741(1)
Monitoring Space Allocations in the Shared Pool
742(1)
Creating Queries to Monitor the Shared Pool
743(10)
ORA-04031 Errors
744(1)
Large Allocations Causing Contention
745(1)
Shared Pool Fragmentation
745(2)
Low Free Memory in Shared and Java Pools
747(1)
Library Cache Memory Use
747(3)
High Number of Hard Parses
750(1)
Mutex/Latch Waits and/or Sleeps
751(1)
Miscellaneous X$ Table Notes
752(1)
Obtaining Information About Redo Log Files
753(1)
Setting Initialization Parameters
753(4)
Case 1
754(1)
Case 2
755(1)
Case 3
755(1)
Case 4
755(1)
Case 5
755(2)
Exploring Buffer Cache/Data Block Details
757(9)
Buffer Statuses
758(2)
Segments Occupying Block Buffers
760(1)
Hot Data Blocks and the Causes of Latch Contention and Wait Events
761(5)
Obtaining Database- and Instance-Specific Information
766(1)
Effective X$ Table Use and Strategy
767(1)
Oracle Internals Topics
768(10)
Traces
768(4)
DBMS_TRACE Package
772(1)
Events
773(1)
Dumps
774(1)
ORADEBUG
775(2)
trcsess Utility
777(1)
Reading the Trace File
778(6)
Wait Information and Response Time
781(1)
Recursive Calls
782(1)
Module Info
782(1)
Commit
783(1)
Unmap
783(1)
Bind Variables
783(1)
Errors
784(1)
Some Common X$ Table Groups
784(17)
Some Common X$ Table and Non-V$ Fixed View Associations
801(2)
Common X$ Table Joins
803(2)
X$ Table Naming Conventions (My Favorite Section of This Book!)
805(8)
X$ Table Naming Conventions with CON_ID, and INMEMORY
812(1)
Future Version Impact in 12cR2
813(1)
Tips Review
813(1)
References
814(1)
14 Using Statspack and the AWR Report to Tune Waits, Latches, and Mutexes 815(90)
What's New in 12cR2 (12.2) Statspack and the AWR Report
817(1)
Installing Statspack
818(6)
Security of the PERFSTAT Account
818(1)
Post-Installation
819(1)
Gathering Statistics
820(2)
Running the Statistics Report
822(2)
The Automatic Workload Repository (AWR) and the AWR Report
824(7)
Manually Managing the AWR
825(1)
AWR Automated Snapshots
826(1)
AWR Snapshot Reports
826(2)
Run the AWR Report in Oracle Enterprise Manager Cloud Control
828(3)
Interpreting the Statspack and AWR Report Output
831(59)
The Header Information and Cache Sizes
832(1)
The Load Profile
833(2)
Instance Efficiency
835(3)
Shared Pool Statistics
838(1)
Top Wait Events
838(13)
Oracle Bugs
851(1)
The Life of an Oracle Shadow Process
852(1)
RAC Wait Events and Interconnect Statistics
852(1)
Top SQL Statements
853(3)
Instance Activity Statistics
856(5)
Tablespace and File I/O Statistics
861(3)
Segment Statistics
864(1)
Additional Memory Statistics
865(6)
UNDO Statistics
871(1)
Latch and Mutex Statistics
872(11)
Tuning and Viewing at the Block Level (Advanced)
883(3)
Dictionary and Library Cache Statistics
886(2)
SGA Memory Statistics
888(1)
Nondefault Initialization Parameters
889(1)
Top 15 Things to Look for in AWR Report and Statspack Output
890(3)
Managing the Statspack Data
892(1)
Upgrading Statspack
892(1)
Deinstalling Statspack
893(1)
Quick Notes on the New ADDM Report
893(5)
Scripts in 12cR2
898(2)
Tips Review
900(2)
References
902(3)
15 Performing a Quick System Review (DBA) 905(36)
Total Performance Index (TPI)
906(1)
Education Performance Index (EPI)
907(2)
System Performance Index (SPI)
909(3)
Memory Performance Index (MPI)
912(10)
Top 25 "Memory Abuser" Statements Tuned
912(2)
Top 10 "Memory Abusers" as a Percent of All Statements
914(1)
Buffer Cache Hit Ratio
914(2)
Dictionary Cache Hit Ratio
916(1)
Library Cache Hit Ratio
917(1)
PGA Memory Sort Ratio
918(1)
Percentage of Data Buffers Still Free
919(1)
Using the Result Cache Effectively
920(1)
Pinning/Caching Objects
921(1)
Disk Performance Index (DPI)
922(8)
Top 25 "Disk-Read Abuser" Statements Tuned
922(1)
Top 10 Disk-Read Abusers as Percentage of All Statements
923(2)
Tables/Indexes Separated or Using ASM
925(1)
Mission-Critical Table Management
925(1)
Key Oracle Files Separated
926(1)
Automatic Undo Management
926(2)
Using Pluggable Databases Effectively
928(2)
Total Performance Index (TPI)
930(1)
Overall System Review Example
930(4)
Rating System
931(1)
Example System Review Rating Categories
931(2)
Items Requiring Immediate Action
933(1)
Other Items Requiring Action
934(1)
System Information List
934(4)
Memory-Related Values
934(1)
Disk-Related Values
935(1)
CPU-Related Values
935(1)
Backup- and Recovery-Related Information
936(1)
Naming Conventions and/or Standards and Security Information Questions
937(1)
DBA Knowledge Rating
937(1)
Other Items to Consider in Your TPI and System Review
938(1)
Tips Review
939(1)
References
940(1)
16 Monitor the System Using Unix Utilities (DBA) 941(30)
Unix/Linux Utilities
942(1)
Using the sar Command to Monitor CPU Usage
943(5)
sar -u (Check for CPU Bogged Down)
943(1)
The sar -d Command (Find I/O Problems)
944(3)
The sar -b Command (Check the Buffer Cache)
947(1)
The sar -q Command (Check the Run Queue and Swap Queue Lengths)
948(1)
Using the sar and vmstat Commands to Monitor Paging/Swapping
948(6)
Using sar -p to Report Paging Activities
949(1)
Using sar -w to Report Swapping and Switching Activities
949(1)
Using sar -r to Report Free Memory and Free Swap
950(1)
Using sar -g to Report Paging Activities
950(1)
Using sar -wpgr to Report on Memory Resources
951(3)
Finding the Worst User on the System Using the top Command
954(1)
Monitoring Tools
955(1)
Using the uptime Command to Monitor CPU Load
955(1)
Using the mpstat Command to Identify CPU Bottlenecks
956(1)
Combining ps with Selected V$ Views
957(2)
CPU/Memory Monitoring Tool (Task Manager) on Windows
959(1)
Using the iostat Command to Identify Disk I/O Bottlenecks
959(3)
Using iostat -d for Disk Drives sdl 5, sdl 6, sdl 7, and sdl 8
960(1)
Using iostat -D
960(1)
Using iostat-x
960(1)
Combining iostat-x with Logic in a Shell Script
961(1)
Using the ipcs Command to Determine Shared Memory
962(1)
Using the vmstat Command to Monitor System Load
963(1)
Monitoring Disk Free Space
964(2)
The df Command
965(1)
The du Command
966(1)
Monitoring Network Performance with netstat
966(1)
Modifying the Configuration Information File
967(2)
Other Factors That Affect Performance
967(2)
Other Sources to Improve Performance
969(1)
Tips Review
969(1)
References
970(1)
A Key Initialization Parameters (DBA) 971(48)
Obsoleted/Desupported Initialization Parameters
972(1)
Deprecated Initialization Parameters
973(1)
Top 25 Initialization Parameters
974(3)
Top 20 Initialization Parameters Not to Forget
977(1)
Top 13 Undocumented Initialization Parameters (As I See It)
978(3)
Bonus 11 Undocumented Initialization Parameters
981(1)
Listing of Documented Initialization Parameters (V$PARAMETER)
982(27)
Listing of Undocumented Initialization Parameters (X$KSPPI/X$KSPPCV)
1009(1)
Additional Oracle Applications Notes
1009(8)
Concurrent Managers
1009(2)
Applications-Finding Module-Specific Patches
1011(1)
Diagnostics Data Collection: EBS Analyzers
1011(2)
Web Server Tuning
1013(1)
Timeouts
1014(2)
Database Initialization Parameter Sizing
1016(1)
Top 10 Reasons Not to Write a Book
1017(1)
Tips Review
1017(1)
References
1018(1)
B The V$ Views (DBA and Developer) 1019(20)
Creation of V$ and GV$ Views and X$ Tables
1020(1)
A List of Oracle 12c (12.2.0.0.1) GV$ Views
1021(1)
A List of Oracle 12c (12.2.0.0.1) V$ Views
1021(8)
Oracle 12c Scripts for the X$ Tables Used to Create the V$ Views
1029(10)
C The X$ Tables (DBA) 1039(14)
Oracle 12cR2 X$ Tables Ordered by Name
1040(8)
Oracle 12cR2 X$ Indexes
1048(1)
Oracle 12cR2 V$ Views Cross-Referenced to the X$ Tables
1048(5)
Index 1053
McGraw-Hill authors represent the leading experts in their fields and are dedicated to improving the lives, careers, and interests of readers worldwide