| 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) |
|
|
|
5 | (1) |
|
|
|
6 | (1) |
|
Multiple Indexes on the Same Column List |
|
|
7 | (1) |
|
|
|
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) |
|
|
|
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) |
|
|
|
23 | (1) |
|
Online Capability Improvements |
|
|
23 | (1) |
|
|
|
24 | (1) |
|
|
|
24 | (1) |
|
Oracle Database 12cR1 (12.1.0.2) |
|
|
25 | (4) |
|
|
|
25 | (3) |
|
Advanced Index Compression |
|
|
28 | (1) |
|
Automatic Big Table Caching |
|
|
28 | (1) |
|
FDA Support for Container Databases |
|
|
28 | (1) |
|
|
|
28 | (1) |
|
|
|
28 | (1) |
|
FIPS 140 Parameter for Encryption |
|
|
28 | (1) |
|
|
|
29 | (1) |
|
Rapid Home Provisioning-Creating "Gold Images" |
|
|
29 | (1) |
|
Oracle Database 12cR2 (12.2) |
|
|
29 | (5) |
|
|
|
29 | (1) |
|
Enhanced Features to Reduce Costs and Issues for Migration to Oracle |
|
|
30 | (1) |
|
|
|
30 | (3) |
|
|
|
33 | (1) |
|
Compression and Archiving |
|
|
33 | (1) |
|
Oracle RAC and Grid Infrastructure |
|
|
34 | (1) |
|
|
|
34 | (1) |
|
New Background Processes in 12c |
|
|
34 | (1) |
|
Exadata-New with Exadata X6! |
|
|
35 | (1) |
|
|
|
36 | (5) |
|
|
|
41 | (1) |
|
|
|
42 | (1) |
| 2 Basic Index Principles (Beginner Developer and Beginner DBA) |
|
43 | (40) |
|
|
|
45 | (2) |
|
|
|
47 | (3) |
|
Multiple Types of Indexes on the Same Column(s) |
|
|
50 | (3) |
|
|
|
53 | (1) |
|
|
|
54 | (5) |
|
Using the NOT EQUAL Operators: <>, 1- |
|
|
55 | (1) |
|
Using IS NULL or IS NOT NULL |
|
|
55 | (2) |
|
|
|
57 | (1) |
|
|
|
58 | (1) |
|
Comparing Mismatched Data Types |
|
|
58 | (1) |
|
|
|
59 | (1) |
|
|
|
59 | (1) |
|
|
|
60 | (4) |
|
Additional Details Concerning BLEVEL and Index Height |
|
|
62 | (2) |
|
|
|
64 | (1) |
|
|
|
65 | (1) |
|
|
|
66 | (1) |
|
|
|
67 | (12) |
|
|
|
68 | (1) |
|
|
|
69 | (2) |
|
|
|
71 | (1) |
|
|
|
72 | (1) |
|
|
|
73 | (1) |
|
|
|
73 | (1) |
|
|
|
74 | (4) |
|
New 12cR2 Features for Partitioned Indexes |
|
|
78 | (1) |
|
|
|
78 | (1) |
|
|
|
79 | (1) |
|
Rebuilding Indexes Online |
|
|
79 | (1) |
|
|
|
80 | (2) |
|
|
|
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) |
|
|
|
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) |
|
|
|
96 | (1) |
|
|
|
97 | (1) |
|
ASM Storage Management (Striping/Mirroring) |
|
|
97 | (1) |
|
Setup and Maintenance of the Traditional Filesystem |
|
|
98 | (3) |
|
|
|
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) |
|
|
|
104 | (33) |
|
Communication Across IT Roles |
|
|
105 | (1) |
|
|
|
106 | (1) |
|
ASM Initialization Parameters |
|
|
107 | (1) |
|
|
|
107 | (8) |
|
|
|
115 | (4) |
|
|
|
119 | (2) |
|
ASM Rebalance Enhancements |
|
|
121 | (2) |
|
|
|
123 | (1) |
|
|
|
124 | (8) |
|
|
|
132 | (4) |
|
|
|
136 | (1) |
|
|
|
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) |
|
|
|
143 | (3) |
|
Global Index Maintenance: Drop and Truncate Partition Operations |
|
|
146 | (1) |
|
Other Partitioning Options |
|
|
146 | (3) |
|
|
|
149 | (1) |
|
|
|
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) |
|
|
|
159 | (2) |
|
|
|
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) |
|
|
|
218 | (2) |
|
|
|
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) |
|
|
|
248 | (2) |
|
Monitoring the Application Servers and Web Applications |
|
|
250 | (2) |
|
Real Application Testing (Database Replay) |
|
|
252 | (1) |
|
|
|
253 | (1) |
|
|
|
253 | (1) |
|
|
|
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) |
|
|
|
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) |
|
|
|
269 | (1) |
|
TRCSESS Multiple Trace Files into One File |
|
|
269 | (2) |
|
|
|
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) |
|
|
|
282 | (1) |
|
Initialization Parameters for Undocumented TRACE |
|
|
283 | (1) |
|
|
|
284 | (1) |
|
|
|
285 | (1) |
|
Using SQL Plan Management (SPM) and SPM Example |
|
|
285 | (16) |
|
|
|
286 | (1) |
|
|
|
287 | (4) |
|
Using Fixed SQL Plan Baselines |
|
|
291 | (1) |
|
|
|
292 | (1) |
|
Converting from Stored Outlines to SQL Plan Management |
|
|
292 | (2) |
|
Adaptive Plans (12c New Feature) and SPM |
|
|
294 | (7) |
|
|
|
301 | (2) |
|
|
|
303 | (2) |
| 7 Basic Hint Syntax (Developer and DBA) |
|
305 | (44) |
|
|
|
307 | (2) |
|
|
|
308 | (1) |
|
|
|
308 | (1) |
|
Available Hints and Groupings |
|
|
309 | (3) |
|
|
|
309 | (1) |
|
|
|
310 | (1) |
|
Query Transformation Hints |
|
|
310 | (1) |
|
|
|
311 | (1) |
|
|
|
311 | (1) |
|
|
|
311 | (1) |
|
|
|
312 | (1) |
|
Specifying Multiple Hints |
|
|
313 | (1) |
|
When Using an Alias, Hint the Alias, Not the Table |
|
|
314 | (1) |
|
|
|
314 | (25) |
|
The Oracle Demo Sample HR Schema |
|
|
314 | (1) |
|
|
|
315 | (1) |
|
|
|
316 | (1) |
|
|
|
316 | (1) |
|
|
|
317 | (2) |
|
|
|
319 | (1) |
|
|
|
320 | (1) |
|
|
|
320 | (1) |
|
|
|
321 | (1) |
|
|
|
322 | (1) |
|
|
|
322 | (1) |
|
|
|
323 | (1) |
|
|
|
324 | (1) |
|
|
|
325 | (1) |
|
|
|
325 | (1) |
|
|
|
326 | (1) |
|
|
|
327 | (1) |
|
|
|
328 | (1) |
|
|
|
329 | (1) |
|
|
|
330 | (1) |
|
|
|
331 | (1) |
|
|
|
332 | (1) |
|
|
|
333 | (1) |
|
|
|
333 | (1) |
|
|
|
334 | (1) |
|
|
|
334 | (1) |
|
|
|
335 | (1) |
|
|
|
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) |
|
|
|
339 | (1) |
|
|
|
339 | (1) |
|
Some Miscellaneous Hints and Notes |
|
|
339 | (4) |
|
|
|
341 | (1) |
|
|
|
342 | (1) |
|
Notes on Hints and Stored Outlines (or SQL Plan Baselines) |
|
|
343 | (1) |
|
Why Isn't My Hint Working? |
|
|
343 | (1) |
|
|
|
343 | (2) |
|
|
|
345 | (2) |
|
|
|
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) |
|
|
|
360 | (1) |
|
|
|
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) |
|
|
|
367 | (1) |
|
Making the Query "Magically" Faster |
|
|
368 | (1) |
|
Caching a Table in Memory |
|
|
369 | (2) |
|
|
|
371 | (1) |
|
Choosing Among Multiple Indexes (Use the Most Selective) |
|
|
372 | (1) |
|
|
|
373 | (2) |
|
Indexes That Can Get Suppressed |
|
|
375 | (2) |
|
|
|
377 | (1) |
|
|
|
378 | (1) |
|
|
|
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) |
|
|
|
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) |
|
|
|
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) |
|
|
|
412 | (2) |
|
|
|
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) |
|
|
|
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) |
|
|
|
423 | (4) |
|
|
|
423 | (1) |
|
|
|
424 | (1) |
|
|
|
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) |
|
|
|
426 | (1) |
|
|
|
427 | (1) |
|
|
|
427 | (7) |
|
|
|
428 | (1) |
|
|
|
428 | (1) |
|
|
|
429 | (1) |
|
|
|
430 | (2) |
|
|
|
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) |
|
|
|
452 | (6) |
|
|
|
452 | (2) |
|
|
|
454 | (1) |
|
Best Uses for the Bitmap Join Index |
|
|
455 | (3) |
|
Third-Party Product Tuning |
|
|
458 | (4) |
|
|
|
458 | (1) |
|
|
|
459 | (1) |
|
|
|
460 | (2) |
|
Tuning Distributed Queries |
|
|
462 | (2) |
|
When You Have Everything Tuned |
|
|
464 | (1) |
|
Miscellaneous Tuning Snippets |
|
|
464 | (9) |
|
|
|
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) |
|
|
|
486 | (1) |
|
Deriving Performance Equations |
|
|
487 | (6) |
|
|
|
493 | (5) |
|
Mathematical Techniques Conclusions |
|
|
498 | (1) |
|
|
|
499 | (1) |
|
|
|
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) |
|
|
|
556 | (1) |
|
Identify PUSQL Objects That Need to Be Pinned |
|
|
557 | (1) |
|
Use and Modify DBMS_SHARED_POOL.SIZES |
|
|
557 | (1) |
|
|
|
558 | (1) |
|
Get Detailed Object Information from DBA_OBJECT_SIZE |
|
|
558 | (1) |
|
Get Contiguous Space Currently in the Shared Pool |
|
|
559 | (1) |
|
|
|
559 | (2) |
|
|
|
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) |
|
|
|
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) |
|
|
|
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) |
|
|
|
588 | (1) |
|
Database Trigger Example Using PUSQL |
|
|
589 | (1) |
|
|
|
589 | (3) |
|
|
|
592 | (1) |
| 11 Oracle Cloud, Exadata, Tuning RAC, and Using Parallel Features |
|
593 | (78) |
|
The March to the Cloud (Past and Present) |
|
|
596 | (3) |
|
|
|
599 | (10) |
|
|
|
609 | (15) |
|
Exadata Terminology and the Basics |
|
|
609 | (1) |
|
|
|
610 | (2) |
|
Exadata Storage Expansion Rack Briefly |
|
|
612 | (2) |
|
|
|
614 | (1) |
|
|
|
614 | (3) |
|
|
|
617 | (1) |
|
Hybrid Columnar Compression |
|
|
618 | (3) |
|
|
|
621 | (1) |
|
Use All Oracle Security Advantages with Exadata |
|
|
622 | (1) |
|
|
|
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) |
|
|
|
625 | (1) |
|
StorageTek Modular Library System |
|
|
625 | (1) |
|
|
|
626 | (1) |
|
Real Application Clusters (RAC) |
|
|
626 | (6) |
|
|
|
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) |
|
|
|
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) |
|
|
|
665 | (1) |
|
|
|
665 | (1) |
|
Performance Considerations and Summary |
|
|
666 | (1) |
|
|
|
666 | (1) |
|
Oracle Documentation Is Online |
|
|
666 | (1) |
|
|
|
667 | (1) |
|
|
|
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) |
|
|
|
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) |
|
|
|
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) |
|
|
|
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) |
|
|
|
713 | (2) |
|
Checking for Privileges and Roles |
|
|
715 | (3) |
|
|
|
718 | (3) |
|
Some of the Major V$ View Categories |
|
|
721 | (7) |
|
|
|
728 | (2) |
|
|
|
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) |
|
|
|
744 | (1) |
|
Large Allocations Causing Contention |
|
|
745 | (1) |
|
Shared Pool Fragmentation |
|
|
745 | (2) |
|
Low Free Memory in Shared and Java Pools |
|
|
747 | (1) |
|
|
|
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) |
|
|
|
754 | (1) |
|
|
|
755 | (1) |
|
|
|
755 | (1) |
|
|
|
755 | (1) |
|
|
|
755 | (2) |
|
Exploring Buffer Cache/Data Block Details |
|
|
757 | (9) |
|
|
|
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) |
|
|
|
768 | (10) |
|
|
|
768 | (4) |
|
|
|
772 | (1) |
|
|
|
773 | (1) |
|
|
|
774 | (1) |
|
|
|
775 | (2) |
|
|
|
777 | (1) |
|
|
|
778 | (6) |
|
Wait Information and Response Time |
|
|
781 | (1) |
|
|
|
782 | (1) |
|
|
|
782 | (1) |
|
|
|
783 | (1) |
|
|
|
783 | (1) |
|
|
|
783 | (1) |
|
|
|
784 | (1) |
|
Some Common X$ Table Groups |
|
|
784 | (17) |
|
Some Common X$ Table and Non-V$ Fixed View Associations |
|
|
801 | (2) |
|
|
|
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) |
|
|
|
813 | (1) |
|
|
|
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) |
|
|
|
818 | (6) |
|
Security of the PERFSTAT Account |
|
|
818 | (1) |
|
|
|
819 | (1) |
|
|
|
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) |
|
|
|
826 | (1) |
|
|
|
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) |
|
|
|
833 | (2) |
|
|
|
835 | (3) |
|
|
|
838 | (1) |
|
|
|
838 | (13) |
|
|
|
851 | (1) |
|
The Life of an Oracle Shadow Process |
|
|
852 | (1) |
|
RAC Wait Events and Interconnect Statistics |
|
|
852 | (1) |
|
|
|
853 | (3) |
|
Instance Activity Statistics |
|
|
856 | (5) |
|
Tablespace and File I/O Statistics |
|
|
861 | (3) |
|
|
|
864 | (1) |
|
Additional Memory Statistics |
|
|
865 | (6) |
|
|
|
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) |
|
|
|
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) |
|
|
|
892 | (1) |
|
|
|
893 | (1) |
|
Quick Notes on the New ADDM Report |
|
|
893 | (5) |
|
|
|
898 | (2) |
|
|
|
900 | (2) |
|
|
|
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) |
|
|
|
914 | (2) |
|
Dictionary Cache Hit Ratio |
|
|
916 | (1) |
|
|
|
917 | (1) |
|
|
|
918 | (1) |
|
Percentage of Data Buffers Still Free |
|
|
919 | (1) |
|
Using the Result Cache Effectively |
|
|
920 | (1) |
|
|
|
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) |
|
|
|
931 | (1) |
|
Example System Review Rating Categories |
|
|
931 | (2) |
|
Items Requiring Immediate Action |
|
|
933 | (1) |
|
Other Items Requiring Action |
|
|
934 | (1) |
|
|
|
934 | (4) |
|
|
|
934 | (1) |
|
|
|
935 | (1) |
|
|
|
935 | (1) |
|
Backup- and Recovery-Related Information |
|
|
936 | (1) |
|
Naming Conventions and/or Standards and Security Information Questions |
|
|
937 | (1) |
|
|
|
937 | (1) |
|
Other Items to Consider in Your TPI and System Review |
|
|
938 | (1) |
|
|
|
939 | (1) |
|
|
|
940 | (1) |
| 16 Monitor the System Using Unix Utilities (DBA) |
|
941 | (30) |
|
|
|
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) |
|
|
|
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) |
|
|
|
960 | (1) |
|
|
|
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) |
|
|
|
965 | (1) |
|
|
|
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) |
|
|
|
969 | (1) |
|
|
|
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) |
|
|
|
1009 | (2) |
|
Applications-Finding Module-Specific Patches |
|
|
1011 | (1) |
|
Diagnostics Data Collection: EBS Analyzers |
|
|
1011 | (2) |
|
|
|
1013 | (1) |
|
|
|
1014 | (2) |
|
Database Initialization Parameter Sizing |
|
|
1016 | (1) |
|
Top 10 Reasons Not to Write a Book |
|
|
1017 | (1) |
|
|
|
1017 | (1) |
|
|
|
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) |
|
|
|
1048 | (1) |
|
Oracle 12cR2 V$ Views Cross-Referenced to the X$ Tables |
|
|
1048 | (5) |
| Index |
|
1053 | |