oracle cost based optimizer correlations

462
Regis University ePublications at Regis University All Regis University eses Summer 2013 Oracle Cost Based Optimizer Correlations Robert Apple Regis University Follow this and additional works at: hps://epublications.regis.edu/theses Part of the Computer Sciences Commons is esis - Open Access is brought to you for free and open access by ePublications at Regis University. It has been accepted for inclusion in All Regis University eses by an authorized administrator of ePublications at Regis University. For more information, please contact [email protected]. Recommended Citation Apple, Robert, "Oracle Cost Based Optimizer Correlations" (2013). All Regis University eses. 234. hps://epublications.regis.edu/theses/234

Upload: others

Post on 31-May-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle Cost Based Optimizer Correlations

Regis UniversityePublications at Regis University

All Regis University Theses

Summer 2013

Oracle Cost Based Optimizer CorrelationsRobert AppleRegis University

Follow this and additional works at: https://epublications.regis.edu/theses

Part of the Computer Sciences Commons

This Thesis - Open Access is brought to you for free and open access by ePublications at Regis University. It has been accepted for inclusion in All RegisUniversity Theses by an authorized administrator of ePublications at Regis University. For more information, please contact [email protected].

Recommended CitationApple, Robert, "Oracle Cost Based Optimizer Correlations" (2013). All Regis University Theses. 234.https://epublications.regis.edu/theses/234

Page 2: Oracle Cost Based Optimizer Correlations

Regis UniversityCollege for Professional Studies Graduate Programs

Final Project/Thesis

DisclaimerUse of the materials available in the Regis University Thesis Collection ("Collection”) is limited and restricted to those users who agree to comply with the following terms of use. Regis University reserves the right to deny access to the Collection to any person who violates these terms of use or who seeks to or does alter, avoid or supersede the functional conditions, restrictions and limitations of the Collection.

The site may be used only for lawful purposes. The user is solely responsible for knowing and adhering to any and all applicable laws, rules, and regulations relating or pertaining to use of the Collection.

All content in this Collection is owned by and subject to the exclusive control of Regis University and the authors of the materials. It is available only for research purposes and may not be used in violation of copyright laws or for unlawful purposes. The materials may not be downloaded in whole or in part without permission of the copyright holder or as otherwise authorized in the "fair use” standards of the U.S. copyright laws and regulations.

Page 3: Oracle Cost Based Optimizer Correlations

ORACLE COST BASED OPTIMIZER CORRELATIONS

A THESIS

SUBMITTED ON 8th OF AUGUST, 2013

TO THE DEPARTMENT OF INFORMATION TECHNOLOGY

OF THE SCHOOL OF COMPUTER & INFORMATION SCIENCES

OF REGIS UNIVERSITY

IN PARTIAL FULFILLMENT OF THE REQUIREMENTS OF MASTER OF SCIENCE IN

SOFTWARE ENGINEERING AND DATABASE TECHNOLOGIES

BY

Robert Apple

APPROVALS

Dr. Ernest Eugster, Thesis Advisor

Don Ina, Faculty of Record

Nancy Birkenheuer, Program Coordinator

Page 4: Oracle Cost Based Optimizer Correlations

Abstract

Database systems use optimizers on queries to select execution pathways that are supposed to

provide optimal performance. The Oracle database version of this technology is called the Cost

Based Optimizer (CBO). Researchers have studied whether Oracle optimizer estimates could be

correlated to execution speeds with a high degree of confidence, but have found that correlating

optimizer cost estimates with actual execution speed to be problematic and unreliable. If

possible, however, such correlations would be helpful to developers who are tasked with query

creation and optimization. Although much has been written on databases, the academic literature

on optimizers was sparse. To fill the gap, this researcher developed a quantitative research

methodology to test query optimization on an Oracle 11g database. Correlations between

cached, non-cached, partitioned and non-partitioned table structures and indexes were

performed. The findings suggest that confident correlations between optimizer cost estimates

and execution speeds are not yet possible. Suggestions for further research were provided.

Keywords: Cost Based Optimizer, cardinality, index toggle, correlation, confidence,

Oracle

Page 5: Oracle Cost Based Optimizer Correlations

Acknowledgements

A special thanks is given to my wife Heather for her unfailing devotion and patience as

this thesis unfolded. Also, thank you to Dr. Nancy Birkenheuer for her enthusiasm and

optimism, for providing confidence that hard work pays off, and that this thesis could be

completed. Last but not least, to the unending patience of Dr. Ernest Eugster. His “red pen”

became my worst enemy as well as my best friend, a special thank you.

ORACLE CBO CORRELATIONS ii

Page 6: Oracle Cost Based Optimizer Correlations

Table of Contents

Abstract .................................................................................................................................................. iAcknowledgements .............................................................................................................................. iiTable of Contents................................................................................................................................ iiiList of Figures.......................................................................................................................................v

Chapter 1 -- The Oracle Cost Based Optimizer Dilemma................................................................ 1Relational Database Management Systems -- Size and Speed.........................................................1

Queries and Speed (Preliminaries)..................................................................................................3Cost Based Optimizer and Other Speed Enhancing Tools...........................................................3The CBO Process............................................................................................................................. 4The Oracle Explain Plan..................................................................................................................5Research Problem..........................................................................................................................13Significance.................................................................................................................................... 14Research Questions and Purpose..................................................................................................15Regarding the Research Method...................................................................................................16Summary ......................................................................................................................................... 17

Chapter 2 -- CBO as Speed Promotes Predictability...................................................................... 19Speed and CBO Accuracy Related to Time -- An Introduction.................................................... 19

CBO Begins to Mature................................................................................................................... 21CBO Formula for Oracle 10g and 11g......................................................................................... 22Cardinality....................................................................................................................................... 24What Is Cardinality?......................................................................................................................24How Cardinality is Discovered (Statistics)..................................................................................25Cardinality Concerns.....................................................................................................................27Dynamic Sampling......................................................................................................................... 27Histograms..................................................................................................................................... 289i, 10g, and 11g Statistic Enhancements..................................................................................... 28Indexes -- A Significant Push for Speed...................................................................................... 29What an Index Is (Blocks and Avoiding W aste)........................................................................ 30B-TREE...........................................................................................................................................30Bitmap Index.................................................................................................................................. 32Function Based Index....................................................................................................................32Tables, Indexes, and Partitions.....................................................................................................33Plan Optimization -- The Basics of Equivalent Queries and its Power.....................................36Equivalent Queries -- An Example...............................................................................................36Simple Join Choices -- An Example............................................................................................ 38Progress Continues......................................................................................................................... 39CBO Limitations............................................................................................................................ 40Summary ......................................................................................................................................... 41

Chapter 3 - CBO in Academic Literature........................................................................................ 43Plan Regression.................................................................................................................................. 43

CBO Innovation to Predict Cardinality........................................................................................ 44

ORACLE CBO CORRELATIONS iii

Page 7: Oracle Cost Based Optimizer Correlations

Query Self Tuning - Feedback Loops......................................................................................... 45Time Constrained SQL Queries....................................................................................................46Keeping Query Speeds Consistent................................................................................................48Progress Indicators ......................................................................................................................... 50Long Running Queries...................................................................................................................51Summary ......................................................................................................................................... 52

Chapter 4 - Methodology..................................................................................................................53The Oracle CBO Experiment............................................................................................................ 53

The System U sed...........................................................................................................................54Oracle Installation .......................................................................................................................... 54The Table Structure........................................................................................................................58The Randomization of Data.......................................................................................................... 63A Comment about H ints............................................................................................................... 63The Index “Toggle” Method......................................................................................................... 65The Data Gathering M ethod......................................................................................................... 66Methodology for Gathering Data..................................................................................................70Perl Script for Data Gathering......................................................................................................74Summary ......................................................................................................................................... 75

Chapter 5 - The Optimizer Experiment........................................................................................... 76Experimental Preliminaries............................................................................................................... 76

Non-Partitioned Queries ............................................................................................................... 79Correlational Results - NOT FLUSHED.................................................................................... 81Correlational Results - FLUSHED...............................................................................................85Partitioned Sampling...................................................................................................................... 88Summary ......................................................................................................................................... 92

Chapter 6 - Conclusion......................................................................................................................94Different Approach Possibilities....................................................................................................... 94

Suggestions for Further Study......................................................................................................96Final Comments............................................................................................................................. 98

References ........................................................................................................................................... 99

Appendix 1........................................................................................................................................106Appendix 2 ........................................................................................................................................325Appendix 3 ........................................................................................................................................335Appendix 4 ........................................................................................................................................425Appendix 5 ........................................................................................................................................431Appendix 6 ........................................................................................................................................443

ORACLE CBO CORRELATIONS iv

Page 8: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS v

List of Figures

Figure 1.1 - Simple EP Example ......................................................................................................6Figure 1.2 -- Example..........................................................................................................................6Figure 1.3 - More complex EP query................................................................................................7Figure 1.4 - More complex query......................................................................................................9Figure 1.5 - Using EP for a complex query.................................................................................... 10Figure 1.6 - Modified complex query............................................................................................. 11Figure 1.7 - Modified query E P ....................................................................................................... 12Figure 2.1 - High level CBO differences........................................................................................ 21Figure 2.2 - CBO Formula............................................................................................................... 22Figure 2.3 - System Statistics SQL..................................................................................................23Figure 2.4 - Simple Queries............................................................................................................. 37Figure 2.5 - New Equivalent Query.................................................................................................37Figure 2.6 - Predicate Example........................................................................................................39Figure 4.1 - Machine O S ..................................................................................................................54Figure 4.2 - Machine Memory ........................................................................................................54Figure 4.3 - Oracle Banner ............................................................................................................. 55Figure 4.4 - Opatch...........................................................................................................................57Figure 4.5 - Pfile .............................................................................................................................. 58Figure 4.6 - Master 1 Table Group Structure.................................................................................59Figure 4.7 - Master 2 Table Group Structure.................................................................................60Figure 4.8 - Master 3 Table Group Structure.................................................................................61Figure 4.9 - Master 4 Table Structure............................................................................................ 62Figure 4.10 - ORDERED Hint......................................................................................................... 64Figure 4.11 - Index “TOGGLE” ......................................................................................................65Figure 4.12 - Execution Plan .......................................................................................................... 67Figure 4.13 - Revised Execution Plan ........................................................................................... 69Figure 4.14 - Incdex Toggle Combinations ...................................................................................70Figure 4.15 - INDEX Listing.......................................................................................................... 72Figure 4.16 - Initial Cost Capture ...................................................................................................73Figure 4.17 - Execution Speec Capture ......................................................................................... 73Figure 4.18 - Final Cost Cross-Check ........................................................................................... 74Figure 5.1 - Experimental statistical results...................................................................................77Figure 5.2 - NOT FLUSHED General_Join_2..............................................................................82Figure 5.3 - NOT FLUSHED Master_All_Join_3....................................................................... 83Figure 5.4 - NOT FLUSHED Master_1_Join_2............................................................................83Figure 5.5 - NOT FLUSHED General_Join_7..............................................................................84Figure 5.6 - NOT FLUSHED General_Join_9..............................................................................85Figure 5.7 - FLUSHED Master_All_Join_1..................................................................................86Figure 5.8 - FLUSHED Master_All_Join_2..................................................................................87Figure 5.9 - FLUSHED Maseer_All_Join_7.................................................................................87Figure 5.10 - Master_4_Query_1 ....................................................................................................88Figure 5.11 - Master_4_Query_2.....................................................................................................89Figure 5.12- Master_4_Query_3.....................................................................................................90Figure 5.13 - Master_4_Query_3.....................................................................................................92

Page 9: Oracle Cost Based Optimizer Correlations

Chapter 1 -- The Oracle Cost Based Optimizer Dilemma

One of the most significant challenges faced by database developers is ensuring fast and

predictable data retrieval to justify the contributions that databases can make to an organization’s

mission. Database vendors developed the Cost Based Optimizer (CBO) which provides a way to

understand and tune queries. But, correlating CBO cost estimates with actual execution speed

can be problematic and unreliable. CBO estimates, for example, could produce fast results in one

circumstance, and similar estimates could then produce slow results in similar circumstances. In

addition, although trade literature on the relational database management system (RDBMS) is

vast, few academic studies could be found that had relevance. This thesis attempts to redress this

dilemma by proposing new correlations between CBO estimates and execution speeds.

This chapter discusses the inner workings of Cost Based Optimizers and their

implications. It introduces the different views that researches have had on the sources of CBO

inconsistent results. This chapter also introduces the quantitative research design that this

researcher adopted to test correlations, using the Oracle RDBMS in an experiment.

Relational Database Management Systems -- Size and Speed

Since Dr. E. J. Codd published his paper "A Relational Model of Data for Large Shared

Data Banks" in 1970 proposing a new database model to replace hierarchical and network

models, the RDBMS has become more critical than ever to coordinate data management and

leverage enterprise data for competitive advantage. This is reflected in the statistics. According

to market researcher International Data Corporation, the worldwide market for RDBMS grew an

estimated 7.2% in 2011, reaching $22 billion (Thomas, 2011).

RDBMS systems have also grown explosively in their size with databases in some

organizations reaching petabyte proportions and beyond. For example, the e-Bay database

ORACLE CBO CORRELATIONS 1

Page 10: Oracle Cost Based Optimizer Correlations

engine passed the 10 petabyte size in 2010. Additional systems owned by e-Bay for data

warehousing passed the 4.5 petabyte threshold, and growth of as much as 100% per year was

predicted on both systems (Ratzesberger, 2010). In another development, the United States

National Security Agency which is building a data center in Utah will host several RDBMS.

This data store is predicted to store yottabytes of data (Trenholm, 2009).

This explosive growth in database use and size, however, has brought with it two

challenges. The first challenge was ensuring fast response time when processing data. For

example, consider the usage requirements of e-Bay. Burleson (2006), commenting on that

system, indicated that it:

• Contained over 212 million registers users

• Contained over two petabytes of Data

• Supported 26 billion SQL executions per day

• Was 99.94% available

• Displayed over one billion page views per day (p. 1)

It is easy to understand that with 26 billion SQL executions per day being issued against

this online market, if delays happen because response times were slow, usage would be

hampered. For example, research by the Akamai Technologies Inc (Yang & Faris, 2009)

showed that users generally expected websites to load in two seconds, and 40% of online

shoppers would actually leave the site if page loads took longer than three seconds. The financial

fallout for a company like e-Bay would be catastrophic if 40% of its users decided to leave

because web-pages took longer than three seconds to load.

The second challenge is related to ensuring the predictability of speed requirements, or

more precisely, query results being returned inside a specific time tolerance. Hu, Sundara and

ORACLE CBO CORRELATIONS 2

Page 11: Oracle Cost Based Optimizer Correlations

Srinivasan (2007) gave a practical example of this need by talking about a global positioning

system (GPS) providing driving directions. Regardless of the size of the database, the response

times must be fast, otherwise a driver risks not making the correct turn when needed.

Furthermore, the response time must be predictably consistent. Otherwise, a driver approaching a

turn quickly may receive instructions too late or too early as a result of acceleration or

deceleration of the vehicle.

Queries and Speed (Preliminaries)

In all major RDBMS systems, Structured Query Language (SQL) is the primary tool for

interfacing with a database and extracting data (Rob & Coronel, 2007). SQL is declarative in

nature (Chamberlin & Boyce, 1974). This means that all functions related to speed and

predictability, when extracting data, must reside in the RDBMS system. SQL queries are passed

from a user or machine interface to the RDBMS where they are parsed, optimized, compiled and

executed. After the query is executed, data is returned to the end user, another program, or

another database.

Cost Based Optimizer and Other Speed Enhancing Tools

Query execution speed is the time it takes between a query being submitted to the

RBDMS and results being returned to the submitter after query execution (Oracle, 2011). In

RDBMS systems, a primary objective of query design is increasing overall query execution

speed (Burleson & Danchenkov, 2005).

To aid in the objective of writing queries that perform well, database vendors have

provided tools that are transparent to both developers and end users. One of these tools,

specifically related to query processing and applied during the query optimization phase, is the

Cost Based Optimizer (CBO). The CBO is a fundamental tool associated with all aspects of

ORACLE CBO CORRELATIONS 3

Page 12: Oracle Cost Based Optimizer Correlations

database queries. The database offerings of Oracle, Microsoft and IBM all utilize CBO

functionality (Oracle, 2005; Microsoft, 2009; Fechner, 2006). In an Oracle system, for example,

every query that runs through the database first passes through the CBO (Lewis, 2006a). There

is no way to disable or circumvent the CBO; it is essential and interwoven with all Oracle

queries. Yagoub and Gongloor (2007) stated this precisely when they said: "All SQL statements

use the optimizer, which is a part of the Oracle database that determines the most efficient means

of accessing the specified data” (p. 3).

A CBO has been incorporated in Oracle database products since 1992 when it was

released in Oracle 7 (Colgan, 2005). Since that time, several product refinements have been

made with the primary goal of increasing accuracy during optimization which would result in

increased query speed (Lejeune, Buch, & Palmer, 2003). According to Lewis (2006), an

additional goal has been the increase of the CBO ability to correlate CBO estimates with time

execution speed.

Because query speed is a primary objective of query development, additional speed

enhancing tools have been provided to aid in database development, debugging and performance

tuning. Some of these tools include the SQL Performance Analyzer (Yagoub & Gongloor,

2007), the SQL Tuning Advisor (Hall, 2012), and the Oracle Explain Plan (EP) (Colgan, 2011a).

These tools work with SQL query statements and all utilize the CBO at a fundamental level.

This researcher used Oracle’s EP in a case study to correlate CBO estimates with query

execution speeds.

The CBO Process

As the fundamental component of all query optimization, the CBO automatically

analyzes all SQL code prior to query execution. During this phase, the queries' potential effort

ORACLE CBO CORRELATIONS 4

Page 13: Oracle Cost Based Optimizer Correlations

requirements of CPU, I/O, and data cardinality are evaluated inside the RDBMS and assigned

numerical numbers signifying the predicted "cost" incurred if that query were executed. The

purpose of the CBO is to calculate the cost of multiple query execution plans and to select a plan

for the query in question that maximizes performance while minimizing cost (Colgan, 2011a).

Higher numbers indicate a larger load on the system, while smaller numbers means less (Oracle,

2005). For example, if a query can be executed with two differing costs, the smaller one should

have a faster execution response because it is the more efficient (Lewis, 2006c).

Even though SQL is a declarative language and programmatic access to underlying

database structures like source code is not possible, developers must still work to streamline SQL

queries (Burleson & Danchenkov, 2005). Use of Oracle’s EP, for example, aids in this effort by

allowing developers a way to analyze a query in such a way as to see high-level representations

of the execution pathway chosen by the CBO, the cost of each step, and the overall cost of the

chosen plan (Colgan, 2011a).

The Oracle Explain Plan

The EP tool has been available since the CBO was first introduced in the Oracle 7

RDBMS in 1992 (Colgan, 2011a) and has been suggested as a primary tool for all development

activities that require streamlining SQL queries (Niemiec, 1999; Colgan, 2011a). The EP uses

several special tables in the RDBMS that are populated when specific SQL commands are

entered, and then through either the normal SQL+ interface provided by Oracle (Colgan, 2011a),

or through other popular RDBMS access tools such as TOAD provided by Quest Software

(OracleFaqs, 2012), developers can see the EP results. The output from the EP is in tree form

with each leg showing specific information generated by the CBO. Figure 1.1 gives a simple

example of a SQL query EP generated in the TOAD tool:

ORACLE CBO CORRELATIONS 5

Page 14: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 6

SELECT STATEMENT ALL ROWSCost 2 Cardinality 1

1 FAST DUAL Coi: 2 Cardinality 1

Figure 1.1 -- Simple EP example

This tree was created from the EP of the query: “select ‘Hello World’ from dual;” . It

contains two rows: the first is a summary that indicates this is a “SELECT” statement with the

optimizer mode of "ALL_ROWS" being utilized, the CBO cost estimate of 2, and the cardinality

of 1. The second row is indented with a "1" showing this is the first actually executed line that

performs a "FAST" scan of the dual table, having the cost of 2 and the cardinality of 1.

The EP tool can provide more sophisticated information, depending on the complexity of

the query involved. Lewis (2006) provided the following EP example from the SQL+ interface

with an explanation as shown in Figures 1.2 and 1.3 respectfully:

selectouter.*

from emp outer where outer.dept noin(VWvVWvVWvV ' i'i'.VW- '

select dept no\Wv4VvVtVvWfrom dept

)where depi; group = 1Wv\4\4/1 ■ i »HMvvvfr

and outer.sal > (select aj^gtinner.sal) from emp innerWvVvVv

whereinner.dept no = outer.VAAAAAAAAAAAAAVWMhAAAA W-......

and inner.dept noin(WvVvVvVvVvWtV.'i'i'.'vW- '

select dept noVWv VvVrVvW

from dept where dept group = 1

W v V 4 w I ■ IM ■ A V v V lV -

);

Figure 1.2 - EP Example

Page 15: Oracle Cost Based Optimizer Correlations

This figure shows a query with three embedded sub-queries: one found directly under the

“where” statement, another associated with the outer.sal variable and a “>” operator, and another

associated with the inner.dept_no variable embedded two levels in the where section. This query

only accessed two tables: the “dept” and the “emp” table. Figure 1.3 shows the CBO has

decided the Hash Join is the chosen method for joining these two tables.

ORACLE CBO CORRELATIONS 7

|Id | Operation

0 | SELECT STATEMENT1 | HASH JOIN2 | VIEW3 | SORT GROUP BY4 | HASH JOIN5 | TABLE ACCESS FULL6 | TABLE ACCESS FULL7 | HASH JOIN8 | TABLE ACCESS FULL9 | TABLE ACCESS FULL

Name Rows Bytes |Cost |

500 51500 | 98500 51500 | 98

VW SQL 1 6 156 596 78 59

10000 | 126K 38DEPT | 3 15 2EMP |20000 | 156K 35

10000 | 751K 38DEPT | 3 15 2EMP |20000 |1406K | 35

Figure 1.3 - Explain plan

The ability of the CBO to rewrite queries into equivalent queries that generate less cost is

a fundamental component of the CBO functionality. Lewis (2006) explained that this EP output,

taken from an 8i Oracle version, demonstrated that the “optimizer has turned the outer subquery

into a simple hash join in lines 7, 8, and 9.” Lewis went on to explain that “looking at line 2

[illustrates that] the optimizer has also unnested a subquery—and inside that subquery, the

optimizer has also turned our silly inner subquery construct into a simple hash join [in lines 4, 5,

and 6]” (p. 242). This example shows some of the power the optimizer has, and some of the

significant changes it can make to queries as it searches the execution domain for an execution

plan that produces the best cost.

Page 16: Oracle Cost Based Optimizer Correlations

The EP of the CBO can handle extremely complex queries, not just those with a few table

joins containing significant joins and filter conditions. Figure 1.4 provides a much more

complex query:

ORACLE CBO CORRELATIONS 8

Page 17: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 9

SELECT DISTINCT OTF.DEA_PID_DEAL DEAL_PID, OTF.DEAL_NAME DEAL_NAME, OTF.BRANCHCODE

FROM ( SELECT DEA.DEA_NME_DEAL DEAL_NAME,FAC.FAC_NME_FACILITY FACILITY_NAME,FP.EFP_CDE_FEE_TYPE FEE_TYPE,FP.EFP_CDE_CURRENCY CURRENCY,FP.EFP_DTE_EFFECTIVE DATE_FEE_RECEIVED,SUM (ACP.APP_AMT_BOOK) FEE_AMT,ACP.APP_CDE_PORTFOLIO PORTFOLIO,ACP. APP_CDE_EXPENSE EXPENSE_CODE,DEA.DEA_PID_DEAL DEA_PID_DEAL,DEA.DEA_CDE_BRANCH BRANCHCODE

FROM VLS_EVENT_FEE_PYMT FP JOIN VLS_DEAL DEA ON DEA.DEA_PID_DEAL = FP.EFP_PID_DEAL

JOIN VLS_FACILITY FAC ON FAC.FAC_PID_FACILITY = FP.EFP_RID_OWNER JOIN VLS_ACR_CYC_PMT_PT ACP

ON FP.EFP_RID_FEE_PAYMNT = ACP.APP_RID_ACR_CY_PMT GROUP BY DEA.DEA_NME_DEAL,

FAC.FAC_NME_FACILITY,FP.EFP_CDE_FEE_TYPE,FP.EFP_CDE_CURRENCY,FP.EFP_DTE_EFFECTIVE,ACP.APP_CDE_PORTFOLIO,ACP. APP_CDE_EXPEN SE,DEA.DEA_PID_DEAL,DEA.DEA_CDE_BRANCH

UNION ALL SELECT DEA.DEA_NME_DEAL DEAL_NAME,

' ' FACILITY_NAME,'FHAD' FEE_TYPE,G.GLE_CDE_CURRENCY CURRENCY,MAX (G. GLE_DTE_TRANS_EFF) DATE_FEE_RECEIVED,SUM (G. GLE_AMT_ENTRY) FEE_AMT,G.GLE_CDE_PORTFOLIO PORTFOLIO,G. GLE_CDE_EXPENSE EXPENSE_CODE,DEA.DEA_PID_DEAL DEA_PID_DEAL,DEA.DEA_CDE_BRANCH BRANCHCODE

FROM VLS_GL_ENTRY G JOIN VLS_DEAL DEA ON G. GLE_PID_DEAL = DEA.DEA_PID_DEAL

WHERE G. GLE_CDE_GL_SHTNAME = 'MISK'AND G.GLE_CDE_ACCTG_OPER = 'OR'AND G.GLE_TXT_DESCRIPTON <> 'Deprication'

GROUP BY DEA.DEA_NME_DEAL,G.GLE_CDE_CURRENCY,G.GLE_CDE_PORTFOLIO,G. GLE_CDE_EXPENSE,DEA.DEA_PID_DEAL,DEA.DEA_CDE_BRANCH) OTF

ORDER BY 1

Figure 1.4 - More complex query

Page 18: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 10

This complex query was formatted in the TOAD 11.0.0.116 version. Three queries are

represented: two inner queries linked through a UNION statement, and an outer query that pulls

from these. In the first inner query appearing above the UNION statement, four tables are joined

using ASCII syntax, and after the UNION statement, the second inner query joins two tables

with similar syntax. No filtering conditions exist on the first inner query, yet there are three filter

conditions on the second inner query: two equijoins, and one not equal condition. The explain

plan of this query is show in Figure 1.5, and the cost is highlighted for illustration purposes.

PlanB ^ OCLCCT STATEMENT ALL_ROWS

Cost: 324,607JBytes: 25,908,788 Cardinality: 439,13215 E ? \>W\ URique

Cost: 318,300 Bytes: 25,908,788 Cardinality: 439,132 14 l^ -^ jV IE W APPLERO.

Cost: 311,994 Bytes: 25,908,788 Cardinality: 439,13213 [El <§> UNION-ALL

8 0 t HASH GROUP BYCost: 1,524 Bytes: 2,441,892 Cardinality: 13,796

7 0 # HASH JOINCost: 983 Bytes: 2,441,892 Cardinality: 13,796

5 3 # HASH JOINCost: 341 Bytes: 1,688,334 Cardinality: 11,974

1 i...D TABLE ACCESS FULL TABLE LOANIQP, TLS_DEALj Cost: 74 Bytes: 278,208 Cardinality: 4,968

4 B # H A S H JOINCost: 266 Bytes: 1,017,705 Cardinality: 11,973

2 1...0* INDEX FAST FULL SCAN INDEX LOANIQP, XFACNN08| Cost: 18 Bytes: 275,000 Cardinality: 6,875

3 I...0 TABLE ACCESS FULL TABLE LOANIQP.TLS_EVENT_FEE_PYMTCost: 247 Bytes: 1,358,235 Cardinality: 30,183

..0* INDEX FAST FULL SCAN INDEX LOANIQP.XAPPNN04Cost: 636 Bytes: 9,752,184 Cardinality: 270,894

12 B £ HASH GROUP BYCost: 310,469 Bytes: 58,696,368 Cardinality: 425,336

11 0 # HASH JOINCost: 297,356 Bytes: 58,696,368 Cardinality: 425,336

...$ TABLE ACCESS FULL TABLE LOANIQP.TLS_DEALCost: 74 Bytes: 278,208 Cardinality: 4,968

10 1...0 TABLE ACCESS FULL TABLE LOANIQP. TLS_GL_ENTRYCost: 297,274 Bytes: 34,877,552 Cardinality: 425,336

Figure 1.5 -- Using EP for a more complex query

Page 19: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 11

The top line in this figure contains a red oval which highlights the overall query cost of

324,607. Developers often rearrange queries to manipulate EP output produced by the CBO

which can change cost estimate values. This is what is meant by “streamlining” query

performance.

SELECT DISTINCTOTF.DEA_PID_DEAL DEAL_PID, OTF.DEAL_NAME DEAL_NAME, OTF.BRANCHCODE

FROM ( SELECT /*+ FIRST_ROWS */ DEA.DEA_NME_DEAL DEAL_NAME, FAC.FAC_NME_FACILITY FACILITY_NAME,FP.EFP_CDE_FEE_TYPE FEE_TYPE, FP.EFP_CDE_CURRENCY CURRENCY, FP.EFP_DTE_EFFECTIVE DATE_FEE_RECEIVED,SUM (ACP.APP_AMT_BOOK) FEE_AMT,ACP.APP_CDE_PORTFOLIO PORTFOLIO,ACP. APP_CDE_EXPENSE EXPENSE_CODE,DEA.DEA_PID_DEAL DEA_PID_DEAL,DEA.DEA_CDE_BRANCH BRANCHCODE

FROM VLS_EVENT_FEE_PYMT FP JOIN VLS_DEAL DEA

ON DEA.DEA_PID_DEAL = FP.EFP_PID_DEAL JOIN VLS_FACILITY FAC

ON FAC.FAC_PID_FACILITY = FP.EFP_RID_OWNER JOIN VLS_ACR_CYC_PMT_PT ACP

ON FP.EFP_RID_FEE_PAYMNT = ACP.APP_RID_ACR_CY_PMT GROUP BY DEA.DEA_NME_DEAL,

FAC.FAC_NME_FACILITY, FP.EFP_CDE_FEE_TYPE,FP.EFP_CDE_CURRENCY, FP.EFP_DTE_EFFECTIVE,ACP.APP_CDE_PORTFOLIO, ACP.APP_CDE_EXPENSE,DEA.DEA_PID_DEAL, DEA.DEA_CDE_BRANCH

' ' FACILITY_NAME, 'FHAD' FEE_TYPE, G.GLE_CDE_CURRENCY CURRENCY, MAX (G. GLE_DTE_TRANS_EFF) DATE_FEE_RECEIVED,SUM (G.GLE_AMT_ENTRY) FEE_AMT, G.GLE_CDE_PORTFOLIO PORTFOLIO,G. GLE_CDE_EXPENSE EXPENSE_CODE, DEA.DEA_PID_DEAL DEA_PID_DEAL, DEA.DEA_CDE_BRANCH BRANCHCODE

FROM VLS_GL_ENTRY G JOIN VLS_DEAL DEA ON G. GLE_PID_DEAL = DEA.DEA_PID_DEAL

WHERE G. GLE_CDE_GL_SHTNAME = 'MISK'AND G. GLE_CDE_ACCTG_OPER = 'OR'AND G.GLE_TXT_DESCRIPTON <> 'Deprication'

GROUP BY DEA.DEA_NME_DEAL, G.GLE_CDE_CURRENCY,G. GLE_CDE_PORTFOLIO, G. GLE_CDE_EXPENSE,DEA.DEA_PID_DEAL, DEA.DEA_CDE_BRANCH) OTF

ORDER BY 1

Figure 1.6 -- Modified complex query

Page 20: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 12

Figure 1.6 shows the same query as Figure 1.4, but in this case, an “ORDERED” hint has

been placed in the second inner select. This change is circled in red to illustrate. This small

change is similar to what a developer would do when manipulating the CBO estimates. The

resultant EP in Figure 1.7 does show a slight modification with a different CBO estimate.

Plan

B-JPf e S CLCCT GTfttEfto s t: 326,5281b

[5 *>um URIC

MENT HINT: FIRST_ROWSBytes: 25,908,788 Cardinality: 439,132

i s a " -- b u m uniqueCost: 320,222 Bytes: 25,908,788 Cardinality: 439,132

14 .. ^jVIEW APPLERO.Cost: 313,915 Bytes: 25,908,788 Cardinality: 439,132

13 &<§> UNION-ALL8 0 0 HASH GROUP BY

Cost: 1,524 Bytes: 2,441,892 Cardinality: 13,7967 0 # HASH JOIN

Cost: 983 Bytes: 2,441,892 Cardinality: 13,7965 # H A S H JOIN

Cost: 341 Bytes: 1,688,334 Cardinality: 11,9741 I...^ TABLE ACCESS FULL TABLE LOANIQP.TLS_DEAL

Cost: 74 Bytes: 278,208 Cardinality: 4,9684 # H A S H JOIN

Cost: 266 Bytes: 1,017,705 Cardinality: 11,973 H* INDEX FAST FULL SCAN INDEX LOANIQP.XFACNN08

Cost: 18 Bytes: 275,000 Cardinality: 6,875& TABLE ACCESS FULL TABLE LOANIQP.TLS_EVENT_FEE_PYMT

Cost: 247 Bytes: 1,358,235 Cardinality: 30,183 0 * INDEX FAST FULL SCAN INDEX LOANIQP.XAPPNN04

Cost: 636 Bytes: 9,752,184 Cardinality: 270,894 HASH GROUP BYCost: 312,391 Bytes: 58,696,368 Cardinality: 425,336

11 # H A S H JOINCost: 299,278 Bytes: 58,696,368 Cardinality: 425,336- S t a b l e a c c e s s f u ll t a b l e lo a n iq p . t ls _ g l_ e n t r y

Cost: 297,274 Bytes: 34,877,552 Cardinality: 425,336 £ TABLE ACCESS FULL TABLE LOANIQP. TLS_DEAL

Cost: 74 Bytes: 278,208 Cardinality: 4,968

12

10

Figure 1.7 -- Modified query EP

A small change to the original SQL statement in Figure 1.6 produced a CBO estimate

difference. In Figure 1.5, the estimate was 324,607. However, in Figure 1.7, the new estimate

was 326,528. From these numbers, it would be reasonable to assume that the query with the

smaller cost, namely that shown in figure 1.5, would run faster if both were executed.

Page 21: Oracle Cost Based Optimizer Correlations

Research Problem

In an ideal situation, a developer may create a query that performs according to specific

expectations inside a development environment: the execution time is within an acceptable

tolerance, and the cost estimate is stable and optimized. Then, when that query is moved to a

production environment that includes similar hardware, software, configuration settings and data,

it would be expected to perform consistently. For example, if a query incurred the cost of 5000

in development for a specific execution plan, and then if that query is moved to a similar

production environment, it would be expected to incur a cost of 5000 and perform in the same

amount of time as it did in development.

It would also be expected that consistent execution speeds between development and

production environments would aid during post-production support. Through the EP, the

developer could know the execution cost of all queries before they are executed. By preserving

the execution plans of those queries in production, developers would have a way to predict

expected performance (Lewis, 2011). If execution speeds began to decline but the CBO

execution plans remained consistent, it would be a signal that performance tuning was necessary

(Oracle, 2005).

This idea of plan cost consistency having similar execution performance can also be

applied to several queries in the same environment be that development or production. This is

slightly different than the idea of moving a query and execution plan from one environment to

another and expecting the same execution speed -- this is between two completely different

queries in the same RDBMS that have the same CBO cost, but completely different execution

plans. For example, if two queries in the same environment each have the same cost of 4500, it

is reasonable to assume that because they both use the exact same CBO, they would perform in

ORACLE CBO CORRELATIONS 13

Page 22: Oracle Cost Based Optimizer Correlations

the same amount of time. Lee and Zait (2008) supported this assessment as they explained that

"Cost is a proxy for performance; the lower the cost, the better the performance (e.g. response

time) of the query is expected to be” (p. 1368). If the cost for both queries is 4500 and is indeed

a consistent proxy for performance, then having exactly the same "expense" would suggest the

same execution time.

Lewis (2006b) noted that the CBO cost can be linked to execution time and that

consistent costs between multiple queries should execute in similar times. Speaking about the

Oracle system, he indicated that "cost is time," meaning that from Oracle 10g forward, a specific

column exists in the database, associated with the CBO optimization process, that shows the

estimated time to completion. This column is directly related to and proportional with the CBO

cost estimates for the query.

Significance

Despite the tremendous efforts made to produce fast and consistent query results, this

researcher, among others, has encountered situations where a single query that has more than one

possible execution plan performs counter intuitively. In one situation, a plan with a lower cost

had a higher execution time than the same query being run with a higher execution cost. This is

inconsistent with the data the CBO is supposed to provide--lower cost queries are defined as

more efficient (Oracle, 2011), In another situation, this researcher encountered different queries

with the same cost estimates that had significantly different execution times--one query running

as much as 2000% slower when compared to the first.

Developers and researches have encountered similar concerns across a multitude of

environments which included different hardware platforms, software packages, and

configuration settings. For example, developers working for a large aerospace company have

ORACLE CBO CORRELATIONS 14

Page 23: Oracle Cost Based Optimizer Correlations

indicated that query execution speeds are inconsistently correlated to CBO estimates: just

because one query has a lower cost estimate, it is common for that query to take significantly

more time when compared to different queries that have higher CBO estimates (P. Hardy,

personal communication, July 15, 2010).

These types of inconsistencies raise concerns as to whether the CBO estimates are of any

value during development, or if there are other things happening which introduce discrepancies

between CBO costs and query speed. Kyte (2000) explained that a CBO query cost estimate was

an artificial number "arrived at to select a query given a certain environment” (p. 1), and that just

because one query had a lower cost, there is no way to compare this to another with a higher cost

and see them run as expected. Lewis (2011) countered this argument when he wrote: “The cost

of a query represents the optimizer’s estimate of how long it will take that query to run—so it is

perfectly valid to compare the cost of two queries to see which one the optimizer thinks will be

faster” (p. 1). It is clear a disagreement exists as to the purpose, accuracy, and use of the CBO

tools. Surprisingly, an endorsement was provided by Kyte in the forwarding section of the book

“Cost Based Optimizer Fundamentals” authored by Lewis (2006) in which Lewis indicated

clearly that he believed cost should and eventually will reflect a time estimate.

Research Questions and Purpose

The research questions that drive this study are as follows: first, can correlations between

CBO estimates and execution speeds be determined; second, can those correlations provide

confident predictions for further queries based on CBO estimates; and third, are Lewis and Kyte

correct, or are they both wrong. Stated another way, the purpose of this study is to provide a

determination of whether developers can use CBO estimates for query tuning and execution

speed prediction. If correlations are possible but provide no predictive confidence as to query

ORACLE CBO CORRELATIONS 15

Page 24: Oracle Cost Based Optimizer Correlations

speed, then developers must still time each query to judge speeds, regardless of the EP cost

estimate. Whether this timing step is necessary is addressed in this document, and that

determination will be used to address the dilemma between Lewis and Kyte.

Regarding the Research Method

To perform this research, a three phased quantitative approach was adopted which

investigated the CBO maturity and also provided a framework for an experiment that empirically

looked at query speeds and CBO estimates. The first phase documented trade literature on Oracle

RDBMS, with special emphasis to speed enhancement. In a chronological fashion, industry

trade documentation was reviewed to show trends have been established up through the 11g

offerings where speed enhancements consistently show innovation that directly affect the

accuracy and efficiency of the CBO. Lewis (2006) wrote: “One day, perhaps within the next

couple of minor releases, you will be able to look at the cost of a query and convert it confidently

into an approximate run time, because the optimizer will have produced exactly the right

execution plan for your data, on that machine, at that precise moment in time” (p. 3).

Considering that Oracle 11g release 2 contains several minor release upgrades as well as a major

version change from the Oracle 10g release 2 version available when Lewis wrote this (Portugal,

2009), arrival at the point Lewis mentioned might have already occurred.

With the foundational of Oracle technology in place, the second phase reviewed the

academic literature related to CBO time correlations. Although trade literature on RDBMS is

vast, the few academic studies that could be found suggest that CBO estimates are moving

toward time based correlations, particularly related to progress predictions that involve feedback

looping tools that are very close to actual time correlations.

ORACLE CBO CORRELATIONS 16

Page 25: Oracle Cost Based Optimizer Correlations

In the third phase, this researcher collected CBO estimates and execution speeds from an

Oracle 11g Release 2 database using a variety of techniques to manipulate the CBO plan choices.

This researcher used data finding, and linear regression techniques in three specific areas:

1. Queries were compared against themselves in the same RDBMS but with differing cost

estimates, and whether those with a lower cost (more efficient) execute consistently faster

than those with a higher cost (less efficient) was investigated.

2. Linear regression analysis was applied to the same queries with multiple execution plans

and CBO estimates, and correlation confidence was computed between cost estimates and

execution speeds.

3. Linear regression analysis was applied to a large sampling of queries, correlating their

cost with execution speeds, and correlation confidence was computed.

Summary

This chapter introduced the concept of query optimization through the CBO, and

explained that this tool is utilized for all SQL queries processed in RDBMS, the goal being the

selection of an optimal execution pathway. Developers often utilize the EP, a tool provided by

Oracle, as a way to streamline queries. The EP provides a cost estimate of the plan it selects

with the understanding that lower cost plans are expected to perform faster than those with a

higher cost. Experience has shown, however, that this is not always the case. Two general trains

of thought exist with regards to the use of the CBO: one by Kyte (2000) who indicated the cost

estimate is an arbitrary number that has limited relevance to fast or predictable queries, and

Lewis (2006) who believed that the CBO estimate would someday become a clear indication of

fast and predictable queries. Lewis (2011) maintained this belief years later, still contending that

someday CBO estimates will reflect speed predictability. The next chapter presents a trade

ORACLE CBO CORRELATIONS 17

Page 26: Oracle Cost Based Optimizer Correlations

literature review showing that the Oracle CBO has matured considerably since Lewis made his

original assertions in 2006. It lays the foundation for the academic literature review in Chapter

3.

ORACLE CBO CORRELATIONS 18

Page 27: Oracle Cost Based Optimizer Correlations

Chapter 2 -- CBO as Speed Promotes Predictability

Chapter 1 introduced the CBO estimate dilemma and how it relates to development

problems when working to streamline query statements. It is clear that generational changes

with the Oracle RDBMS have always maintained the importance of query speed (Antoshenkov

& Ziauddin, 1996; Colgan, 2008). Though query speed has been important, less emphasis

appears to have been placed on query speed predictability. As time has passed, however, market

influences have driven RDBMS innovation (Carter, 2007; Davies, Shaffer, & L’Her, 2009), and

the CBO has received considerable attention (Colgan, 2010). Lewis (2006) recognized this

innovative and refining process and believed that as estimates became more reliable in future

RDBMS releases, developers would one day be able to correlate the CBO cost to actual

execution time.

Based on existing trade press, this chapter examines the historical trends of Oracle

RDBMS innovations that directly affected CBO accuracy. The formula for the CBO has

changed from Rule Based Optimization to the current CBO, and CBO accuracy has been

increased as awareness of data distribution has been built into the formulation. Additional

modifications including hardware awareness have also been introduced to improve CBO

estimate accuracies. The significance of this chapter revolves around setting a foundation for

understanding the academic articles presented in Chapter 3, and the research methodology in

Chapter 4.

Speed and CBO Accuracy Related to Time -- An Introduction

Historically, default optimization in Oracle databases was handled by the Rule Based

Optimizer (RBO) (Colgan, 2011a). The RBO approach used heuristic rules to create execution

plans for SQL queries. Though it provided significant improvement in some situations, the RBO

ORACLE CBO CORRELATIONS 19

Page 28: Oracle Cost Based Optimizer Correlations

did not take into account data distribution, and could actually slow query execution in some

circumstances. For example, suppose a table had a column that could only accept two values: 'Y'

or 'N'. If this column were indexed, the RBO would utilize that index arbitrarily if a query were

to incorporate this column in the WHERE clause. Now suppose the column contained 'Y' in

99% percent of the circumstances. In this situation, additional I/O would be required by the

query filtering on that 'Y' since for every lookup in the index, an additional lookup would then be

required to trace the index back to the table source for the original row values in question. Had

the query simply scanned the table and omitted the index in the first place, I/O could have been

minimized, and the query would have probably performed faster. This type of concern is one of

the major problems associated with using heuristically driven optimization: it doesn’t take into

account the distribution of the actual data (Ahmed, Lee, Witkowski, Das, Su & Zait. 2006).

To improve performance, Oracle developed the CBO which was first released with

Oracle 7 in 1992. One advantage the CBO had over the RBO was that it took data distribution

into account. With the release of Oracle 9i, the Oracle Corporation urged users to move away

from the RBO and start using the CBO for all query optimization. Oracle made the CBO the

default optimizer in its 10g offerings in 2003. Today, the RBO exists for backward compatibility

reasons only (Colgan, 2008).

Though not dominated by heuristic logic as the RBO was, the CBO still used heuristic

approaches in the Oracle 10g and 11g offerings (Colgan, 2008). Ahmed, Lee, Witkowski, Das,

Su and Zait (2006) found that in specific situations, run time could actually be improved 387%

when using heuristics only in special cases called “unnesting transformations” (p. 1036).

Additional findings showed that predicate pushdown approaches improved by 23% and

placements in group-by statements improved by 21% over the CBO choices. However, these

ORACLE CBO CORRELATIONS 20

Page 29: Oracle Cost Based Optimizer Correlations

researchers made it clear that in overall performance comparisons, the CBO "outperformed

heuristic-based transformations by 20%" (p. 1036). It was because of findings like these that

Oracle permanently moved toward the CBO as its default.

CBO Begins to Mature

Researchers have noted the overall goal of CBO was an increase in accuracy during

optimization activities, thus increasing query speed ( Lejeune, Buch, & Palmer, 2003; Colgan,

2011a). The CBO depends on a specific formula for calculating costs, and those formulas have

changed as the CBO has undergone generational refinement.

Figure 2.1 shows some of the differences to CBO as Oracle moved from the 9i to 10g

offerings.

ORACLE CBO CORRELATIONS 21

Figure 2.1 -- High level CBO differences

The changes to CBO have not gone unnoticed to the academic community. Fan, Jiang,

Lumpkin and Sancheti (2003) explained that the 9i RDBMS offering used single block reads as

its costing model, “largely [ignoring] CPU costs or [using] imprecise constants to estimate it" (p.

9). This led to inaccuracies in estimates where high CPU cycle counts would be necessary for

Page 30: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 22

such requirements as processing functions contained in the queries themselves. Furthermore,

data required to supply query results would either be contained on disk or in memory, and

memory data (called buffer cache data) would not be factored into CBO estimates accurately.

This resulted in inaccuracies as retrieving data from memory is significantly faster than

retrieving data from disk storage.

The 10g offering corrected some of these 9i inaccuracies by expanding the CBO model to

include CPU cycles. The idea of “time” was also introduced as a cost unit of measurement (Fan,

Jiang, Lumpkin & Sancheti, 2003). This is a significant change as it began to link the idea of

CBO estimates with query speed predictions (Lewis, 2006). Also, the time factor more

accurately took into account the speed differences between data retrieved from disk as opposed

to memory, all linking CBO estimates more closely with overall performance, and ultimately

with response time itself (Lewis, 2006).

CBO Formula for Oracle 10g and 11g

Lewis (2006, p. 4) provided the current formula the CBO uses for determining cost:

Cost# SRds * sreadtim + # MRds * mreadtim + #CPUCycles

cpuspeedsreadtim

Figure 2.2 -- CBO Formula

The explanation of the variables is as follows:

• "#SRds = number of single block reads

• #MRds = number of multi block reads

Page 31: Oracle Cost Based Optimizer Correlations

• #CPUCycles = number of CPU Cycles

• sreadtim = single block read time in milliseconds

• mreadtim = multi block read time in milliseconds

• cpuspeed = CPU cycles per second" (p. 4)

The sreadtim, mreadtim, and cpuspeed are hardware dependent, and require specific

information gathering for their calculation. In explaining how Oracle RDBMS calculates these

values, Burleson (2007) noted that the DBMS_STATS.GATHER_SYSTEM_STATS procedure

is typically run during a normal workload day on the database instance in question. As work

progresses, system sampling occurs where averages are calculated for each of these values, and

often stored internally in the system. Oracle recommends that this system gathering activity

happen preferably during a peak workload period, and these statistics should be gathered only

one time (Colgan, 2008). If a hardware change occurs -- for example, data is moved from

internal storage to a SAN solution-then this data gathering activity should be repeated (Colgan,

2008).

In situations where workload statistics are unavailable, Oracle provided a way for

gathering non workload statistics; but as Burleson (2007) observed: “the optimizer uses the

workload statistics in hopes of getting the 'best' execution plan for the SQL” (p. 1). The current

values for these statistics can be extracted from the system using the query in Figure 2.3:

SELECT pname "Statistic", pval1 "Value Set"

FROM sys.aux_stats$;

ORACLE CBO CORRELATIONS 23

Figure 2.3 -- System Statistics SQL

Page 32: Oracle Cost Based Optimizer Correlations

It should be noted that having inaccurate system statistics will cause the CBO to

malfunction. Though it will still produce a cost for each query it processes, that cost will have

little reflection on actual results (Colgan, 2011b). It should also be noted that the changes

mentioned above, though introduced in earlier Oracle release versions, have perpetuated forward

into the current Oracle 11g offerings. The CBO formulas have remained unchanged since Oracle

10g, and the procedures for gathering system statistics still remain in force (Oracle, 2011)

Cardinality

Researchers have universally asserted that cardinality is the single most important factor

for CBO accuracy (Lewis, 2006; Galindo-Legaria, Joshi, Waas, & Wu, 2003; Kyte, 2009).

Colgan (2011b) made it clear that the accuracy of cardinality is fundamental to everything the

CBO does, and since every SQL query is affected by the CBO (Yaboug and Gongloor, 2007),

accurate cardinality information has a greater effect on CBO accuracy and speed than any other

single factor. This fundamental and even foundational aspect of cardinality means that many of

the most important and innovative improvements made to the Oracle RDBMS during

generational changes between 9i to 10g, and particularly from 10g to 11g are associated with

maintaining clear statistical information relative to the cardinality of the data (Colgan, 2011b).

As noted in Figure 2.2 , the CBO uses the number of single block reads, multi block reads, and

CPU cycle counts in its calculation. For each query the CBO must analyze, those numbers come

from the cardinality of the underlying data.

What Is Cardinality?

Cardinality in a database system refers to the number of values inside a column that the

optimizer expects to obtain for a given operation (Kyte, 2005). According to Date (2003),

databases are made up of rows and columns, and each column, composed of heterogeneous data,

ORACLE CBO CORRELATIONS 24

Page 33: Oracle Cost Based Optimizer Correlations

may possess multiple values. Through a system of statistical gathering (Colgan, 2011c), the

optimizer looks at the data in question, and depending on the operation in question, will calculate

the cardinality accordingly. This cardinality is directly factored into the CBO estimates.

Lewis (2006) provided an example of this cardinality concept. He explained that during

a conference, he "managed to draw an audience of 1,200 people. How many of them do you

think were born in December [he asks]? If you've decided that the answer is about 100, then

you've just performed a perfect imitation of the CBO" (p. 41). This conclusion, however, rested

on the following assumptions which he pointed out:

• 12 months exist in the year

• Birth dates are assumed evenly distributed through a given year

• One-twelfth would therefore be born during December

• Since if there are 1,200 people, 100 are expected to be born in December.

In situations where data is not evenly distributed, the CBO can make mistakes because

cardinality numbers can become skewed. This concern, addressed later in this paper, is

overcome with the use of database histograms (Lewis 2006).

How Cardinality is Discovered (Statistics)

Cardinality on database objects is possible through statistics gathering (Oracle, 2005).

According to the Oracle Database Performance Tuning Guide 10g Release 2 (10.2):

“Optimizer statistics are a collection of data that describe more details about the database

and the objects in the database. These statistics are used by the query optimizer to choose

the best execution plan for each SQL statement. Optimizer statistics include the

following:

• Table statistics

ORACLE CBO CORRELATIONS 25

Page 34: Oracle Cost Based Optimizer Correlations

o Number of rows

o Number of blocks

o Average row length

• Column statistics

o Number of distinct values (NDV) in column

o Number of nulls in column

o Data distribution (histogram)

• Index statistics

o Number of leaf blocks

o Levels

o Clustering factor

• System statistics

o I/O performance and utilization

o CPU performance and utilization” (p. 14-1)

Prior to Oracle 10g, statistics had to be gathered manually by the DBA, causing problems

for the CBO if forgotten or estimated incorrectly. Statistics were gathered automatically in

versions 10g and above through an automatic maintenance job that utilizes the

GATHER_STATS_JOB procedure (Oracle, 2005). As this maintenance job runs, if there are

missing statistics or if the underlying data that contributed to a statistical reading has changed

significantly (a situation called stale statistics), then these items are given priority during the next

maintenance window. Because of the importance of accurate statistics, it serves as an

innovative improvement for the RDBMS to automatically gather statistics as a default function.

ORACLE CBO CORRELATIONS 26

Page 35: Oracle Cost Based Optimizer Correlations

Focusing priority on situations where stale statistics hamper performance also supports the

importance of cardinality accuracy.

Cardinality Concerns

Clearly, without accurate cardinality, the CBO is left to perform estimations that have

little if any relevance to actual performance concerns. To avoid this, two specific items were

introduced by Oracle to address problems that might arise: dynamic sampling and histograms.

Dynamic Sampling

Dynamic sampling, introduced in Oracle 9i release 2 and maintained and improved in

more recent versions (Colgan, 2010), is a tool used by the CBO "to improve server performance

by determining more accurate estimates for predicate selectivity and statistics for tables and

indexes" (Oracle, 2005, p. 298). When underlying data have missing statistics, have stale

statistics, or have statistics that for various reasons might lead to significant errors in estimation,

dynamic sampling can be used. This feature is controlled by the

OPTIMIZER_DYNAMIC_SAMPLING parameter, and can be suppressed if wanted.

Oracle (2005) has indicated situations where dynamic sampling should not be used. For

example: "[when] a query normally completes quickly (in less than a few seconds), you will not

want to incur the cost of dynamic sampling” (p. 298). The reference for "cost" in this context

means the time that the optimizer will spend performing the dynamic sampling itself, not the

"cost" value of the CBO estimate itself. Oracle continued: "however, dynamic sampling can be

beneficial under any of the following conditions:

• A better plan can be found using dynamic sampling.

• The sampling time is a small fraction of total execution time for the query.

• The query will be executed many times” (p. 298).

ORACLE CBO CORRELATIONS 27

Page 36: Oracle Cost Based Optimizer Correlations

Histograms

Lewis (2006) explained that data skewing can throw the CBO off target because the

optimizer often looks for normal distribution patterns in the data. Drawing from the example he

gave above, if the majority of the people in his 1,200 group were born in January instead of

December, then the cardinality estimates would be completely wrong. Because of this concern,

Oracle's RDBMS utilize histograms on the database columns.

An Oracle histogram is a statistical representation of data skewing present in a table or

index, preserved in the RDBMS for access by the CBO, and kept current automatically by the

RDBMS when the CBO recognizes such skewing exist (Lewis, 2006; Colgan, 2011b). There are

two types of histograms maintained by the Oracle system: height-balanced and frequency.

In the height-balanced histogram, "the column values [of a table or index] are divided

into bands so that each band contains approximately the same number of rows" (Oracle, 2005, p.

301). This data separation into bands provides information of where endpoints fall when doing

range scans. The frequency histogram places "each column value.. .[of a table or index into].. .a

single bucket of this histogram. Each bucket contains the number of occurrences of that single

value" (Oracle, 2005, p. 302).

Both of these histograms are created automatically as the Oracle system requires, and

each have internal Oracle views that allow their perusal. This automatic creation of histograms

is an additional example of the RDBMS system maturing as time passes, and is directly related

to CBO accuracy improvement.

9i, 10g, and 11g Statistic Enhancements

Colgan (2008) explained that between the 9i and 10g products, dynamic sampling was

enhanced to provide greater system stability in the advent of poor statistics. For example, the

ORACLE CBO CORRELATIONS 28

Page 37: Oracle Cost Based Optimizer Correlations

10g offering provided an auto_sample_size function that determined if sampling smaller sets was

adequate, and if so, what the sampling size should be. Because statistic gathering itself can tax a

system's resources, parameters have been included in the DBMS_STATS package to determine

if index statistics need to be collected at all. The 10g offering also allowed for saving statistics.

If, for some reason, CBO estimates change significantly after statistics gathering and plan

stability deteriorates, it is possible to restore the statistics from a previously saved state and

restore CBO plan selection accordingly.

Colgan (2010) further explained that in the 11g offerings, additional sampling

enhancements, both at the dynamic level as well as using the DBMS_STATS package, were

provided. The DBMS_STATS package now allows for statistics to be copied between tables,

and will also capture extended statistics which includes data correlated between columns in the

same table. A new sampling algorithm was created to provide more accurate sampling.

Furthermore, CBO changes have been made to the group-by placement, allowing the optimizer

to perform group-by functions prior to performing some joins. These are all significant changes

as the enhancements to statistical information, including improved algorithms, makes the CBO

even more accurate in its assessments. This accuracy was what Lewis (2006) spoke about when

he projected that someday the CBO estimates would be accurate enough to correlate to execution

time.

Indexes -- A Significant Push for Speed

Oracle indexes were created as a way to significantly improve the speed of Oracle SQL

queries (Burleson, n.d). As disk storage costs have decreased, Oracle has continued to include

new and innovative indexing algorithms in its offerings. However, Leishman (2007) indicated

ORACLE CBO CORRELATIONS 29

Page 38: Oracle Cost Based Optimizer Correlations

that Oracle really only has two basic index patterns, b-tree and bitmap. All other indexes are

based off of these models. These two index types are further identified in a later section.

What an Index Is (Blocks and Avoiding Waste)

Leishman (2007) explained that all Oracle data is stored on computer disk in a small unit

called a “block”, and when read, the entire block is read during each oracle I/O operation. This

block may come in various sizes, “but is usually one of 4kb, 8kb, 16kb, or 32kb” (p. 1). Because

data rows in each block are usually smaller than a single block, as data is read, the Oracle system

will gather more information than is usually necessary. The relevant data will be contained

somewhere within. Once a relevant block is retrieved, Oracle must then search inside the block’s

data for the relevant rows to satisfy a query. This is a time consuming process. If a faster way to

find the block containing relevant data were possible, and if the address in that block of the

relevant data were known, it would greatly improve the overall speed with which relevant data

could be found. This is the purpose of indexing.

B-TREE

Balanced-tree (b-tree) index structures are the most common index type used in computer

science and Oracle. Leishman (2007) explained that in a RDBMS system, b-tree structures are

not based on data rows, they are based on blocks and the column values those blocks hold. Each

b-tree node contains a column value for a table and points to a lower branch that contains more

precise values. As one moves through the nodes and arrives at a leaf node, the precise block

address of the row being searched, as well as the location in the block where that row is located

can be found. This final physical address is called a ROWID.

Leishman (2007, p. 1) provided an example of how a b-tree works. If one was looking

for the name Galileo in a b-tree telephone book, the following steps would be followed:

ORACLE CBO CORRELATIONS 30

Page 39: Oracle Cost Based Optimizer Correlations

1. You read page 1 and discover that “page 6 starts with Fermat and that page 7 starts

with Hawking.”

2. You read page 6 and learn that “page 350 starts with Fysche and that page 351 starts

with Garibaldi.”

3. You read page 350 and find this is a “leaf block.” Here you find Galileo’s address

(this would be the block address), and his phone number (this is where in the block he

is found).

Because this system allowed multiple branch blocks for each choice, it is possible to

“find specific row[s] in a million row table. In reality, index blocks often fit 100 or more rows,

so b-trees are typically quite shallow” (Leishman, 2007, p. 1).

It should be noted that b-tree indexing is the primary form of indexing in Oracle RDBMS

systems (Burleson, 2010), but that indexing is not limited to storing single column values:

multiple values can be stored, something called a “compound index.” The value used for sorting

purposes in the index is called the leading edge (Oracle, 2005). In situations where all of the

values required to satisfy a query are found in a compound index, the CBO might choose to

satisfy the query by pulling values exclusively from the index. This approach is called a “fast

full scan” and is another example of some of the innovative ideas Oracle utilizes through the

CBO to improve performance efficiency.

Situations exist where b-tree structures do not perform well. One of these happens if the

underlying table has low-cardinality columns—meaning “columns with less than 200 distinct

values” (Burleson, 2010, p. 1). For example, a table called EMPLOYEES contains a column

GENDER. Each employee will be either male or female, but if the table has a significant

number of rows, a b-tree index would be of little help when it only has at most two branch

ORACLE CBO CORRELATIONS 31

Page 40: Oracle Cost Based Optimizer Correlations

blocks. B-tree indexes are also not able to support SQL queries using Oracle’s built-in functions

(Burleson, 2010). In each of these situations, other forms of indexing are necessary: bitmap and

functional based.

Bitmap Index

Bitmap indexes address the concern of low-cardinality in the underlying data. A bitmap

index is a two-dimensional array where each row in the table being indexed is represented by a

single bit in a column of the index array (Burleson, 2010). In the example above where

GENDER is being tracked, a bitmap index would be ideal.

Performing searches in bitmap indexes are fast. Burleson (2010) provided an example of

a car manufacturer where car color, make and year were all indexed in a bitmap fashion. Using a

specialized bitmap optimizer method and a special merge routine, he said: “Oracle can provide

sub-second response times when working against multiple low-cardinality columns” (p. 1), even

if there are millions of rows in the underlying table in question.

Function Based Index

In the Oracle RDBMS, when a function is used in the WHERE clause of a SQL

statement, the CBO is unable to utilize any associated b-tree indexes (Burleson, 2010). This

means that the underlying table must be scanned, and each candidate value of the column in

question must have the same function applied and tested for a match against the original query.

In large tables in particular, this would be a very costly process as it requires a full table scan

(Burleson, 2010). To address this concern, function based indexes were created.

A function based index is a b-tree index that uses the function results of the index column

as its search value. The function based index allows the CBO to search matching index values

when a matching function is applied to a SQL query in a WHERE clause. This mechanism

ORACLE CBO CORRELATIONS 32

Page 41: Oracle Cost Based Optimizer Correlations

provides the advantage of fast queries when foresight allows for proper index creation based on

known functions.

Tables, Indexes, and Partitions

Dealing with RDBMS systems that are large, such as the petabyte examples discussed in

Chapter 1, has proven challenging, not only with regards to storage considerations, but also

related to data retrieval speeds when queries performing selections on tables with a large number

of rows are not adequately indexed. Oracle Partitioning, introduced in 1997 with Oracle 9i, was

designed to improve performance while minimizing I/O considerations (Burleson, 2012).

An Oracle partition is simply a means of taking a large table and perhaps its associated

indexes, and splitting it into smaller tables that act independently as though they are different

tables all together. These partitions can be stored in different tablespaces, for example, and if a

tablespace is taken offline, the remaining portions of the partitioned table remain accessible to

the rest of the system. However, when necessary, the partitions can all be logically combined

into a single table or index and accessed by the SQL engine as though they were a single unit.

This is one of the powers of Oracle partitioning, a divide and concur approach (Burleson, 2012).

Burleson (2012) discussed the partitioning options that were introduced in Oracle 9i as

follows:

• "Range Partitioning -- Used when there are logical ranges of data. Possible

usage: dates, part numbers, and serial numbers.

• Hash Partitioning -- Used to spread data evenly over partitions. Possible usage:

data has no logical groupings.

• List Partitioning -- Used to list together unrelated data into partitions. Possible

usage: a number of states list partitioned into a region.

ORACLE CBO CORRELATIONS 33

Page 42: Oracle Cost Based Optimizer Correlations

• Composite Range-Hash Partitioning -- Used to range partition first, then spread

data into hash partitions. Possible usage: range partition by date of birth, then

hash partition by name; store the results into the hash partitions.

• Composite Range-List Partitioning -- Used to range partition first, then spread

data into list partitions. Possible usage: range partition by date of birth then list

partition by state, then store the results into the list partitions" (p. 1).

Burleson (2012) explained that in Oracle 10g, the CBO became more “partition-aware,”

which allowed for partition pruning to enhance query speed throughput. This trend of partition

choice enhancement has continued into the Oracle 11g offering as Burleson explained:

• "Interval partitioning for tables [was introduced] -- This is a new 11g partitioning

scheme that automatically creates time-based partitions as new data is added...

• System Partitioning [was also introduced] -- The new system partitioning feature

in Oracle 11g provides you with the ability to implement and manage new

partitions without a specific partition key. Instead, each partition is mapped to a

tablespace using the extended partitioning syntax for system partitions. ... As

such, the main benefit of using the new system partitioning is for manageability

purposes” (p. 1).

Oracle (2007) explained in the VLDB and Partitioning Guide 11g Release 1 (11.1) that

indexes also benefit with manageability improvements, including availability, performance, and

scalability as they are subjected to partitioning schemes. Two particular types of partitioning are

available for indexes: global and local.

Global indexes are those that have independent partitioning keys from the associated

tables, and don't necessarily need to have the same number of partition segments. In this area,

ORACLE CBO CORRELATIONS 34

Page 43: Oracle Cost Based Optimizer Correlations

there are two specific offerings: range partitioned and hash partitioned. Oracle (2007) suggested

that this type of partition should be used for OLTP applications as it increases flexibility and

manageability if changes are needed, without disturbing the associated table structures.

Local indexes are "equi-partitioned" with their underlying tables, meaning "each partition

of a local index is associated with exactly one partition of the table" (Oracle, 2007, p. 2-12).

This structure enabled Oracle to automatically sync the table partition with its associated index,

and provided greater simplicity with their creation, yet at the cost of some of the flexibility

afforded the global indexes. Oracle (2007) suggested this type of partition should be used with

DSS applications as few changes are often warranted, and keeping things in sync is easier as data

is updated into the system, but generally not altered.

Table and index partitioning is a topic that shows a great deal of innovation. Lejeune,

Buch and Palmer (2003) argued that when partition pruning became available in Oracle 10g,

dramatic performance improvements became possible. Herodotou, Borisov, and Babu (2011)

gave examples of how multilevel partitioning, specifically applied to star schemas, allowed for

more precision in partition-wise pruning, and resulted in significant speed increases. Optimizers,

they argued, are generally "bottom up", something they indicated was very common in

traditional database systems, and something that made innovation easier to apply. These

examples, and the innovation they afford, show a trend in the Oracle RDBMS: not only is data

distribution being taken into account, but the CBO has become more aware of how the data is

structurally distributed, not just the cardinality of the data itself.

ORACLE CBO CORRELATIONS 35

Page 44: Oracle Cost Based Optimizer Correlations

Plan Optimization -- The Basics of Equivalent Queries and its Power

At this point, several database innovations have been presented to show that trends exist

with the Oracle system offerings that continue today (Colgan, 2011b). However, to investigate

CBO time correlations, the concept of equivalent queries must be introduced.

Chamberlin and Boyce (1974) argued that SQL is a declarative language, and data

extraction from the system, including optimization, relies primarily on the RDBMS system itself.

Those who write SQL, however, understand that it is often possible to write queries in multiple

ways while still "declaring" the same thing. The CBO does something similar, both with how

the query is written as well as how the underlying data is retrieved. This process, the

“declaration” of a query in multiple ways that will produce the exact same result set, is what is

meant by equivalent queries.

Looking at all the ways the data can be retrieved for use, the CBO has an enormous task

of calculating the cost values of multiple pathways to decide which choices would be more

efficient (Colgan, 2011a). Through this approach, the CBO is supposed to select an optimized

execution plan, hopefully ensuring maximum performance of the query in question. Examples

of both equivalent queries and data retrieval are presented here to make this concept more clear.

Equivalent Queries -- An Example

Figure 2.4 shows two tables: CUSTOMER and ACCOUNT. If the

customer.account_status field contains only one element of the pair (ACTIVE, INACTIVE), and

the account.rep_stat field contains only one element of the pair (CURRENT, TERMINATED),

then Figure 2.4 shows two queries that are functionally equivalent:

ORACLE CBO CORRELATIONS 36

Page 45: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 37

SELECT a.customer_name, SELECT a.customer_name,a.custoemr_address, a.customer_address,b.account_rep_id, b.account_rep_id,b.account_rep_name b.account_rep_name

FROM customer a JOIN account b FROM customer a JOIN account bON (a.cust_id = b.cust_id) ON (a.cust_id = b.cust_id)

WHERE a.account_status = ‘ACTIVE’ WHERE a.accout status <> ‘INACTIVE’AND b.rep stats <> ‘TERMINATED’ AND b.rep_stat = ‘CURRENT’

Simple Query 1 - Simple Query 2

Both of these queries will return exactly the same results although written differently. If

one of these two queries were executed against an Oracle RDBMS, the CBO has the option to

"re-write" that query to something different if it decided the cost would be lower with that

alternative path. This transformation process is a primary function of the CBO--choosing which

query will perform the best (Ahmed, 2010). It is also possible that the CBO would choose yet a

third option, as shown in Figure 2.5.

SELECT a.customer_name,a.customer_address,b.account_rep_id, b.account_rep_name

FROM customer a JOIN account b ON (a.cust_id = b.cust_id)

WHERE a.account_status = 'ACTIVE'AND b.rep_stat = 'CURRENT'

Simple Query 3

Figure 2.5 -- New Equivalent Query

This query returned identical results from those shown in Figure 2.4. It does not,

however, utilize any "not equal" matching criteria, and it illustrates a simple way more than one

query can be written to return duplicate results.

Page 46: Oracle Cost Based Optimizer Correlations

Simple Join Choices -- An Example

With each SQL query, the CBO also seeks to optimize the query by choosing the best

way to access and process the underlying data. A simple example is presented here. Lewis

(2006) explained that two common access methods where two or more tables are joined in a

query include nested loops and hash joins. A nested loop happens when the first table is looped

through to find data that satisfies specific criteria, and then for each row in the first table, the

second table is looped through to find rows that match with the first. Hence, it is a loop within a

loop, or a "nested loop". A hash join is more complex. In this situation, the smaller table is

often parsed according to criteria, and values that satisfy that criteria have a hash function

applied to them and are stored off in memory. The second table is then parsed, and depending on

the join condition in the SQL query, the same hash function would be applied and matched to

that which was stored off in memory from the first table. In both of these approaches, a nested

loop or a hash join, data is accessed in a different manner, but both will produce the same results

if utilized with the same SQL query. Both of these approaches can even be mixed and used in the

same query when more than two tables are involved. However, the CBO makes a choice as to

which joins would be the most efficient in each specific situation. That choice which showed the

lower "cost" as predicted by the CBO would likely be chosen (Colgan, 2011a).

Besides equivalent queries, the CBO also has the ability to order and apply query

predicates. A predicate is “the syntax used to specify a subset of rows to be returned. Predicates

are specified in the WHERE clause of a SQL statement” (OracleFaqs, 2008, p. 1). Figure 2.6

shows this concept:

ORACLE CBO CORRELATIONS 38

Page 47: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 39

SELECT a.customer_name,b.customer_address

FROM customer a JOIN cust_detail b ON (a.cust_id = b.cust_id)

WHERE b.signup = 'RECENT'AND b.current = 'INACTIVE'

Figure 2.6 -- Predicate Example

The two items in this WHERE clause are the link between b.signup and “RECENT” and

the link between b.current and INACTIVE . Predicate ordering is the process where each of

these items is evaluated by the CBO as to efficiency. During optimization, if the CBO finds that

applying one predicate ahead of the other produces a lower cost estimate, that predicate order

will likely be preserved during query execution.

Progress Continues

The idea of equivalent queries and multiple execution pathway choices, including

predicate ordering, opens up vast possibilities for optimizer choices. Colgan (2005) explained

that the purpose of the Oracle Optimizer is to "determine the best strategy for performing each

query" (p. 4), and that "cost.. .is based upon in-depth knowledge about I/O, CPU, and memory

resources required by each query operation” (p. 23). This includes statistical information,

database objects and hardware server platform information. Colgan (2011b) later explained that

these improvements were perpetuated into current Oracle 11g offerings with additional algorithm

improvements, expansions and improvements to the functionality associated with cardinality

accuracy. These improvements have increased CBO accuracy with estimations as well as the

cost approximations used for plan selection.

Page 48: Oracle Cost Based Optimizer Correlations

In the Oracle 10g offering, SQL transformations, including heuristic query rules, are

applied “whenever possible” to improve the performance of a query (Colgan, 2005, p. 6). This

idea of query transformation can also be used to illustrate the complexity of the CBO tool. For

example, Colgan (2005, p. 6-7) explained that some of these transformations include "simple

view merging" in which the query is re-written in such a way as to eliminate internal references

to views completely; "complex view merging" which allows multiple views that perhaps have

GROUP-BY or DISTINCT clauses which are merged, thus simplifying and streamlining the

code to a better cost outcome; "subquery flattening" where various subqueries are re-written into

the form of semi-joins, anti-joins, or simple joins, and others. The list of possibilities is large:

additional choices given by Colgan (2005, p. 9-10) include "transitive predicate generation",

"common subexpression elimination", "group pruning for 'CUBE' queries", "outer-join to inner-

join conversion", and "predicate pushdown and pullup". Predicate pushdown or pullup, also

known as predicate ordering, is of particular interest in this thesis because it is useful in showing

that even though the CBO has grown in sophistication as each subsequent version has been

released, there are still limitations that the CBO cannot easily overcome.

CBO Limitations

Database researchers have asserted that the CBO has limits. Colgan (2005) explained that

the CBO must limit its search domain when searching for the best possible execution plan. For

example, if there are five tables in a query, there are potentially five factorial choices for

predicate ordering. For each of those choices, there are also multiple choices for join methods as

well as heuristically driven transformations. If the permutations of possibilities are so extensive

that it takes more time to find an optimized execution plan for the query than it would to have

run a sub-optimal plan, it defeats the purpose. Oracle therefore utilizes an “adaptive search

ORACLE CBO CORRELATIONS 40

Page 49: Oracle Cost Based Optimizer Correlations

strategy” that focuses on the best choices first, and limits out those that are considered sub-

optimal (Colgan, 2005, p. 15).

Lewis (2006) explained that when the CBO limits the checking of all possible query

plans as a result of this “adaptive search strategy” discussed by Colgan (2005), it can result in

sub-optimal plans being chosen over better alternatives, causing performance degradation. This

limitation of the CBO does not threaten the possibility of time based correlations with the CBO

execution costs. The primary reason is that all plans chosen by the CBO use the same formula

across all potential query choices. Because the cardinality is computed the same way on all data,

if one choice is limited out, even if it would have been considered optimal in comparison to what

replaced it, the reasons for that limitation are consistent between both plans; namely, the same

optimizer statistics that generated cardinality results, the same system statistics, and the same

formulation that generated the original cost are identical for both execution plans.

Summary

This chapter examined high-level changes that the Oracle CBO has undergone. Query

speed has been of primary concern, and to increase that speed, the CBO has grown and matured.

Vendor literature showed that CBO capabilities were increased between the 9i and 10g offerings,

and significant improvements related to maintaining system statics, cardinality, collecting

expanded statistics, and even algorithm improvements were introduced and continued to mature

up through the 11g offerings. This has brought greater accuracy to the CBO estimates while

improving performance throughout. The CBO has become aware of indexing and partitioning,

allowing partition pruning to increase speeds dramatically in some situations. The idea of

equivalent queries, and how the CBO is capable of not only accessing logical data in an

optimized manner, but also rewriting the join clauses and SQL structures into equivalent, yet

ORACLE CBO CORRELATIONS 41

Page 50: Oracle Cost Based Optimizer Correlations

more optimized versions, was significant. All of these items support the original projections of

Lewis (2006); namely, in a future version of Oracle, Lewis speculated that perhaps it would be

possible for the CBO to be correlated to actual execution speeds provided the accuracy of the

CBO increased sufficiently.

In closing, it should be noted that Lewis (2011) has maintained his position that the CBO

estimate is related to time. He remarked: "The cost of a query represents the optimizer's estimate

of how long it will take that query to run--so it is perfectly valid to compare the cost of two

queries to see which one the optimizer thinks will be faster” (p. 1). Lewis provided an example

of four different queries that all resolved in the CBO as equivalent queries, but syntactically were

not. As the CBO results were shown, all performed exactly as expected. Lewis indicated,

however, that though his example proved his point, comparing costs across different queries for

response time was often compromised by "the optimizer model not being right for [the] data, or

the optimizer arithmetic [being] to simplistic or having a bug” (p. 1). This reticence by Lewis

seems to suggest he was not completely convinced the CBO had matured sufficiently for clear

correlations to be established. The next chapter discusses the academic literature related to CBO

estimates.

ORACLE CBO CORRELATIONS 42

Page 51: Oracle Cost Based Optimizer Correlations

Chapter 3 - CBO in Academic Literature

In Chapter 2, significant emphasis was placed on CBO enhancements and how these

related to query speed. Although the trade literature was extensive, academic literature

correlating CBO estimates with actual query execution speeds was sparse. Works published

address CBO time correlation concerns, but often focus on the challenges with query consistency

between similar database systems, and how lower CBO estimates do not necessarily produce

faster response times. This chapter explores these topics from the academic literature, and also

shows how correlation topics are beginning to emerge as well as some of the specific challenges

faced.

Plan Regression

Burleson (2009) explained that “One perplexing issue with Oracle is the dynamic nature of

Oracle SQL, and the optimizer’s propensity to change execution plans whenever CBO statistics

change. This has been dubbed ‘Monday Morning Mayhem’ because some SQL explain plans

will change for the worst” (p. 1). When a plan changes for the worse as Burleson explained, it is

called plan regression.

Researchers have long noted that plan regression is a serious problem. Ziauddin, Das, Su,

Zhu and Yagoub (2008) explained that various factors, including optimizer statistics, parameter

changes, hardware or software changes, can cause the Oracle Cost Based Optimizer to choose

sub-optimal plans. When this happens, business activities that depend on query performance can

suffer markedly. Working to address this concern, these researchers indicated that Oracle 11g

was equipped with a “SQL Plan Management” tool (p. 1347), tightly integrated with Oracle’s

query optimizer systems. These researchers indicated that this tool possesses two primary goals:

“preventing sub-optimal plans from being executed, [and] allowing new plans to be used if they

ORACLE CBO CORRELATIONS 43

Page 52: Oracle Cost Based Optimizer Correlations

are verifiably better than previous plans” (p. 1346). They explained that the idea of managing

plan regression is something not unique to Oracle alone: Microsoft and IBM have methods to do

something similar with their respective SQL Server and DB2 offerings.

A significant point must be noted however, and that is plan regression happens when a plan

that has a “lower” cost is actually run in place of a plan with a “higher” cost, but performs worse.

This should not happen; the lower cost plan should consistently perform better (Oracle, 2011).

If the Oracle RDBMS can not look at the same query with two execution plans that differ and

ensure that the one with the lower cost actually performs better, then it appears the CBO is not

dependable at all. Most of the academic literature that attempts to correlate CBO estimates with

time approaches the topic in a way similar to or related to plan regression. Finding “better” CBO

estimates and constraining them to perform in a more optimal way is a common theme in many

articles that are relevant to this research.

CBO Innovation to Predict Cardinality

As mentioned in Chapter 2, scholars have argued that cardinality is the single most

important aspect associated with CBO accuracy and speed. Though cardinality is calculated

automatically through statistics gathering in Oracle 11g (Colgan, 2011b), if tables change or

statistics become inconsistent—for example between a development and production database—

then CBO accuracy suffers. In their study on the relations among cardinality, query speed

inconsistencies and plan regression, Tendulkar and Phalak (2011) explained that predicting

query performance quality against high volume database systems was particularly difficult for

developers. Often the software had to be deployed to production, and only then could

unforeseen performance problems be addressed, making it difficult to conform to company

expectations and service level agreement requirements. These researchers suggested that the

ORACLE CBO CORRELATIONS 44

Page 53: Oracle Cost Based Optimizer Correlations

SQL Performance Assurance Services (SQL-PASS) Oracle tool addressed some of these

concerns. This tool is deployable on development systems, and should allow developers to

extrapolate production statistics into new systems through percentage, or through specifying

actual row numbers. This statistical change affects cardinality approximations and directly

influences the CBO plan selection. CBO scores in 11g have two general characteristics: “CPU

Cost - Number of machine cycles required for query execution” (p. 542); and “I/O Cost -

Number of physical block reads required for query execution” (p. 542). Tables are not always

populated in a consistent manner: some tables grow faster than others, and some are quite static.

SQL-PASS contained functionality that addressed this concern, allowing adjustments when

seeking to project statistics into the future to facilitate “what i f ’ testing. These researchers were

also able to show that SQL-PASS can function in cloud computing environments, making it

unnecessary to install on development servers. They argued it was also secure in that it affords

users secure access to their projects and statistical changes.

Query Self Tuning - Feedback Loops

Scholars are considering the need for queries that tune themselves during actual execution.

For example, Lee and Zait (2008) indicated that Oracle Optimization (OO) utilized data provided

to it for query execution pathway choices. Included were statistics related to data space

utilization, number of rows involved in queries, distribution of columns, basic cardinality of data,

and also system statistics including I/O bandwidth and sub-system storage. The quality of the

final query was directly related to the value of the data passed to the OO system.

Two specific items, however, caused problems: poor statistics on the intermediate

cardinality of queries, and plan reuse when utilizing bind-variables. Lee and Zait (2008)

indicated: “Cost is a proxy for performance; the lower the cost, the better the performance (e.g.

ORACLE CBO CORRELATIONS 45

Page 54: Oracle Cost Based Optimizer Correlations

response time) of the query is expected to be” (p. 1368). Interestingly, they pointed out that the

Oracle 10g systems did not create new execution plans for query reuse do to bind-variable

utilization. Consequently, if the data was skewed, the optimization plan for that query could be

extremely inefficient. This problem was remedied in Oracle 11g which showed CBO innovation

and maturation as new versions were released.

These researchers also discussed a plan they said could be used in the Oracle 11g release;

namely, creating a feedback loop to the OO engine on all queries that are processed to provide

statistical information with regards to intermediate values for similar queries. Lee and Zait

(2008) also mentioned that providing additional information on bind-variable query plans that

should naturally change for data skewing as well as other distribution concerns would be helpful.

They argued that this approach could be implemented with two specific goals: 1) “zero input

from SQL developers and zero maintenance for the DBA” (p. 1378), and 2) “extremely low

overhead from monitoring the SQL statements that are limited to only the statements that may

benefit from feedback” (p. 1378). The researchers pointed out that their approach has been

soundly validated using the Oracle E-Business Suite Workload tools for data replication and

testing.

Time Constrained SQL Queries

Hu, Sundara and Srinivasan (2007) explained that with database technology growing,

business demands have expanded the amount of data storage to petabyte sizes. However, despite

the size of datasets, circumstances existed that required query results within given parameters,

including those that are time driven. The researchers argued that Oracle technology offered

“hints” that often allow for fast query results, including ‘first-few rows’, or ‘top-k rows.’

However, they proposed a system that took an additional syntactical clause requiring the query to

ORACLE CBO CORRELATIONS 46

Page 55: Oracle Cost Based Optimizer Correlations

adhere to a “soft” or “hard” time limit, as well as allowing for “partial” or “approximate” results.

When query results were time based, the researchers explained that “trading off quality results

for predictable response time is quite useful” (p. 1207).

They developed a method that showed how syntactical statements could be developed and

intertwined with the CBO, taking advantage of cardinality sets and system statistics. Where hard

limits were defined and partial or summarized results were allowable, their system auto adjusted

accordingly. These researchers setup a controlled experimental investigation which successfully

showed feasibility for their approach: query time could be constrained in a number of cases, and

the “use of smaller time limits [did] reduce the overall query execution time” (p. 1217). The

researchers planned to further their work, but did mention that the inaccuracies with CBO

estimates, especially regarding missed cardinality results, were difficult to overcome.

In a follow-up paper, Hu, Sundara and Srinivasan (2009) explained that developed

approaches for time-constrained SQL queries involved sampling to “reduce the amount of data

that [needed] to be processed, thereby allowing completion of the query in the specified time

constraint” (p. 1104). This approach proved useful and effective when estimations could be

allowed. But when performing aggregate functions such as MIN, MAX, MEDIAN, SUM and

COUNT, the approach proved more complex and problematic. Hu, Sundara and Srinivasan

presented two general concepts: 1) when using time constraints, there needed to be an implicit

transformation to a SAMPLE clause on individual tables; and 2) estimates on aggregates needed

to consider an additional measure of the “goodness” (meaning accuracy) of the result. They

explained how Bernoulli Sampling could be used to assist in the process, and through

mathematical theory, confidence intervals for SUM, COUNT, AVG and MEDIAN could be

ORACLE CBO CORRELATIONS 47

Page 56: Oracle Cost Based Optimizer Correlations

calculated. Hu, Sundara and Srinivasan concluded their work stating that their results were a

foundation of “estimation in time-constrained approximate queries” (p. 1107).

To the best knowledge of this researcher, the work of Hu, Sundara and Srinivasan was the

first attempt to link CBO estimates to actual execution speeds. However, it doesn’t directly

address the topic as their focus was directed at constraining the query to a specific time

tolerance, not predicting what the time will be prior to query execution. They did, however,

make it clear that situations existed where queries must perform within a specific time tolerance,

and their approach even suggested that data approximations might be a trade off when results

were needed within a specific timeframe.

Keeping Query Speeds Consistent

Waas, Giakaumakis and Zhang (2011) recognized plan regression as a significant problem

in current production environments, and that the CBO might even compound the problem by

choosing sub-optimal plans when superior plans are not even considered. They gave two

primary reasons why plan regression itself occurred: 1) optimizer code-level changes [happened]

to the optimizer” (p. 1); and 2) changes were applied to the query, logical or physical changes

were made to database structures, changes were made to underlying data, or recomputed

statistics were calculated. They explained that when the optimizer parses the space of possible

execution plans, hundreds of millions of possibilities exist. An exhaustive search would slow

things down significantly, so the optimizer must use various techniques to find the “best found

plan” (BFP).

This approximation approach often misses plans that would be better choices; therefore,

the BFP does not guarantee the optimal plan. Through a plan regression approach, Oracle can

create plan baselines, and their use can be guaranteed to not change until another plan that is

ORACLE CBO CORRELATIONS 48

Page 57: Oracle Cost Based Optimizer Correlations

verifiably superior is generated (Colgan, 2010). Although helpful in production environments,

Waas, Giakaumakis and Zhang argued that this approach did not “help engineers to direct their

efforts to actually improve the product” (p. 1). They explained that current developer practices

included five steps: 1) create a plan regression suite of benchmark, customer, or workload

queries; 2) extract the BFP for each; 3) execute against a test suite and find all new BFP choices;

4) in case of discrepancies, evaluate; and 5) implement the change if needed.

This approach, however, had at least two failings: only BFP changes are tested while other

far ranging changes might be ignored, and significant manual intervention is required.

Optimizers are generally good at estimating which plans are better than others; however, the

researchers argued that these estimates fail considerably when comparing estimated performance

between actual performance. This is what plan regression is all about. Waas, Giakaumakis and

Zhang provided a general way to sample actual vs. estimated query selections from an expanded

BFP space, and statistical relevance between the two were gathered. A measure of “how well a

given optimizer models a query’s plan space” (p. 3) was presented, and preliminary results

reviewed.

It is interesting to this researcher that plan regression could be compounded by optimal

plans not even being considered during plan selection. If plan regression can happen, then it

seems possible that plans omitted from BFP searches might actually land on both sides of the

performance spectrum: some may be regressed, and some not. Waas, Giakaumakis and Zhang

indicated that developers must execute plans on a test system to find superior BFP items. By this

they meant the queries must actually be executed and timed. Their work illustrated at least three

concerns the CBO has when considering cost to execution speed correlations:

ORACLE CBO CORRELATIONS 49

Page 58: Oracle Cost Based Optimizer Correlations

1) if the test system is not an exact match of production, meaning identical cardinality on

all items in question as well as underlying hardware, then there is no guarantee that results

will be similar or even relevant after testing: the execution speeds on both systems might

differ because the execution plan on each system might differ at the time of the actual test;

2) no method exists to correlate CBO estimates to actual query speed before actual

execution: actual testing must be performed;

3) and this approach is very labor intensive.

All of these items help to show that if CBO estimates could be correlated to actual

execution speeds, it would be a helpful benefit, particular when considering this approach for

regression testing and remediation.

Progress Indicators

Luo, Naughton, Ellmann and Watzke (2004) approached the concept of query execution

speed from the perspective of a progress indicator. They explained: “Progress indicators are a

widely used user-interface technique in modern software systems.. ..Typically, a progress

indicator has the following two features: 1) It keeps track of the percentage of the task that has

been completed; 2) [and] it continuously estimates the remaining task execution time” (p. 1).

They also indicated that at the time of this writing, no commercial RDBMS provided such a tool,

and they were also “unaware of any published techniques for supporting such a progress

indicator” (p. 1). Through a feedback loop and by continuously refining cost estimates during

execution which included keeping track of current execution speeds, they established that

“progress indicator[s] ... were useful for both I/O-intensive and CPU-intensive queries, and that

[their approach] adapted both to the optimizer’s estimation errors and to varying runtime system

ORACLE CBO CORRELATIONS 50

Page 59: Oracle Cost Based Optimizer Correlations

loads” (p. 11). Luo, Naughton, Ellmann and Watzke did indicate that even though their

approach was “fairly course”, it did open up additional possibilities for progress indicators for

such things as load management, automatic administration, and even performance tuning.

Long Running Queries

Krompass, Kuno, Wiener, Wilkinson, Dayal and Kemper (2009) explained that long-

running queries “are a known problem in all commercial database products” (p. 132). Often,

business intelligence workloads contain many queries where execution times vary widely, “from

seconds to hours” (p. 132). Despite this fact, the researchers argued that to their knowledge they

have never seen a “thorough classification of long-running queries nor a systematic study of the

most effective corrective actions” (p. 132). Performance was often hampered with unreliable

cost estimates that resulted in plan regression, which they called “problem queries”, resource

contention that went unnoticed, and systems that were overloaded as the result of the first two

items. The only solution to this was to reduce the number of queries on the system, or to filter

out and carefully control the queries that are problems. Krompass, Kuno, Wiener, Wilkinson,

Dayal and Kemper went on to propose a taxonomy for distinguishing long-running query types,

and propose specific workload management techniques to address concerns by preventing those

queries from executing, or scheduling them in such a way as to prevent other work from

successfully acquiring necessary system resources. Recognizing that cost estimates can be

significantly off, the researchers argued that a “Kill & Requeue” or a “Suspend & Resume” (p.

143) process could reactively address concerns by managing resources during operational

execution.

The idea of long-running queries was addressed by Oracle. The Oracle Database

Reference 11g Release 1 (11.1) Part Number B28320-03 (2009) explained: “[the view]

ORACLE CBO CORRELATIONS 51

Page 60: Oracle Cost Based Optimizer Correlations

V$SESSION_LONGOPS displays the status of various operations that run for longer than 6

seconds (in absolute time). These operations currently include many backup and recovery

functions, statistics gathering, and query execution, and more operations for every Oracle

release” (p. 956). It is interesting to this researcher that there is a “TIME_REMAINING” field in

this view defined as “estimate (in seconds) of time remaining for the operation to complete” (p.

957). For such a field to exist, clear feedback from the database would be necessary, and

estimates of “UNITS”—which is a measurement unit field also in the view—would be

necessary. This view is available in Oracle 11g when the TIMED_STATISTICS or

SQL_TRACE parameters are set to true, and proper statistics have been gathered on objects with

either the ANALYZE command or the DBMS_STATS package

Summary

Academic research that has linked CBO estimates to actual execution speeds is sparse,

despite some recent advancements. All of these articles in one way or another touch upon the

idea of CBO cost time estimates; however, they all miss the core—none of them actually

correlate CBO costs to recorded query execution speeds. Yet, some researchers have cast doubt

on the feasibility that CBO estimates can be correlated to time. Ziauddin, Das, Su, Zhu and

Yagoub (2008) in particular, speaking about plan regression, indicated that tools exist internally

with the Oracle system that control potential plan regression, preventing plans that might have a

lower cost and will potentially result in an inferior performance, from replacing those that

perform better. From the literature, this plan regression reality suggests that the CBO does not

always perform as expected. This information casts doubt on the feasibility that CBO

correlations to execution speeds are possible, something this thesis investigates. The next

chapter introduces the quantitative research method used in this thesis.

ORACLE CBO CORRELATIONS 52

Page 61: Oracle Cost Based Optimizer Correlations

Chapter 4 - Methodology

This chapter presents the quantitative research method of this thesis: an Oracle

experiment that gathered data to investigate CBO correlations to execution speeds. To perform

this task, an Oracle system was used where data structures were created, populated with

randomized data, analyzed to promote CBO estimate accuracy, and then tested. This chapter

provides the details of each step of this process, including information about the underlying

system that was utilized, the software release used for the RDBMS, the DDL structure for the

tables and indexes that were used, how the structures were populated with data, and the format

and testing process where data was gathered. Each detail is presented in a way to provide

completeness so that reproducibility is possible, and also to provide a solid foundation for the

presentation of findings and analysis that are detailed in the next chapter.

The Oracle CBO Experiment

This experiment was created to test the three criteria outlined in Chapter 1: namely,

1. Comparing queries against themselves in the same RDBMS but with differing CBO

estimates and seeing if those with lower CBO estimates perform faster than those with

higher;

2. Performing linear regression on the same queries that have multiple CBO estimates, and

computing the correlational confidence between cost and execution speeds;

3. Performing linear regression across a large sampling of queries, and computing their

correlational confident between cost and execution speed.

As all of these tests were performed on specific hardware, software, and table structures, those

individual components are outlined here.

ORACLE CBO CORRELATIONS 53

Page 62: Oracle Cost Based Optimizer Correlations

The System Used

A Linux machine running RedHat 2.6.18 was utilized for this case study. Figure 4.1 shows

the information as output from the “uname -a ” command, and provides important configuration

information:

(DEV) oracle@trulodb9001$ uname -aLinux trulodb9001 2.6.18-194.32.1.el5 #1 SMP Mon Dec 20 10:52:42 EST 2010 x86 64 x86 64 x86 64 GNU/Linux

ORACLE CBO CORRELATIONS 54

Figure 4.1 - Machine OS

This machine was equipped with two CPUs, 3821 megs of memory, and was dedicated

exclusively to the Oracle processes running on it. Figure 4.2 shows information as output from

the “free -m ” command, and provides important memory configuration information:

(DEV) oracle@trulodb9001$ free -mtotal used free shared buffers cached

Mem: 3821 3676 145 0 72 337-/+ buffers/cache: 3266 555Swap: 1695 87 1608

Figure 4.2 - Machine Memory

Oracle Installation

The Oracle Banner from a SQLPlus connection shows the Oracle version being utilized

as 11.2.0.2. The output from the Banner is show in Figure 4.3:

Page 63: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 55

SQL> select * from v$version;

BANNER

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit ProductionPL/SQL Release 11.2.0.2.0 - ProductionCORE 11.2.0.2.0 ProductionTNS for Linux: Version 11.2.0.2.0 - ProductionNLSRTL Version 11.2.0.2.0 - Production

Figure 4.3 - Oracle Banner

The current patch release is show in Figure 4.4 as a reflection of OPatch output:

Page 64: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 56

(DEV) oracle@trulodb9001$ ./opatch lsinventory Invoking OPatch 11.2.0.1.4

Oracle Interim Patch Installer version 11.2.0.1.4 Copyright (c) 2010, Oracle Corporation. All rights reserved.

Oracle Home Central Inventory

from OPatch version OUI version OUI location Log file location 07-06 14-4 0-11PM.lo

/opt/oracle/product/11.2.0.2 /opt/oracle/Inv /etc/oraInst.loc11.2.0.1.411.2.0.2.0/opt/oracle/product/11.2.0.2/oui/opt/oracle/product/11.2.0.2/cfgtoollogs/opatch/opatch2 013-

Patch history file: /opt/oracle/product/11.2.0.2/cfgtoollogs/opatch/ opatch_history.txt

Lsinventory Output file location : /opt/oracle/product/11.2.0.2/cfgtoollogs/ opatch/lsinv/lsinvento

Installed Top-level Products (1):

Oracle Database 11g 11.2.0.2.0There are 1 products installed in this Oracle Home.

Interim patches (7) :

Patch 10626132 : applied on Mon Mar 14 10:37:44 EDT 2011Unique Patch ID: 13350217

Created on 31 Dec 2010, 00:18:12 hrs PST8PDT Bugs fixed:

10626132

Page 65: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 57

P a t c h 1 0 3 8 7 9 3 9 : a p p l i e d o n Mon M a r 14 1 0 : 3 6 : 5 9 EDT 2 0 1 1U n i q u e P a t c h I D : 1 3 3 5 0 2 1 7

C r e a t e d o n 30 D e c 2 0 1 0 , 2 2 : 5 5 : 0 1 h r s P S T 8 P D TB u g s f i x e d

1 0 1 5 8 9 6 5 , 9 9 4 0 9 9 0 , 1 0 1 9 0 6 4 2 , 1 0 0 3 1 8 0 6 , 1 0 2 2 8 6 3 5 , 1 0 0 1 8 7 8 9 , 9 7 4 4 2 5 21 0 0 1 0 2 5 2 , 9 9 5 6 7 1 3 , 1 0 2 0 4 3 5 8 , 9 7 1 5 5 8 1 , 9 7 7 0 4 5 1 , 1 0 0 9 4 6 3 5 , 1 0 1 2 1 5 8 91 0 1 7 0 4 3 1 , 9 8 2 4 1 9 8 , 1 0 0 7 1 1 9 3 , 1 0 1 4 5 6 1 2 , 1 0 0 3 5 7 3 7 , 9 8 4 5 6 4 4 , 1 0 0 8 6 9 8 01 0 0 5 2 1 4 1 , 1 0 0 3 9 7 3 1 , 1 0 0 3 5 5 2 1 , 1 0 2 1 9 5 7 6 , 1 0 1 8 4 6 3 4 , 1 0 2 0 7 0 9 2 , 1 0 1 3 8 5 8 91 0 2 0 9 2 3 2 , 8 7 5 2 6 9 1 , 9 9 6 5 6 5 5 , 9 8 1 9 4 1 3 , 9 5 0 0 0 4 6 , 1 0 1 0 6 8 2 8 , 1 0 2 2 0 1 1 8 , 9 8 8 1 0 7 698 6 9 2 8 7 , 1 0 0 4 0 5 3 1 , 1 0 1 2 2 0 7 7 , 1 0 2 1 8 8 1 4 , 102 6 138 9, 1 0 0 3 3 6 0 3 , 9 7 8 8 5 8 89 7 3 5 2 3 7 , 1 0 1 2 6 2 1 9 , 1 0 0 4 3 8 0 1 , 1 0 0 7 3 2 0 5 , 1 0 2 0 5 7 1 5 , 9 7 0 9 2 9 2 , 1 0 1 0 5 9 2 61 0 0 7 9 1 6 8 , 1 0 0 9 8 2 5 3 , 1 0 0 0 5 1 2 7 , 1 0 0 1 3 4 3 1 , 1 0 2 2 8 1 5 1 , 1 0 0 9 2 1 5 3 , 1 0 1 4 2 9 0 91 0 2 3 8 7 8 6 , 1 0 2 6 0 8 0 8 , 1 0 0 3 3 0 7 1 , 9 7 9 1 8 1 0 , 1 0 0 5 2 9 5 6 , 9 3 0 9 7 3 5 , 1 00 2 69721 0 0 8 0 5 7 9 , 1 0 0 7 3 6 8 3 , 1 0 0 0 4 9 4 3 , 1 0 0 1 9 2 1 8 , 9 5 3 9 4 4 0 , 1 0 0 2 2 9 8 0 , 1 0 0 6 1 4 901 0 0 0 6 0 0 8 , 6 5 2 3 0 3 7 , 9 7 2 4 9 7 0 , 1 0 1 4 2 7 7 6 , 1 0 2 0 8 3 8 6 , 1 0 1 1 3 8 0 3 , 102 6 1 6 8 09 6 7 1 2 7 1 , 1 0 0 8 4 1 4 5 , 1 0 0 5 1 9 6 6 , 1 0 3 5 5 4 9 3 , 1 0 2 2 7 1 3 3 , 1 0 2 2 9 7 1 9 , 1 0 0 4 6 9 1 21 0 2 2 8 3 9 3 , 1 0 3 5 3 0 5 4 , 1 0 1 4 2 7 8 8 , 1 0 2 2 1 0 1 6 , 9 4 1 4 0 4 0 , 1 0 1 2 7 3 6 0 , 1 0 3 1 0 2 9 91 0 0 9 4 2 0 1 , 9 5 9 1 8 1 2 , 1 0 1 2 9 6 4 3 , 1 0 3 3 2 5 8 9 , 1 0 0 2 6 1 9 3 , 1 0 1 9 5 9 9 1 , 1 0 2 6 0 8 7 01 0 2 4 8 5 2 3 , 9 9 5 1 4 2 3 , 1 0 2 6 1 0 7 2 , 1 0 2 9 9 2 2 4 , 1 0 2 3 0 5 7 1 , 1 0 2 2 2 7 1 9 , 1 0 2 3 3 7 3 21 0 1 1 3 6 3 3 , 1 0 1 0 2 5 0 6 , 1 0 0 9 4 9 4 9 , 1 0 0 7 7 1 9 1 , 1 0 3 2 9 1 4 6 , 8 6 8 5 4 4 6 , 1 0 0 4 8 7 0 11 0 3 1 4 5 8 2 , 1 0 1 4 9 2 2 3 , 1 0 2 4 5 2 5 9 , 1 0 1 5 1 0 1 7 , 9 9 2 4 3 4 9 , 1 0 2 4 5 0 8 6 , 1 1 0 7 4 3 9 3

P a t c h 1 0 1 5 7 6 2 2 : a p p l i e d o n Mon M a r 14 1 0 : 3 6 : 0 7 EDT 2 0 1 1U n i q u e P a t c h I D : 1 3 3 5 0 2 1 7

C r e a t e d o n 19 N o v 2 0 1 0 , 0 1 : 4 1 : 1 9 h r s P S T 8 P D TB u g s f i x e d

9 9 7 9 7 0 6 , 9 9 5 9 1 1 0 , 1 0 0 1 6 0 8 3 , 1 0 0 1 5 4 6 0 , 1 0 0 1 4 3 9 2 , 9 9 1 8 4 8 5 , 1 0 1 5 7 6 2 21 0 0 8 9 1 2 0 , 1 0 0 5 7 2 9 6 , 9 9 7 1 6 4 6 , 1 0 0 5 3 9 8 5 , 1 0 0 4 0 6 4 7 , 9 9 7 8 7 6 5 , 9 8 6 4 0 0 31 0 0 6 9 5 4 1 , 1 0 1 1 0 9 6 9 , 1 0 1 0 7 3 8 0 , 9 9 1 5 3 2 9 , 1 0 0 4 4 6 2 2 , 1 0 0 2 9 1 1 9 , 9 8 1 2 9 7 01 0 0 8 3 0 0 9 , 9 8 1 2 9 5 6 , 1 0 0 4 8 0 2 7 , 1 0 0 3 6 1 9 3 , 1 0 0 0 8 4 67 , 1 0 0 4 0 1 0 9 , 1 0 0 1 5 2 1 01 0 0 8 3 7 8 9 , 1 0 0 3 3 1 0 6 , 1 0 0 7 3 3 7 2 , 9 8 7 6 2 0 1 , 1 0 0 4 2 1 4 3 , 9 9 6 3 3 2 7 , 967 9 40 11 0 0 6 2 3 0 1 , 1 0 0 1 8 2 1 5 , 1 0 0 7 5 6 4 3 , 1 0 0 0 7 1 8 5 , 1 0 0 7 1 9 9 2 , 1 0 0 5 7 6 8 0 , 1 0 0 3 8 7 9 11 0 1 2 4 5 1 7 , 1 0 0 4 8 4 8 7 , 1 0 0 7 8 0 8 6 , 9 9 2 6 0 2 7 , 1 0 0 5 2 7 2 1 , 9 9 4 4 9 4 8 , 1 0 0 2 8 2 3 51 0 1 4 6 7 68 , 1 0 0 1 1 0 8 4 , 1 0 0 2 7 0 7 9 , 1 0 0 2 8 3 4 3 , 1 0 0 4 5 4 3 6 , 9 9 0 7 0 8 9 , 1 0 0 7 3 0 7 51 0 1 7 5 8 5 5 , 1 0 1 7 8 6 7 0 , 1 0 0 7 2 4 7 4 , 1 0 0 3 6 8 3 4 , 9 9 7 5 8 3 7 , 1 0 0 2 8 6 3 7 , 1 0 0 2 9 9 0 0 ,

9 9 4 9 6 7 6

P a t c h 1 0 3 1 7 4 8 7 : a p p l i e d o n Mon M a r 14 1 0 : 2 2 : 2 5 EDT 2 0 1 1U n i q u e P a t c h I D : 1 3 4 0 9 1 7 7

C r e a t e d o n 2 F e b 2 0 1 1 , 0 2 : 5 2 : 5 5 h r s P S T 8 P D TB u g s f i x e d

1 0 3 1 7 4 8 7

P a t c h 9 4 3 8 8 9 0 : a p p l i e d o n Mon M a r 14 1 0 : 2 1 : 2 1 EDT 2 0 1 1U n i q u e P a t c h I D : 1 3 1 0 4 3 7 6

C r e a t e d o n 2 N o v 2 0 1 0 , 0 8 : 4 4 : 1 9 h r s P S T 8 P D TB u g s f i x e d

9 4 3 8 8 9 0

P a t c h 1 0 1 7 7 8 5 6 : a p p l i e d o n Mon M a r 14 1 0 : 1 8 : 4 2 EDT 2 0 1 1U n i q u e P a t c h I D : 1 3 4 1 8 6 9 3

C r e a t e d o n 4 F e b 2 0 1 1 , 0 1 : 3 1 : 5 9 h r s P S T 8 P D TB u g s f i x e d

1 0 1 7 7 8 5 6

P a t c h 1 0 1 9 3 8 4 6 : a p p l i e d o n Mon M a r 14 1 0 : 1 8 : 0 7 EDT 2 0 1 1U n i q u e P a t c h I D : 1 3 2 1 2 4 2 4

C r e a t e d o n 6 D e c 2 0 1 0 , 0 1 : 4 9 : 2 9 h r s P S T 8 P D TB u g s f i x e d

1 0 1 9 3 8 4 6

Figure 4.4 - Opatch

Page 66: Oracle Cost Based Optimizer Correlations

Finally, with regards to the internal Oracle memory configurations, a copy of the Oracle

PFile is show in Figure 4.5:

ORACLE CBO CORRELATIONS 58

SANDBOX. db cache size=922746880 SANDBOX. java pool size=16777216 SANDBOX. large pool size=16777216SANDBOX. oracle base='/opt/oracle'#ORACLE BASE set from environmentSANDBOX. pga aggregate target=402653184SANDBOX. sga target=1207959552SANDBOX. shared io pool size=0SANDBOX. shared pool size=234881024SANDBOX. streams pool size=0*.audit file dest='/opt/oracle/admin/SANDBOX/adump'*.audit trail='db'*.compatible='11.2.0.0.0'*.control files='/oradata/SANDBOX/data01/SANDBOX/control01.ctl','/oradata/ SANDBOX/data01/SANDBOX/control02.ctl'*.db block size=8192 *.db domain=''*.db_name='SANDBOX'*.diagnostic dest='/opt/oracle'*.dispatchers='(PROTOCOL=TCP) (SERVICE=SANDBOXXDB)'*.open cursors=300 *.optimizer mode='ALL ROWS'*.pga aggregate target=400556032* .processes = 150*.remote login passwordfile='EXCLUSIVE'*.sga target=1201668096 *.undo retention=90 *.undo tablespace='UNDO01'

Figure 4.5 - PFile

The Table Structure

Four sets of table structures were created for this case study inside this Oracle RDBMS.

All were named similarly at the base level; namely, MASTER_1, MASTER_2, MASTER_3 and

MASTER_4. The first three tables in this list each have additional satellite tables that form

respective “STAR” schemas. These satellite tables link back to their respective MASTER table,

Page 67: Oracle Cost Based Optimizer Correlations

I5s*5ft

o\

asVin-L

Has25TO©c•aC/3ncn•C■tet>

C c rn m f,m,mi,VL. ww..........................M^ o o o o ' u US i u ro - o I® I® 1"1 I® 1°* i* i"11,5,5,5,55^11^5'f ' l ' l ' s I I I I I I ISS3-6S!3c;||

la Ii " ' l l l l Is Is Is !s Is Is !s£ sssa as

S 3

~rI7v

I Hi* ■■■ »

i l l

1 1 1 I 111°F3 F3 F3 f3

an[mu r1 1 1sss 111 III

1 1 1 I I I Il l l l l l l l l l l l l l l j ' » G'« V C C ™ '*'“ L 3 » EU 10 mI I

II????? S S S a Si

m i

i l l ! ! I n r ■

o<>oo

III!

nilW=i« rsisHIms &

4m u i

m i l l i l l ■

f U f f iL L L L L L» L 1-1 ° 1-11-11-11-11-11-1 [og[ofof3f3fofo 1 ^ 1 1 1 1 1 1i c i i i i i i1 1 1 1 1

r1 11” 1" f 1 1"1 s s s s s s3 000000

? I!!!!?

TA§ s s s s a a | ^

IIIJJJIilf

IPs

i!

<>o<>^oo2iiis§'_».L L L

11111 Si i i i'|,J1 1 1 1 1 >???SSE SSS S 5S!“N-*CCS^' b'si i i i i*Sifp

ItSd

m il l '--CCi???ass

i!

IIII

2 pp

p005 tt> a>

W3o>

p0t r

I *3J—K

?to P p

3 C/3fa a* 33 PO- 5 ’ 32 ft

<x>0a*

a>05 p t3H C/ C/3W C

O■“t t ra>0 p

fa►1 0oq ?

p<T> 3.09 N* p< ’<T> &

cnr-

3 ?r O

3* 3cr> H PCD PV

a> a>5 ’ W 51►n CD

1 '•-$ & 5tt> P 0

aQ s•-$p o ’Jo 3 3C/5 0►rb

j-J O

P30*

*“j ViB -a> ?T

<4 OQ►1

n00 O

C 0■-tCP "S

0c/a

tt>5'OQ <T>v>

O C/3r- O O<* +) 32L*5T

05H

s

S'5 ’OQ

o>o5sOOO

r>HI—IO!Z05

VO

Page 68: Oracle Cost Based Optimizer Correlations

a.m piujs d n ojg ajqux Z - £ ’f? a jnS tj

( i n v i3 a ) y a i i n v ia a e a v i en z a a is v w ^(annvA“ xd ) 06303000“ sa s ^

CamvA xd) ><d e a v i e naAan z a a is v w o

(a iA a i-)a vH O iT n v ia aaasmN *Nn-anHO j aaanriN a m vA “ Md . d

e a v i 0 13A31 z a3 isv iN i s a i s isa a

(an iV A >1d) ^8303000 SAS f>

(annvA x d )x d e a v i z n aA a i z a a is v n «

aono i. i iv i3 Q a a a m N xN rTaiiH O jU3BWnN 3finVA“ >1d . d

e a v i z 13A31 z a a is v w is a i s ioaa

5H-

( r n iv ia a ) y a i“ r n i v i a q~zqv i ” e“T s - a a is vw ^ ( i~3i va ) y a r i “ a i v a “ sa v i - erT2“ a a l s vw O

(annvA_>td) 88sosooo“ sas

(a m v A » d )x d s a v i e naAan z a a is v w <>

(31A8 l) avHOa iv a

aaawriNaaarinN

i n v ia a T a iv a

HNn“aniH0 j

a m vA “ >id . ds a v i e 13A31 Z d31SVlN lS31 SI93M

> f

(e-_iiv i3 a ) y a re - n iv i3 a “ 2 a v i_ 3n- s- a a is v w ^ (z“ n v ia a ) y a r2 “ n v i3 a _ 2 a v i_ 2n“ s- a a is v w ^ ( r u v ia a ) y a f I “ n v i3 < r s 8 v i - 2 rrs - a 3 is v w

(amVA"">1d) 2820S000- sas t>

(3m V A Xd)><d 38V1 Z naA31 Z daiSVW o

(31A8 OdVHO (3 iA a i.) avHO (a iA a i.) hvho

a3aiNnN aaawnN

e n v ia a2"HV13ar u v i a a

x N n _ aniH03nnvA_>id

28V1 Z 13A31 Z d31SVlN'lS31 SI93d

> h

(3 fnV A Xd) 98203003 SAS

(a m v A xd)M d ia v i e iaA 3n z a s is v n <•

(s iA 8 ooos) savHoavA z_n v i3 a(3 iA a ooos) savHoavA r u v i a aasamN XNrTauHO j

a a a m N 3 m vA - >id , d

ta v i e 13A31 z a s is v w i s 3 i s i93a

pH

(z- n v i3 a ) y a f (9“ n iv i3 a ) y a f (s“ n iv i3 a ) y a f (tr” n iv i3 a ) y a f (e“ n v i3 a ) y a f (z“ n v i3 a ) y a f ( i ” n v i3 a ) y a f

z n v i3 a ia v i ■9“nviaa-Lavr 's- n iv ia a “ L a v i' V n iv ia a “ i.a v r 'e” n v i3 a - L 8 v r '2“ n v ia a “ i a v r T n iv ia a “ i.a v r

(annvA“ >id)

'zn-2_a3isvw O zrTz~asisvw f> zn-2“a3isvw ❖ zn- 3”a3isvw ^ zn~3“a3isvw O 31_2“a31SVW O 3n-s_aaisvw ❖0820S000- SAS ^

(a m v A >id)xd L a v i z naAan z a a is v w ^

(31A8 I) aVHO z "n iv ia a(31A8 0 aVHO 9“ n v ia a(31A8 0 aVHO 9“ n iv ia a

(a iA a oo i) savHoavA t-“ n iv ia a(31A8 001) SaVHOaVA e“ n v ia a

(31A8 09) ZaVHOaVA 3“ n iv ia a(31A8 09) SaVHOaVA i.“ n iv i3 a

asawnN MNn“ anHOaaannN 3mVA">1d

l-av i Z 13A31 Z d31SVW!S31 SI93a

> 1 -

(s- 3mvA)yar2- 3n"ivA- 3- a3isvrj (ra rnvA )ya rra rnvA _3_aaisvi"i Q

(s- 3 iva )ya rs “ 3 iva- 3- a3isvw ^ (tTaivaJyart aiva aaisvw O (e_3 iva )ya re - a iva_2- aaisvn (3- a iva )ya rs_3 iva“ 3_a3 isv^ ( r3 iv a )y a i- i."3iva- 3_a3isvi"j

(3m VA- >td) 6ZS0S000- SAS ❖(si.- 3mvA)yarsi.- 3mvA- 3- a3isvrj ^ (t'r3fnv/0yart7r3rnvA-z-a3isvw (eL-3mvA) yarer3rnvA-3_a3isvi"j (zrsm vA) y a rz rs m v A ^ a s is v r j O ( u - 3 fnvA )ya ru_3mvA- s- a3isvn A (oi~3mva) y ai” oi~3mVA- z“ a31sv^ ^

(6_3mvA)yar6_3mvA_3_a3isvi"j O (8” 3 mva) y a i“ 8"3 mvA- z“ a 31 svrj t> (z- 3m vA)yarz” 3mvA- 3- a3isvrj <> (9“ 3mvA)yar9” 3mvA“ 3“ a3isvi"i Q (s“ 3m vA)yars- 3mvA- 3_a3isvi"j ^ (tTsmVA) y al” f “ 3 flTVA- 3“ a 31SVN ❖ (e“ 3 m va ) y a i- e“ 3 mvA_z~a 31 svn O

(3nnvA * d ) * d z a s is v n «r>

(31A8 009) (31A8 009) (31A8 009) (31A8 009) (31 AS 009)

(31Aa 09) (a iA a 09) (31A8 09) (31A8 09) (31A8 09) (31A8 09)(a iA a 09)(31A8 09) (a iA a 09) (31A8 09)

(31A8 oe) (a iA a oe)

c a v H o a v A s a v H o a v A savHoavA s a v H o a v A s a v H o a v A cavHoavA cavHoavA savHoavA cavHoavA savHoavA cavHoavA savHoavA savHoavA cavHoavA savHDavA

a iv a 3 iv a 3 iv a s i v a 3 iv a

savHoavA savHoavA

a a a m N

91 3 m V A^(.“ s n n v Ae r s m v A3 l “ 3 fn V Ai i.” 3 m v A0 l_ 3 finV A .

6“ 3 m V A . 8_ 3 m V A . Z” 3 fn V A - 9- 3 finV A . g” 3 m v A , tT s m V A . 0“ a m v A »2_ 3 finV A . t “ 3 m V A .

9“ 3 iv a t7- 3 i v a .e ~ 3 iv a . z“ 3 i v a . iT a iv a .

a 3 a v H s - e” a 3 is v w a a a v H s ” r a 3 i s v w

3 m V A _Md .

z a s is v w iS 3 i s i93a

09 S M O iiv ia^ rao D o a D a iD Y ’a o

Page 69: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 61

R E GI S_TE ST. M ASTE R_3

P PK_VALUE1 VARCHAR2 (50 BYTE)p PK_VALUE2 NUMBERU PARENTJJNK NUMBER

MASTER_2_SHARED VARCHAR2 (30 BYTE)MASTER_3_SHARED VARCHAR2 (30 BYTE)DATE_1 DATEDAT E_2 DATEDAT E_3 DATEDAT E_4 DATEDAT E_5 DATEVALUE_1 VARCHAR2 (50 BYTE)VALUE_2 VARCHAR2 (50 BYTE)VALUE_3 VARCHAR2 (50 BYTE)VALUE_4 VARCHAR2 (50 BYTE)VALUE_5 VARCHAR2 (50 BYTE)VALUE_6 VARCHAR2 (50 BYTE)VALUE_7 VARCHAR2 (50 BYTE)VALUE_8 VARCHAR2 (50 BYTE)VALUE_9 VARCHAR2 (50 BYTE)VALUE_10 VARCHAR2 (50 BYTE)VALUE_11 VARCHAR2 (500 BYTE)VALUE_12 VARCHAR2 (500 BYTE)VALUE_13 VARCHAR2 (500 BYTE)VALUE_14 VARCHAR2 (500 BYTE)VALUE_15 VARCHAR2 (500 BYTE)

MAS T ER_3_PK_VALUE(P K_VALU E1. P K_VALU E2) <> M AS T ER_3_PARENT_LINK_UN (PARENT_LINK)

O MASTER_3_DATE_1 J D X (DATE_1)<> MAS T E R_3_DAT E _2J DX (DAT E_2)

MAS T E R_3_DAT E_3_l DX (DAT E_3)^ MAS T E R_3_D AT E_4_l DX (DAT E_4)^ MAS T E R_3_DAT E_5_l DX (DAT E_5)^ MASTER_3_VALUE_1_IDX (VALUE_1)^ MAS T E R_3_VALU E_2_l DX (VALU E_2)^ MAS T E R_3_VALU E_3_l DX (VALU E_3)O MAS T E R_3_VALU E_4_l DX (VALU E_4)^ MAS T E R_3_VALU E_5_l DX (VALU E_5)^ MAS T E R_3_VALU E_0_l DX (VALU E_6)O MAS T E R_3_VALU E_7_l DX (VALU E_7)^ MAS T E R_3_VALU E_8_l DX (VALU E_8)^ MAS T E R_3_VALU E_9_l DX (VALU E_9)^ MASTER_3_VALUE_10_IDX (VALUE_10)^ MAS TER_3_P K_VALU E (P K_VALU E1. P K_VALU E2) O SYS_C0020307 (PARENT_LINK)

■K

R E GI S_TE ST. M ASTE R_3_L EVE L_2_TAB2

PK_VALUECHILD_LINKDETAIL_1DETAIL_2DETAIL_3

NUMBER NUMBER CHAR (1 BYTE) CHAR (1 BYTE) CHAR (1 BYTE)

O MASTER_3_LEVEL_2_TAB2_PK (PK_VALUE)

<> SYS_C0020310 (PK_VALUE)<> MASTER_3_L2_TAB2_DETAlL_1 (DETAIL_1) ^ MASTER_3_L2_TAB2_DETAlL_2 (DETAIL_2) ^ MAS T E R_3_L2_TAB2_D E TAl L_3 (D E TAl L_3)

- - K

R E GI S_TE ST. M ASTE R_3_L E VE L_3_TAB2

PK_VALUECHILD_LINKDATE_1DATE_2DETAIL_1DETAIL 2

NUMBERNUMBERDATEDATENUMBERNUMBER

MAS T E R_3_LEVE L_3_TAB2_P K (PK_VALUE)

SYS_C0020316 (PK_VALUE)<> MASTER_3_L3_TAB2_DATE_1 (DATE_1)^ MAS T E R_3_L3_TAB2_DAT E_2 (DATE_2)

MASTER_3_L3_TAB2_DETAIL_1 (DETAIL_1) MAS T E R_3_L3_TAB2_D E TAl L_2 (D E TAl L_2)

■K

REGIS TEST.MASTER 3 LEVEL 2 TAB3

P ’ PK_VALUE NUMBER F CHILD_LINK NUMBER

DETAIL_1 CLOB

MAS T E R_3_LEVE L_2_TAB3_P K (P K_VALU E)

<* SYS_C0020312 (PK_VALUE)

«--------K

REGIS TEST.MASTER 3 LEVEL 2 TAB1

PK_VALUE NUMBERCHILDJJNK NUMBERDETAIL_1 VARCHAR2 (50 BYTE)DETAIL_2 VARCHAR2 (50 BYTE)DETAIL_3 VARCHAR2 (100 BYTE)DETAIL_4 VARCHAR2 (100 BYTE)DETAIL_5 CHAR (1 BYTE)DETAIL_6 CHAR (1 BYTE)DETAIL_7 CHAR (1 BYTE)

> MASTER_3_LEVEL_2_TAB1 _PK (PK_VALUE)

$ SYS_C0020308 (PK_VALUE)V MAS T E R_3_L2_TAB 1 _D E TAl L_1 _ l DX (D E TAl L_1) <> M AS T E R_3_L2_TAB 1 _D E T Al L_2 J DX (D E T Al L_2)

MAS T E R_3_L2_TAB 1 _D E TAL_5_I DX (D E TAl L_5) <> MAS T E R_3_L2_TAB 1 _D E TAL_6_I DX (D E TAl L_6) y MAS T E R_3_L2_TAB 1 _DE TAL_7_I DX (DETAIL_7)

REGIS TEST.MASTER 3 LEVEL 3 TAB3

PK_VALUE NUMBERCHILDJJNK NUMBERDETAIL_1 VARCHAR2 (200 BYTE)DETAIL_2 VARCHAR2 (200 BYTE)DETAIL_3 VARCHAR2 (200 BYTE)DETAIL_4 VARCHAR2 (200 BYTE)DETAIL_5 VARCHAR2 (200 BYTE)DETAIL_6 VARCHAR2 (200 BYTE)DETAIL_7 VARCHAR2 (200 BYTE)DATE_1 DATEDAT E_2 DATEDATE_3 DATEDATE_4 DATEDATE_5 DATE

S=» MAS T E R_3_LEVE L_3_TAB3_P K (PK_VALUE)

O MAS T E R_3_L3_T AB3_D AT E_1_I DX (DATE_1)^ MAS T E R_3_L3_TAB3_DAT E_2_l DX (DATE_2) <> MAS T E R_3_L3_TAB3_DAT E_3_l DX (DATE_3) ^ MAS T E R_3_L3_TAB3_DAT E_4_l DX (DAT E_4) <> MAS T E R_3_L3_TAB3_DAT E_5_l DX (DAT E_5) ^ SYS_C0020318 (PK_VALUE)

-K

REGIS TEST.MASTER 3 LEVEL 3 TAB1

P PK VALUE NUMBERF CHILDJJNK

DETAIL 1NUMBER CHAR (1 BYTE)

M AS T E R_3_LE VE L_3_T AB 1 _P K (P K_VALU E)

SYS_C0020314 (P K_VALU E)

Figure 4.8 - Master 3 Table Group Structure

MASTER_4 is a slightly different table; it was created following a range partitioning

scheme on the “DATE_1” field, with list sub-partitions on the “CHAR_1” field. Because of the

volume of data placed in the MASTER_4 table, it was created in a compressed format. Its basic

structure is shown in Figure 4.9:

Page 70: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 62

MASTER_4U PK_VALUE NUMBER NN (PK) (1X8)g DATE_1 DATE (1X3)g DATE_2 DATE (1X10)g DATE_3 DATE (1X9)g CHAR_1 CHAR (1 Byte) (1X2)g CHAR_2 CHAR (1 Byte) (1X1)g CHAR_3 CHAR (1 Byte) (1X5)g VALUE_1 VARCHAR2 (10 Byte) (1X6)g VALUE_2 VARCHAR2 (10 Byte) (1X4)g VALUE_3 VARCHAR2 (10 Byte) (1X7)

Figure 4.9 - Master 4 Table Structure

Each table contains various columns, and each column in each table was individually

indexed. The name PK_VALUE is for the primary key, and each table has a column with this

same name. All other column names were similar and created to show their respective function.

The PK_VALUE fields were populated with numerically ascending integers, and all other fields

were populated with data as will be outlined below. The full DDL script for the creation of the

table structure in this case study is included in Appendix 1.

The indexes on each column were created to adhere to the following criteria:

-> DATE columns were all individually indexed in a non-unique standard form.

-> CHAR columns were all individually indexed in a non-unique bitmap form.

-> VALUE fields were all individually indexed in a non-unique standard form.

-> All indexes on MASTER_4 were compressed, follow the same format as the above indexes,

and were locally partitioned according to the table structure.

-> All indexes were named in a way to make them easily recognized with regards to their level,

the table they were associated with, and their column name.

Page 71: Oracle Cost Based Optimizer Correlations

The Randomization of Data

Data in the tables was generated through a Perl script that randomized data in an arbitrary

way. Date values were constrained between certain boundaries, the character fields were either a

capital or lowercase letter or number, and value fields were simply a combination of character

fields with the same criteria. All value fields possessed no spaces or special characters. Each of

the MASTER_1, MASTER_2 and MASTER_3 tables were populated with 1,000,000 rows

respectively, and the subsequent tables that had referential links back to these master tables were

populated with 10,000 rows each. The MASTER_4 table differs in that it was populated with

30,000,000 rows, and value fields were populated with the first 10 characters from a list of 500

names that were generated arbitrarily. As mentioned above, compression was implemented on

this MASTER_4 table as it consumed all of the available disk space, making index creation

impossible. The code utilized for data generation is available in Appendix 2.

A Comment about Hints

At one time, “hints” were utilized heavily in development practices for Oracle

developers. Niemiec (1999), in a book called “Oracle Performance Tuning,” explained: “While

the optimizer is incredibly accurate in choosing the correct optimization path and use of indexes

for thousands of queries on your system, the optimizer is not perfect. Oracle has provided hints

that you can specify for a given query so that the optimizer is overridden, and hopefully better

performance is achieved for a given query” (p. 284). Niemiec dedicated several chapters to the

understanding and utilization of hints in SQL development practices.

When hints are utilized in queries, they can dramatically change the execution pathway

choice of the CBO. For example, Figure 4.10 gives a query that was executed with the

“/*+ ORDERED */” hint:

ORACLE CBO CORRELATIONS 63

Page 72: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 64

SELECT /*+ ORDERED */ COUNT (*)

FROM Master 4 WHERE value_3 IN

(SELECT FROM

WHERE

YYYY')

YYYY')

AND date_1 IN (SELECT

FROM WHERE

UNIONSELECT

FROMWHERE

value 3 master_4 value 3 IN

('Jenee','Hassie','Andrea','Danyell','Laree','Juliette','Eliene','Marie','Terry','Susie','Tina','Kareem','Ami e ','Levi','Eddie','Fleta'))

date 1 master 4date_1 BETWEEN TO_DATE ('01-JAN-2 001'

AND TO DATE ('02-MAR-2 0 02'

'DD-MON-

'DD-MON-

date 2 master 4date_2 NOT BETWEEN TO_DATE

AND TO DATE

( '01-JAN-2001','DD-MON-YYYY')('02-MAR-2 0 02 ' ,

'DD-MON-YYYY'))

Figure 4.10 - ORDERED Hint

When executed against the MASTER_4 table, this query produced a cost of 546,976.

However, when the hint was removed and this query was re-run, the execution plan changed

markedly, and the cost reduced to 209,918.

Page 73: Oracle Cost Based Optimizer Correlations

The use of hints in current development practices is now discouraged. Kyte (2013)

explained: “ ... do not use hints. They will be your last choice - never the first choice and never

standard operating procedure. The problem is - we may well use your hints and your hints are

just *wrong*, slower, precluding us from taking a better path. Hints - only useful if you are in

the RBO and you want to make use of an access path” (p. 1). It is because of this shift in focus

that this experiment does not utilize any hints: they are discouraged from use in development,

and since the RBO ceased being the choice for optimization in Oracle 10g (Colgan, 2008), they

have been avoided in this thesis.

The Index “Toggle” Method

Oracle 11g offers a way to utilize indexes for a given query, or actually turn them off.

Kuntulu (2010) explained: “One of the new features of Oracle 11g, invisible indexes, is a perfect

solution to the above problem [of when to use an index or not]. An index can be made invisible

to the Optimizer, so that the optimizer can’t see it. If an adhoc query requires the usage of the

index it can explicitly specify the index as a part of the hint” (p. 1). Since we are not using

hints, however, it is also possible to toggle the visibility of the index on or off with a separate

DDL command. Syntax to make an index visible and invisible is shown in Figure 4.11:

ORACLE CBO CORRELATIONS 65

--Turning the Index ONALTER INDEX master_4_char_1_idx VISIBLE;

--Turning the Index OFFALTER INDEX master 4 char 1 idx INVISIBLE;

Figure 4.11 - Index “TOGGLE

Page 74: Oracle Cost Based Optimizer Correlations

Utilizing this functionality, namely Visible or Invisible Indexing, was a core feature of this

experiment.

The Data Gathering Method

Queries in this experiment were created against the tables mentioned above with the

express goal of avoiding full table scans when all indexes were visible, and utilizing indexes in

such a way as to maximize their use overall. For example, the query in Figure 4.10, when run

without the ORDERED hint, produced the following execution plan as shown in Figure 4.12:

ORACLE CBO CORRELATIONS 66

Page 75: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 67

PlanB - GfiCLCCT GTATEMENT ALL_ROWG

Cost: 209,918 Bytes: 33 Cardinality: 122

Bytes: 33 Cardinality: 1 21 B # H A S H JOIN

Cost: 209,918 Bytes: 26,995,706,265 Cardinality: 818,051,705 11 ^NESTED LOOPS

9 0 P I NESTED LOOPS: Cost: 39,548 Bytes: 735,648 Cardinality: 30,652

5 B =Z SORT UNIQOECost: 2,671 Bytes: 7,617,032 Cardinality: 952,129

4 lz}-[H| PARTITION RANGE ALLCost: 2,671 Bytes: 7,617,032 Cardinality: 952,129 Partition # : 6 Partitions accessed #1 - #38

3 f i d ] PARTITION LIST ALLCost: 2,671 Bytes: 7,617,032 Cardinality: 952,129 Partition # : 7 Partitions accessed #1 - #3

2 INLIST ITERATOR1 I...| * INDEX RANGE SCAN INDEX

Cost: 2,671 Bytes: 7,617,03:Partition # : 7 Partitions accessed #1 - #114

8 0 [UJ PARTITION RANGE ALLCost: 380 Cardinality: 1,916 Partition # : 10 Partitions accessed #1 - #38

7 HU PARTITION LIST ALLCost; 380 Cardinality: 1,916 Partition#: 11 P-arhtinnc jrrp c tp ri\Jt\ - i n

6 i...HI* INDEX RANGE SCAN INDExfrESTJJSER,MASTER_4_VALUE_3_IDX“ ....... ............. £

10

tS T jj3—tJ

USER.MASTER_4 irrlinality a5?,l?Q

VALUE 3 IDX

Cost: 380 Cardinality: 1,916 Partition # : 11 Partitions accessed #1 - #114

J

20 B

H]< TABLE ACCESS BY LOCAL INDEX ROWID TABLE TESTJJSER.MASTER_4Cost: 2,089 Bytes: 30,656 Cardinality: 1,916 Partition#: 11 Partitions accessed #1

VIEW VIEW SYS.VW_NSO_lCost: 139,608 Bytes: 242,116,578 Cardinality: 26,901,842

19 [±| =z SORT UNIQUECost: 139,608 Bytes: 215,214,736 Cardinality: 26,901,842

18 B <§> UNION-ALL14 [p PARTITION RANGE ITERATOR

! Cost: 20,917 Bytes: 92,554,336 Cardinality: 11,569,292 Partition#: 17 Partitions accessed #15 - #29

13 [UH PARTITION LIST ALLCost: 20,917 Bytes: 92,554,336 Cardinality: 11,569,292 Partition # : 18 Partitions accessed #1 - j

! 12 !...U * INDEX FAST FULL SCAN INDEXCost: 20,917 Bytes: 92,554,336 Partition #: 18 Partitions accessed #43 - #87

17 M PARTITION RANGE ALLCost: 20,780 Bytes: 122,660,400 Cardinality: 15,332,550 Partition # : 20 Partitions accessed #1 - #38

16 0 | | ] PARTITION LIST ALLCost: 20,780 Bytes: 122,660,400 Cardinality: 15,332,550 Partition # : 21 Partitions accessed #1

15 i.D * INDEX FAST FULL SCAN INDEXfESTJJSER. MASTERCost: 20,780 Bytes: 122,660,40 l>CaH iwality Partition #: 21 Partitions accessed #1 - #114

USER. MASTER_4_DATE_1 _IDX ............. J

4_DATE_2_IDX 16j(»Qj000 ]

Figure 4.12 - Execution Plan

Page 76: Oracle Cost Based Optimizer Correlations

This EP has highlights to show that three separate indexes were utilized, and these indexes

all correspond to the three predicate sections of the query in question. This EP also shows that

the overall cost of this query was 209,918. Please notice the changes in the EP when one of the

indexes, namely the MASTER_4_DATE_1_IDX is toggled off. This is illustrated in Figure

4.13:

ORACLE CBO CORRELATIONS 68

Page 77: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 69

PlanB ,£= SFI FPT STATEMENT ALL ROWS

Cost: 238j 430 Bytes: 33 Cardinality: 1 gjSURI HGGKEGBTg J

1Bytes: 33 Cardinality:21 B # H A S H JOIN

Cost: 238,430 Bytes: 26,995,706,265 Cardinality: 818,051,705 11 s '25, NESTED LOOPS

9 B--TO. NESTED LOOPS: ' Cost: 39,548 Bytes: 735,648 Cardinality: 30,652

5 =z SORT UNIQUE! Cost: 2,671 Bytes: 7,617,032 Cardinality: 952,129 I 4 B - [HI] PARTITION RANGE ALL

Cost: 2,671 Bytes: 7,617,032 Cardinality: 952,129 Partition # : 6 Partitions accessed #1 - #38

3 |1 PARTITION LIST ALLCost: 2,671 Bytes: 7,617,032 Cardinality: 952,129 Partition #: 7 Partitions accessed #1 - #3

2 [El fe l INLIST ITERATOR __________1 ... INDEX RANGE SCAN INDEXffESTJ

Cost: 2,671 Bytes: 7 ,6 1 7 ,0 3 1 0 ^1 Partition # : 7 Partitions accessed #1 - #114

PARTITION RANGE ALL Cost: 380 Cardinality: 1,916 Partition # : 10 Partitions accessed #1 - #38

PARTITION LIST ALL Cost: 380 Cardinality: 1,916 Partition # : 11 Partitions accessed

10

USER. MASTER_4_VALUE_3_IDX J8 B

7 Bd 4J-cfES6 1... | * INDEX RANGE SCAN INDEX JEST_USER.MASTER_4_VALUE_3_IDX

Cost: 380 Cardinality: 1,916 Partition # : 11 Partitions accessed #1 - # 1 14

TABLE ACCESS BY LOCAL INDEX ROWID TABLE TESTJJSER. MASTER_4Cost: 2,089 Bytes: 30,656 Cardinality: 1,916 Partition#: 11 Partitions accessed #1

VIEW VIEW SYS.VW_NSO_lCost: 168,119 Bytes: 242,116,578 Cardinality: 26,901,842

19 |±]....Z= SORT UNIQUECost: 168,119 Bytes: 215,214,736 Cardinality: 26,901,842

18 B <§> UNION-ALL14 OH] PARTITION RANGE ITERATOR

! Cost: 49,428 Bytes: 92,554,336 Cardinality: 11,569,292 Partition # : 17 Partitions accessed #15 - #29

J

113 B | PARTITION LIST ALLCost: 49,428 Bytes: 92,554,336 Cardinality: 11,569,292

12P a tteTABLE ACCESS FULL TABLE TEST_USER.MASTER_4

rrvrh. AQAVSt Ryh . Q? ^ ^ H Rf.Q 9Q9J17 B

Partition # : 18 Partitions accessed #43 - #87 PARTITION RANGE ALLCost: 20,780 Bytes: 122,660,400 Cardinality: 15,332,550 Partition #: 20 Partitions accessed #1 - #38

16 a mu PARTITION LIST ALLCost: 20,780 Bytes: 122,660,400 Cardinality: 15,332,550 Partition # : 21 Partitions accessed #1

15 I...|H* INDEX FAST FULL SCAN INDEXCost: 20,780 Bytes: 122,660,400 Partition # : 21 Partitions accessed #1 - #114

! TESTJJSI O v ardinal

USER. MASTER_4_D ATE_2_IDX JilT

Figure 4.13 - Revised Execution Plan

Page 78: Oracle Cost Based Optimizer Correlations

This EP shows that all of the previous indexes were utilized with one exception—in place

of the MASTER_4_DATE_1_IDX, a Table Access Full now resides. Also notice that the cost of

this new EP is 238,430. This is slightly higher than the cost when the index was utilized before,

and indicates that this new EP is less efficient than its predecessor.

Through a method of toggling indexes on and off, this experiment was able to create

combinations for a myriad of possible EP pathways. For each “k” number of indexes, the

formula for the possible combinations is given by: Combinations = 2k. So, if there are 3 indexes,

for example, there will be 8 combinations of ways they can be toggled on and off. An example

in Figure 4.14 will make this clear:

ORACLE CBO CORRELATIONS 70

Combinations: Index 1 Index_2 Index_30 On On On1 Off On On2 On Off On3 On On Off4 Off Off On5 Off On Off6 On Off Off7 Off Off Off

Figure 4.14 - Index Toggle Combinations

Methodology for Gathering Data

With the tables created and populated, and with indexes created on every field in each

column, the following steps were followed to gather data:

Page 79: Oracle Cost Based Optimizer Correlations

1. The DBMS_STATS.GATHER_SCHEMA_STATS procedure was run to collect

cardinality data, thus ensuring the optimizer had appropriate statistics on data distribution

to function correctly.

2. The DBMS_STATS.GATHER_SYSTEM_STATS procedure was run during the initial

runs of the data gathering portion of this study, to ensure that adequate statistics were

gathered on the underlying hardware system, seek times, and overall system performance.

3. A series of queries were developed that parsed the tables in as random a fashion as could

be generated by this researcher, the goal being that each query would utilize only indexes

to gather data when executed manually with all indexes visible.

4. These queries were then passed to a Perl script that sequentially did the following:

a. All indexes associated with the query were turned off to provide a default start.

b. Each index on/off combination was explored as it related to the query, and the EP

cost of the query in question was captured. If that cost was new (meaning not a

duplicate of a previously captured cost for that query), the query was then

executed for actual execution speed.

c. The execution speed was captured, and the internal data dictionary of the RDBMS

was queried to ensure that the original EP cost was the same as the actual

execution cost when the query was run.

d. Results were stored off to a file for further analysis.

e. The next combination was tested, and the process was continued until all

combinations were checked, or until the script was manually terminated for

performance problems.

ORACLE CBO CORRELATIONS 71

Page 80: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 72

A total of 27 queries were generated against this database, 24 of which were written

against the MASTER_1, MASTER_2, and MASTER_3 tables, or a combination of them and

their associated STAR members. Only 3 queries were run against the MASTER_4 table, as the

most interesting results were generated there, eventually needing script termination do to

performance problems.

Each SQL file passed to the Perl script contained 4 sections. Those are illustrated in

Figures 4.15, 4.16, 4.17 and 4.18 respectively:

--INDEXESMASTER_1 _CHAR_1_I DX MASTER_1_CHAR_2_IDX MASTER_1_CHAR_3_IDX MASTER_1 _DATE_1 _I DX MASTER_1 _DATE_2_I DX MASTER_1 _DATE_3_I DX MASTER_1 _DATE_4_I DX MASTER_1 _DATE_5_I DX MASTER_1_VALUE_1_IDX MASTER 1 VALUE 2 IDX

Figure 4.15 - INDEX Listing

The first section of each SQL file contains a listing of the indexes that the associated

query accesses. This gave the Perl script a definitive list of indexes to switch on or off as it

checked through each combination of possible EP plans. In this example, there were ten indexes,

so there were potentially 1024 different EP variants.

Page 81: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 73

--GET_COST delete from plan_table /explain planset statement_id = 'A' for select count(*) from master_1where date_1 in (select date_1 from master_1 where date_1 between to_date('01-JAN-1970','DD-MON-YYYY') and sysdate)

and date_2 in (select date_2 from master_1 where date_2 between to_date('01-JAN-1971','DD-MON-YYYY') and sysdate) and date_3 in (select date_3 from master_1 where date_3 between to_date('01-JAN-1972','DD-MON-YYYY') and sysdate) and date_4 in (select date_4 from master_1 where date_4 between to_date('01-JAN-1973','DD-MON-YYYY') and sysdate) and date_5 in (select date_5 from master_1 where date_5 between to_date('01-JAN-1974','DD-MON-YYYY') and sysdate) and char_1 in (select char_1 from master_1 where char_1 between 'A' and 'Z') and char_2 in (select char_2 from master_1 where char_2 between 'A' and 'Z') and char_3 in (select char_3 from master_1 where char_3 between 'A' and 'Z') and (value_1 like 'a%' or value_1 like 'b%') and (value_2 like 'A%' or value_2 like 'B%')

/select cost from plan_table where statement_id = 'A' and parent_id IS NULL/exit/

Figure 4.16 - Initial Cost Capture

This section of the SQL file is used to clear out old EP estimates, and then after executing

the EP for the associated query, capture the actual cost of that query.

--TIME_COST set timing onselect /*+ MASTE R_1_QUE RY*/count(*)from master_1where date_1 in (select date_1 from master_1 where date_1 between to_date('01-JAN-1970','DD-MON-YYYY') and sysdate)

and date_2 in (select date_2 from master_1 where date_2 between to_date('01-JAN-1971','DD-MON-YYYY') and sysdate) and date_3 in (select date_3 from master_1 where date_3 between to_date('01-JAN-1972','DD-MON-YYYY') and sysdate) and date_4 in (select date_4 from master_1 where date_4 between to_date('01-JAN-1973','DD-MON-YYYY') and sysdate) and date_5 in (select date_5 from master_1 where date_5 between to_date('01-JAN-1974','DD-MON-YYYY') and sysdate) and char_1 in (select char_1 from master_1 where char_1 between 'A' and 'Z') and char_2 in (select char_2 from master_1 where char_2 between 'A' and 'Z') and char_3 in (select char_3 from master_1 where char_3 between 'A' and 'Z') and (value_1 like 'a%' or value_1 like 'b%') and (value_2 like 'A%' or value_2 like 'B%')

/exit/

Figure 4.17 - Execution Speed Capture

Page 82: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 74

This section of the SQL file performs two specific functions: it captures the actual

execution time, but it also implements a comment with the “/*+ MASTER_1_QUERY*/” phrase

following the opening “select” . This comment has similar syntax to a hint, but is not one. It is

utilized in the final process of this capture to cross check that the EP cost as was captured in code

shown in Figure 4.16 will be the same during actual execution.

--CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer_cost from v$sqlwhere sql_text like '%MASTER_1_QUERY%' and optimizer_cost > 1 order by last_load_time desc/exit/

Figure 4.18 - Final Cost Cross-Check

This final section of the SQL file is used to capture the actual cost when the query was run.

It is possible that running an EP on a query to estimate its cost might differ from the actual cost

when the query is run. This code captures that final cost and stores that information for further

analysis.

The code utilized for each query execution is attached in Appendix 3. The format for each

is similar and not arranged in any particular order.

Perl Script for Data Gathering

The Perl script for data gathering is attached in Appendix 4. Each SQL file, as mentioned

above, was opened by this script, and EP choices were investigated with index on/off toggling.

When a new cost value was discovered for a combination, the query was then run with results

Page 83: Oracle Cost Based Optimizer Correlations

captured. Values were stored in a character delimited flat file for importation into Microsoft

Excel for review and analysis. Trends were then investigated, and the objectives of this case

study were investigated.

Summary

This chapter outlined the objectives of the Oracle experiment of this thesis, and presented

the methodology used, as well as the structure and tools of the system and software approach for

data gathering and analysis. The next chapter examines the data collected.

ORACLE CBO CORRELATIONS 75

Page 84: Oracle Cost Based Optimizer Correlations

Chapter 5 - The Optimizer Experiment

Up to this point, this researcher has laid the foundations for examining the design goals

and significance of the CBO. The evolution and architecture of the CBO was introduced

(Chapter 1), technical literature showing the maturation trends of the Oracle RDBMS which

affect CBO speed and accuracy was reviewed (Chapter 2), an academic literature review

showing the beginning interests in CBO output as well as possible challenges for CBO

correlation was discussed (Chapter 3), and a methodology to test the hypothesis that correlations

could be achieved was presented (Chapter 4). This researcher now turns to the analysis of the

data collected from the experiment.

Two general database structures were utilized to collect the data: partitioned and non­

partitioned. Both produced significantly different results, primarily as a result of the underlying

amount of data found in both structures. With regards to the non-partitioned grouping, 23

queries were run, in both cached and explicitly non-cached scenarios, and results were mixed,

primarily showing non-correlation, and in some cases, actually showing negative correlation.

The speed with which data was returned was significant, and possibly skewed results. However,

with regards to the partitioned data, correlation could be found in some situations, but in others,

the results varied in such a way as to refute claims made by both Kyte and Lewis regarding the

CBO cost having any value at all.

Experimental Preliminaries

The experimental portion of this thesis consisted of running the Data_Gatherer_Script as

outlined in Chapter 4, and running statistical analysis on captured data. The script run took

approximately 72 total hours between June 8 and June 25, 2013, which included restarts to

validate consistency with runs and execution speeds. Data was then imported into an Excel

ORACLE CBO CORRELATIONS 76

Page 85: Oracle Cost Based Optimizer Correlations

spreadsheet, and statistical data computed. The order of execution is preserved in the following

high level statistical data as presented in Figure 5.1:

ORACLE CBO CORRELATIONS 77

Mdn MinType QUERY SCWvA CS Mode Count Max CS CS Slope Correl StdevNF GENERAL JOIN 2 147.81 147 152 503 496 92 0.00 -0.14 25.25

NF GENERAL JOIN 1 70.94 69 70 256 242 44 0.00 0.59 16.63

NF GENERAL JOIN 3 10.13 6 6 8 34 4 0.00 -0.49 10.25

NF MASTER 1 JOIN 3 213.88 212 217 119 353 176 -0.01 -0.60 21.22

NF MASTER 1 QUERY 153.26 150 143 311 430 116 0.00 0.00 21.21

NF MASTER 2 QUERY 136.47 119 122 174 749 68 0.00 -0.21 71.67

NF MASTER 3 QUERY 490.40 350 253 80 9050 46 -0.10 -0.27 985.52

NF MASTER ALL JOIN 4 376.89 228 #N/A 9 1214 202 -0.07 -0.38 326.20

NF MASTER ALL JOIN 5 262.05 260 267 402 765 205 0.00 -0.01 35.84

NF MASTER ALL JOIN 6 290.41 287 277 127 434 267 0.00 0.04 18.78

NF MASTER ALL JOIN 7 284.18 285 295 310 447 234 0.01 0.41 24.66

NF GENERAL JOIN 4 36.17 40 17 24 143 14 0.01 0.59 26.73

NF GENERAL JOIN 5 193.00 193 #N/A 2 240 146 -0.03 -1.00 66.47

NF GENERAL JOIN 6 85.58 49 43 12 301 5 0.02 0.44 96.68

NF GENERAL JOIN 7 18.38 9 3 382 37 2 0.00 0.12 15.55

NF GENERAL JOIN 8 103.44 45 3 16 751 1 0.01 0.23 187.58

NF GENERAL JOIN 9 56.71 44 3 16 96 1 0.01 0.78 45.16

NF MASTE 1 JOIN 1 99.26 97 97 58 232 83 0.00 -0.25 18.76

NF MASTER JOIN 2 194.10 190 195 30 399 161 -0.01 -0.47 41.10

NF MASTER 3 QUERY 3 50.00 28 #N/A 3 117 5 0.03 0.98 59.15

NF MASTER ALL JOIN 1 78.00 77 76 64 169 60 0.00 -0.18 13.38

NF MASTER ALL JOIN 2 214.80 209 211 256 634 176 0.00 -0.33 44.70

NF MASTER ALL JOIN 3 299.44 211 219 160 5052 172 -0.05 -0.36 444.78

FL GENERAL JOIN 2 180.47 171 163 503 1807 123 -0.01 -0.24 84.61

FL GENERAL JOIN 1 83.35 82 78 256 250 56 0.00 0.57 17.53

FL GENERAL JOIN 3 15.50 11 11 8 47 7 0.00 -0.49 13.44

FL MASTER 1 JOIN 3 226.39 225 226 119 467 182 -0.01 -0.50 28.17

FL MASTER 1 QUERY 156.94 155 156 311 455 120 0.00 0.06 20.46

FL MASTER 2 QUERY 147.98 136 129 174 1298 87 0.00 -0.21 110.22

FL MASTER 3 QUERY 536.41 406 395 80 8149 70 -0.10 -0.28 881.26

FL MASTER ALL JOIN 4 1065.11 1098 #N/A 9 1421 295 -0.08 -0.38 358.80

FL MASTER ALL JOIN 5 595.74 602 347 402 1326 275 0.00 0.07 263.74

FL MASTER ALL JOIN 6 577.50 559 354 127 911 334 0.16 0.74 185.89

FL MASTER ALL JOIN 7 735.23 560 337 310 2104 300 -0.02 -0.06 430.27

FL GENERAL JOIN 4 54.08 52 28 24 270 24 0.01 0.33 49.33

FL GENERAL JOIN 5 180.00 180 #N/A 2 241 119 -0.04 -1.00 86.27

FL GENERAL JOIN 6 56.17 31 5 12 400 2 0.00 -0.06 109.61

FL GENERAL JOIN 7 19.01 18 3 382 39 2 0.00 0.11 15.87

FL GENERAL JOIN 8 229.44 48 5 16 2379 1 0.01 0.07 587.66

FL GENERAL JOIN 9 53.19 51 2 16 111 1 0.01 0.74 51.73

FL MASTE 1 JOIN 1 103.40 99 90 58 381 89 0.00 -0.24 37.84

FL MASTER JOIN 2 214.33 193 209 30 823 161 -0.03 -0.35 115.99

Page 86: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 78

FL MASTER 3 QUERY 3 531.00 468 #N/A 3 1115 10 -0.03 -0.10 555.19

FL MASTER ALL JOIN 1 80.75 80 80 64 148 67 0.00 -0.19 9.63

FL MASTEr ALL JOIN 2 225.75 218 210 256 860 194 0.00 -0.21 58.38

FL MASTER ALL JOIN 3 297.11 266 265 160 3195 230 -0.02 -0.21 244.24

NF MASTER 4 QUERY 3 602167.28 25672 #N/A 50 2549082 7283 6.83 0.63 806907.62

NF MASTER 4 QUERY 1 38007.50 32423 #N/A 6 66330 12314 0.11 0.98 20769.90

NF MASTER 4 QUERY 2 84956.01 79419 #N/A 192 256432 34356 0.06 0.55 34228.19

Figure 5.1 - Experimental statistical results

The columns of this spreadsheet are described below:

Type “FLUSHED” or “NOT FLUSHED”. This will be defined in more detail

below.

QUERY -> The query that was run during this particular iteration, with run order

preserved.

Avg CS -> The average number of centiseconds associated with the query.

Mdn CS -> The median number of centiseconds associated with the query.

Mode -> The mode of the centiseconds for the query.

Count -> The number of individual index-toggle combinations that were run for

the query.

Max CS -> The maximum number of centiseconds for the overall query results.

Min CS -> The minimum number of centiseconds for the overall query results.

Slope -> The slope of the line of best fit for correlating time to cost.

Page 87: Oracle Cost Based Optimizer Correlations

Correl -> The correlational coefficient of the cost and execution speed for the

query results.

Stdev -> The standard deviation of the execution speeds for the query results.

Mention was made to “centiseconds.” The output from the Oracle “Set Timing On”

SQLPlus command is given in hours, minutes, seconds, and then hundredths of seconds. To use

the highest level of granularity and accuracy, all captured speeds were converted into hundredths

of seconds, or centiseconds. Also, the “Count” number, which came from the index-toggle

combinations of each query, represents the number of samples used in each statistical

calculation.

Non-Partitioned Queries

Several interesting things presented themselves with regards to the non-partitioned

samples. First of all, when several of the queries were run the first time, a noticeable increase in

response time appeared when compared to the reminder of the responses during subsequent runs.

For example, GENERAL_JOIN_2 took 2.42 seconds when run the first time, and all subsequent

runs were less than a second in duration. Similar happenings occurred with

MASTER_1_JOIN_3, MASTER_ALL_JOIN_4, and others. This is not unusual because

generally, the first time a query is run, data is often pulled from disk as opposed to memory, and

data retrieval speeds from disk are usually much slower than memory retrievals. This result was

not consistent between each query, however, and prompted an adjustment during the

experimental portion of the thesis: a “FLUSHED” and “NOT FLUSHED” apparatus was

employed.

ORACLE CBO CORRELATIONS 79

Page 88: Oracle Cost Based Optimizer Correlations

Chapter 4 showed that each SQL file contained four general sections: a list of indexes, an

initial explain plan cost capture, an actual execution speed capture, and a final run-time cost

capture. After data was gathered from the original 23 queries in the non-partitioned area of this

database, an adjustment was made to each of the 23 queries: all were re-written, and the line

“alter system flush buffer cache” was added to the second and third portions respectively of each.

At this point, the data capture was again run with these 23 queries. However, this time, the

adjusted SQL commands cleared data out of memory between each SQL statement. This forced

the RDBMS engine to repeatedly retrieve data from disk during each run (Burleson, 2008). So,

in the case where data was left in memory between each SQL statement, it has been denoted

“NOT FLUSHED”, and when removed, “FLUSHED”. Surprisingly, it was expected that this

change would cause each query to show a noticeable slowing in response time during each

combinatorial iteration, but this was not the case.

Another interesting finding was the general speed of each of these queries. The longest

running queries in the NOT FLUSHED area were MASTER_3_QUERY at 9050 cs, and

MASTER_ALL_JOIN_3 at 5052 cs. The average of both of these queries was respectively 4.9

and 2.9 seconds, which would still indicate to this researcher a relatively fast performance. In

the FLUSHED area, the same queries were also the longest running at 8149 cs, and 3195 cs

respectively. But it was surprising that FLUSHED queries would actually perform faster than

those that contained some data in memory. The averages on these were 4.1 and 2.9 seconds

respectively. Considering these queries pulled data from tables that contained 1,000,000 rows,

and regardless of whether the data was in memory, the queries performed consistently under 10

seconds, and the overall average was 161 cs and 265 cs respectively for FLUSHED and NOT

FLUSHED.

ORACLE CBO CORRELATIONS 80

Page 89: Oracle Cost Based Optimizer Correlations

Correlational Results - NOT FLUSHED

In the NOT FLUSHED area, nine queries resulted in positive correlations, the most

significant being 0.78 from 16 samples on GENERAL_JOIN_9, and the least significant being

0.04 from 127 samples on MASTER_ALL_JOIN_6. MASTER_3_QUERY_2 had the overall

highest positive correlation, but was discarded because of its limited sample size of only 3. Of

the original 23 queries, 13 samplings had negative correlation. Graph results from the NOT

FLUSHED sampling are available for review in Appendix 5.

The mix of results from the NOT FLUSHED samples does not support high correlation.

The original intent of this thesis was to ascertain the following: do lower cost queries result in

faster response time; can individual queries be correlated with cost; and finally, can all queries

together be correlated to cost. Results from this sampling suggest that these things are not

consistently possible.

ORACLE CBO CORRELATIONS 81

Page 90: Oracle Cost Based Optimizer Correlations

To illustrate the concerns with this first test objective, the following graphs are provided in

Figures 5.2, 5.3, and 5.4:

ORACLE CBO CORRELATIONS 82

GENERAL JOIN 2

CO ST(Correl = -0.14, Sample Size = 503)

Figure 5.2 - NOT FLUSHED General_Join_2

Page 91: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 83

Figure 5.3 - NOT FLUSHED Master_All_Join_3

Figure 5.4 - NOT FLUSHED Master_1_Join_2

Page 92: Oracle Cost Based Optimizer Correlations

Each of these queries showed a negative correlation: as the COST has increased, the

speed of the query decreased. This was counter-intuitive: the higher cost the query, the slower it

is expected to operate. In real world terms, developers would be misled using the CBO estimates

for these particular queries. As they attempted to lower the overall cost, they would in fact be

slowing the queries down.

Time based correlations were meaningless on many of the queries when the overall time

scale was taken into account. For example, GENERAL_JOIN_7 in Figure 5.5 has a range

between 2 and 37 cs. Regardless of the disparity of data, all the groupings happen in less than a

fraction of a second, and so cost, in this situation, is not important. In real world application, any

query that returns results in less than a second is considered fast.

ORACLE CBO CORRELATIONS 84

Figure 5.5 - NOT FLUSHED General_Join_7

Page 93: Oracle Cost Based Optimizer Correlations

GENERAL_JOIN_9, shown in Figure 5.6, also had a very small time range, from 1 to 96

cs. This particular query contained groupings that were confusing. For example, at the

approximate cost of 7000, the resultant speed landed above the trend line. But, when the cost

rose to approximately 8000, the resultant speed landed below the trend. This is completely

opposite of what would be expected. Furthermore, at 8000, the result speeds was very fast.

Regardless of this confusing data spread, all of the queries ran very fast, making predictability

less important.

ORACLE CBO CORRELATIONS 85

GENERAL JOIN 9

CO ST(Correl=0.78, Sample Size=16)

Figure 5.6 - NOT FLUSHED General_Join_9

Correlational Results - FLUSHED

In the FLUSHED area, eight queries resulted in positive correlations, the most significant

being GENERAL_JOIN_9 and MASTER_ALL_JOIN_6 at 0.74 each, and 16 and 127 data

samples respectively. Of all queries in this area, 15 had negative correlations. Again,

Page 94: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 86

MASTER_3_QUERY_2 was discarded do to its small sample size, but surprisingly, in the

FLUSHED sampling, this query actually had a negative correlation. Graph results from the

FLUSHED sampling are available for review in Appendix 6.

FLUSHED samples were similar to the NOT FLUSHED, and didn’t support correlation

either: the problems were virtually identical. The graphs in Figures 5.7, 5.8, and 5.9 illustrate

negative correlations, which again violate the assumption that higher cost queries perform more

slowly than those with lower costs:

FLUSH MASTER ALL JOIN 1

160♦

140

120

wo£ 80

♦ ♦Ca) 60O

40

20

00.00 2000.00 4000.00 6000.00 8000.00 10000.00 12000.00 14000.00 16000.00

CO ST(Correl = -0.19, Sample Size = 64)

Figure 5.7 - FLUSHED Master_All_Join_1

Page 95: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 87

FLUSH MASTER_ALL_JOIN_2

1000 900 800

(» 700 c 600 § 500 | 400 J 300

200 100

00.00 10000.00 20000.00 30000.00 40000.00 50000.00

CO ST(Correl = -0.21, Sample Size = 256)

______ ♦♦

Figure 5.8 - FLUSHED Master_All_Join_2

FLUSH MASTER_ALL_JOIN_7

2500

2000

0)=1500

ooeiS

11000eC

500

049000.00 50000.00 51000.00 52000.00 53000.00 54000.00 55000.00 56000.00 57000.00

CO ST(Correl = -0.06, Sample Size = 310)

Figure 5.9 - FLUSHED Master_All_Join_7

Page 96: Oracle Cost Based Optimizer Correlations

As with the NOT FLUSHED results, those in the FLUSED sampling also suffered from

significant variability. The scale of execution was also very shallow in many of them. Again,

Figure 5.10 above is a good example of this: the standard deviation of this sampling is 430.27.

Partitioned Sampling

Three queries were run against the partitioned table MASTER_4. Significant

performance differences were noted as the minimum value for overall speed came from

MASTER_4_QUERY_3 at 7283 cs, but the maximum value from the same query was 2549082

cs, which is a little over 7 hours. Correlations for all of these queries were positive.

MASTER_4_QUERY_1 had the highest correlation, and is illustrated in Figure 5.10:

ORACLE CBO CORRELATIONS 88

Figure 5.10 - Master_4_Query_1

MASTER_4_QUERY_2, shown in Figure 5.12 below, presented challenges related to

potential confidence as cost values grew. Notice that the data variability spread away from the

Page 97: Oracle Cost Based Optimizer Correlations

trend line as the cost increased. Fortunately, the end of the trend also represents the most

inefficient possibilities with regards to index usage for this particular query— all of the indexes

had been toggled off, and full table scans were the result. This mean there would be no way to

further degrade this query without a complete rewrite or the introduction of hints to change the

CBO execution pathway.

ORACLE CBO CORRELATIONS 89

MASTER_4_QUERY_2

0.00 500000.00 1000000.00 1500000.00 2000000.00 2500000.00 3000000.00

CO ST(Correl = 0.55, Sample Size = 192

Figure 5.11 - Master_4_Query_2

MASTER_4_QUERY_3 was the most puzzling of all the partitioned queries. Data

showed that the response time scale in centiseconds for all index-toggle combinations from 0

through 15 were in a range that made sense. However, from combinations 16 through 29,

highlighted in yellow for illustration purposes, the scale shifted from minutes for each query to

several hours. The illustration of this information is presented in Figure 5.12:

Page 98: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 90

EP CostActual

TimeQuery CostMASTER 4 QUERY 3.sql 142271.00 142271.00 00:05:02.93MASTER 4 QUERY 3.sql 165010.00 165010.00 00:01:15.73MASTER 4 QUERY 3.sql 149282.00 149282.00 00:01:17.13MASTER 4 QUERY 3.sql 166219.00 166219.00 00:02:33.19MASTER 4 QUERY 3.sql 255481.00 255481.00 00:02:09.42MASTER 4 QUERY 3.sql 278220.00 278220.00 00:02:23.41MASTER 4 QUERY 3.sql 262492.00 262492.00 00:02:17.09MASTER 4 QUERY 3.sql 279429.00 279429.00 00:03:16.13MASTER 4 QUERY 3.sql 145474.00 145474.00 00:02:42.93MASTER 4 QUERY 3.sql 168213.00 168213.00 00:02:48.64MASTER 4 QUERY 3.sql 152486.00 152486.00 00:02:43.89MASTER 4 QUERY 3.sql 169422.00 169422.00 00:04:20.42MASTER 4 QUERY 3.sql 258684.00 258684.00 00:03:44.32MASTER 4 QUERY 3.sql 281423.00 281423.00 00:03:55.03MASTER 4 QUERY 3.sql 265696.00 265696.00 00:03:45.48MASTER 4 QUERY 3.sql 282633.00 282633.00 00:05:21.40MASTER 4 QUERY 3.sql 260428.00 260428.00 03:59:18.90MASTER 4 QUERY 3.sql 283167.00 283167.00 06:24:39.72MASTER_4_QUERY_3.sql 267440.00 267440.00 04:21:53.33MASTER 4 QUERY 3.sql 284377.00 284377.00 04:20:47.09MASTER 4 QUERY 3.sql 373638.00 373638.00 03:59:04.63MASTER_4_QUERY_3.sql 396377.00 396377.00 04:01:18.96MASTER 4 QUERY 3.sql 380650.00 380650.00 04:05:14.04MASTER 4 QUERY 3.sql 397587.00 397587.00 04:46:34.88MASTER_4_QUERY_3.sql 263631.00 263631.00 04:16:55.70MASTER 4 QUERY 3.sql 286371.00 286371.00 04:07:26.00MASTER 4 QUERY 3.sql 270643.00 270643.00 03:56:47.55MASTER_4_QUERY_3.sql 287580.00 287580.00 03:57:28.01MASTER 4 QUERY 3.sql 376841.00 376841.00 05:21:17.06MASTER_4_QUERY_3.sql 399581.00 399581.00 04:49:26.98

Figure 5.12 - Master_4_Query_3 Data

The results of this query were checked multiple times and duplicated consistently. Many

additional combinations could have been tested, but were not because the cost of each additional

combination became labor intensive on the hosting machine. This query was manually

terminated after the above information was captured.

Page 99: Oracle Cost Based Optimizer Correlations

These results produced confusion on at least two levels. The first was discussed with

the sudden jump in performance degradation. The second involved the starkly contrasting

disparity between cost estimates and execution speeds. For example, combination 15 had an

actual cost of 282633, and an execution time of 00:05:21.40 which is a little over 5 minutes.

However, the very next combination of 16 had an actual cost of 260428 which is less than its

predecessor, but the execution time is 3:59:18.90, almost 4 hours. This is a significant

difference.

The first 17 combinations in this query execution toggled off indexes associated with

CHAR_1, CHAR_2, CHAR_3, and DATE_1 of this table. On all of the final combinations, the

DATE_2 index was toggled off. The range partition model for this table was on DATE_1 and

sub-partitioned on CHAR_1; DATE_2 was not involved in the structural creation of this table

except as a common field. It is unknown why turning off the index of DATE_2 would cause

issues. The graphical representation of MASTER_4_QUERY_3 is show in Figure 5.13:

ORACLE CBO CORRELATIONS 91

Page 100: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 92

Figure 5.13 - Master_4_Query_3

Summary

This Oracle experiment did support some of the claims made by Kyte, but none of the

claims of Lewis. Kyte’s arguments were more restrictive than Lewis. Kyte argued CBO

estimates were arbitrary numbers that could only be applied to a single query, and were only

used by the CBO as a way to judge query efficiency. Also, he noted that cost could not be

correlated to execution speeds, and especially not used to correlate between separate queries.

Correlational findings in this experiment did not support cross query correlations with regards to

speed predictability, which is in agreement with Kyte. However, the disparity with simply

having a lower cost estimate for a query execution plan perform consistently faster than a higher

cost for the same query is in opposition to Kyte. If the CBO estimate helps the database choose a

more optimal plan, than it is reasonable to assume the more optimal plan would perform faster.

Page 101: Oracle Cost Based Optimizer Correlations

The above chapters established this. As shown, however, many of the queries actually had

negative correlations, and the query results from MASTER_4_QUERY_3 in particular showed

that even in positively correlated results, lower cost queries may perform significantly worse.

Additional research is needed to understand how and why CBO costs provide inconsistent

results, deviating away from expected performance objectives. Suggestions for additional

research have been provided in the next chapter.

ORACLE CBO CORRELATIONS 93

Page 102: Oracle Cost Based Optimizer Correlations

Chapter 6 - Conclusion

This researcher believes this project contributes to the sparse literature on CBO

correlations. No attempts to correlate CBO estimates to execution speed were found in either the

trade or academic literature, and therefore this study should be considered as an early attempt at

understanding the feasibility of such correlations, as well as a possible starting point for further

research efforts. Researchers have made reference to the desirability of predictive CBO

correlations. Lewis was one of the main proponents of this. Despite this need, however, it was

surprising to this researcher that findings discovered from experimentation showed all of the

claims of Lewis as unsupportable, and only one of the claims of Kyte could be supported.

Different Approach Possibilities

In designing this research, various validating procedures and controls were utilized. The

overall experimental run was performed three times, ensuring consistency of results.

Furthermore, steps were taken to ensure that the underlying machine used during the experiment

was completely isolated and idle from all outside users or non-Oracle processes. The machine

itself was completely dedicated to this research.

Several challenges presented themselves during the experiment that could be addressed

differently in subsequent attempts:

1. Machine memory was limited. This affected buffer-cache hit ratios. For

example, when running the non-partitioned sections of the experiment, buffer-cache

hit ratios only reached a 75% level, meaning significant I/O was still required for

each subsequent query iteration. If memory was augmented and buffer-cache hit

ratios significantly increased, this might influence outcomes.

ORACLE CBO CORRELATIONS 94

Page 103: Oracle Cost Based Optimizer Correlations

2. Disk space was limited. This affected the way the partitioned data was stored,

requiring compression. No attempts were made to look at CBO correlations in non­

compressed partitioned data.

3. Limited disk space also created limits to the amount of data which could be stored

in the non-partitioned tables. Had more disk space been available, increased data

could have been stored, which might have affected the overall results of the

experiment.

4. Query creation was difficult. Each query was created in an attempt to utilize

individual indexes and avoid full-table scans when the indexes were visible.

However, this objective required significant trial and error. Additional options for

queries that would have returned more data, and perhaps taken longer to run,

particularly in the non-partitioned area, would have been useful.

5. The data structure of the tables in the non-partitioned area was quite

heterogeneous. For example, the date fields were all the same, character fields were

the same, and the varchar2 fields had the same length. When an index was turned off

for one char field, for example, it often had the exact same effect on the CBO

estimate as if that original index were left on, and the next index on a similar char

field were turned off. This added complexity to the query design as simply turning

off an index didn’t always change the CBO estimate.

6. The number of index toggles was limited to ensure timely completion of the

experiment. At most, only 12 indexes were used on any one query, resulting in at

most 4096 iterative runs. Had additional time been available, more data could have

been gathered.

ORACLE CBO CORRELATIONS 95

Page 104: Oracle Cost Based Optimizer Correlations

These challenges were part of the experimental portion of this thesis. However, the

largest challenge this researcher encountered was the extremely fast results on virtually all of the

queries in the non-partitioned area. When dealing with sub second result times, for example, it

was difficult to ascertain if correlations had any meaning at all since query predictability

becomes less important in such circumstances. Had the data been augmented, the heterogeneous

structure of the data structures randomized differently, and the queries changed to increase the

overall result set, it might have been possible to produce slower results. This would have made

correlation more meaningful.

Associated with this speed problem was the lack of disparity with the individual results

themselves. With the exception of the first query run which sometimes produced a slower result

time, queries tended to clump together into pockets of completion time. This made correlation

more difficult as the expectation was that when all indexes were utilized, queries would be fast.

When all the indexes were toggled off, however, results didn’t suffer as expected. They

remained clumped with the others. It was in reaction to this finding that this researcher decided

to augment the testing to include the “FLUSHED” approach outlined in Chapter 4. Again, it was

surprising that these new results, which completely circumvented the buffer-cache area, could

actually perform better.

Suggestions for Further Study

Several additional questions arose through this study, and present areas of further

research. Some of these include:

1. What role does the number of rows in data structures play in the correlational potential

of non-partitioned data? In the case of this research, the non-partitioned results were

fast, in the centisecond range on most queries. Three general questions arise:

ORACLE CBO CORRELATIONS 96

Page 105: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 97

a. Why were query results so fast when it appears these tables had significant

numbers of rows, and when buffer-cache hit ratios were not taken into

consideration as shown by data being flushed from memory and the queries

rerun?

b. If the amount of data were significantly increased in these tables, would this cause

the values of each query to jump to a higher time factor, and would that allow for

data spreading in such a way to better correlate?

c. What role would buffer-cache hit ratios play in these queries if all of the data

could be held in memory, and would there be a significant performance difference

when cached results were flushed? In the case of this research, for example,

flushed results and non-flushed results were generally very consistent, as though

memory cache had little effect at all.

2. What is the role of non-key columns in partition tables, and why can turning off single

indexes have such a dramatic effect on performance when other non-key indexes don’t

have such an effect? Four general questions arise here:

a. If non-key indexes have dramatic effect on partitioned tables, would different

index structures such as composite indexes provide superior results, and how

would you know when to use them?

b. Why would turning off a standard index have such a dramatic effect, but turning

off a bit-map index not produce similar effects? The index in question was on a

date field. Would similar problems arise if an index was turned off on a character

field, and if so, why?

Page 106: Oracle Cost Based Optimizer Correlations

c. What affect does caching or non-caching of data have on partitioned tables? In

this research, no attempt was made to flush memory as performance degradations

were already significantly hampered, simply when specific indexes were turned

off.

d. If correlation is not possible on cached data, could it be affected on non-cached

data?

e. If non-cached correlation were possible, would it apply to non-partitioned tables

of a certain size, partitioned tables of a certain size, or both?

3. If correlation is not possible, even when using multiple cost estimates for the same

query, then why does the EP still exist, and why is it a tool suggested by Oracle as a way

to investigate and tune queries?

4. Were there other factors, such as a bug, a missing patch, or a specific scenario type

anomaly that affect this thesis’ research in such a way as to produce false results? Can

this research be duplicated?

Other topics might present themselves as this list is not exhaustive. However, these

suggestions do open up additional questions that have not been answered with regards to CBO

cost correlations.

Final Comments

This thesis proceeded on the assumption that CBO correlations might be possible.

Results suggest this is not currently the case, at least not with any degree of predictability.

However, this is a single study, and additional work to corroborate or refute the findings of this

study is needed. From a development perspective, it is the hope of this researcher that CBO

correlations will eventually become an integral and accessible part of the Oracle architecture.

ORACLE CBO CORRELATIONS 98

Page 107: Oracle Cost Based Optimizer Correlations

References

Ahmed, R. (2010). Query processing in Oracle DBMS. Paper presented at Processing o f the

ACM 13th International Workshop on Data Warehousing and OLAP. Toronto. doi:

10.1145/1871940.1871942

Ahmed, R., Lee, A., Witkowski, A., Das, D., Su, H., & Zait, M. et al. (2006). Cost-based query

transformation in Oracle. Paper presented at Proceedings o f the 32nd international

conference on very large data bases. Seoul.

Antoshenkov, G., & Ziauddin, M. (1996). Query processing and optimization in Oracle RDB.

The VLDB Journal - The International Journal on Very Large Data Bases, 5(4), 229-237.

doi: 10.1007/s007780050026

Burleson, D. K. (n.d.). Oracle bitmap indexes. Retrieved from http://www.dba-

oracle.com/oracle_tips_bitmapped_indexes.htm

Burleson, D. K. (2006). e-Bay's massive Oracle database. Retrieved from http://www.dba-

oracle. com/oracle_news/news_ebay_massive_oracle.htm

Burleson, D. K. (2007). Oracle MREADTIM and SREADTIM workload statistics. Retrieved

from http://www.dba-oracle.com/t_mreadtim_sreadtim_workload_statistics.htm

Burleson, D. K. (2008). Oracle: Flush the data buffer cache. Retrieved from http://www.dba-

oracle.com/t_flush_buffer_cache.htm

Burleson, D. K. (2009). Oracle SQL plan regression. Retrieved http://www.dba-

oracle.com/t_sql_plan_regression.htm

Burleson, D. K. (2010). Turbocharge SQL with advanced Oracle indexing. Retrieved from

http://www.dba-oracle.com/art_9i_indexing.htm

ORACLE CBO CORRELATIONS 99

Page 108: Oracle Cost Based Optimizer Correlations

Burleson, D. K. (2012). Oracle partitioning. Retrieved http://www.dba-

oracle.com/tips_oracle_partitioning_hash_range.htm

Burleson, D. K., & Danchenkov, A. (2005). Oracle tuning, the definitive reference. Kittrell:

Rampant.

Carter, S. (2007). The new language o f business: SOA & web 2.0. Upper Saddle River, NJ: IBM

Press.

Chamberlin, D. & Boyce, R. (1974). SEQUEL: A structured English query language.

Proceedings o f the 1974 ACM SIGFIDET (now SIGMOD) workshop on Data description,

access and controlFIDET '74. 249 - 264. Ann Arbor. doi: 10.1145/800296.811515.

Colgan, M. (2005). Query optimization in Oracle database 10g release 2 - an Oracle white paper

June 2005. Redwood Shores, CA: Oracle.

Colgan, M. (2008). Upgrading from Oracle database 9i to 10g: What to expect from the

optimizer - an Oracle white paper July 2008. Redwood Shores, CA : Oracle.

Colgan, M. (2010). Upgrading from Oracle database 10g to 11g: What to expect from the

optimizer - an Oracle white paper November 2010. Redwood Shores, CA: Oracle.

Colgan, M. (2011a). The Oracle optimizer explain the explain plan - an Oracle white paper May

2011. Redwood Shores, CA: Oracle.

Colgan, M. (2011b). Understanding optimizer statistics - an Oracle white paper November 2011.

Redwood Shores, CA: Oracle.

Colgan, M. (Nov, 2011c). Lies, damned lies, and statistics. Retrieved from

https://blogs.oracle.com/optimizer/entry/lies_damned_lies_and_statistics

Date, C. (2003). Edgar F. Codd. A tribute and personal memoir. ACM SIGMOD Record. 32[4],

4-13. doi: 10.1145/959060.959061

ORACLE CBO CORRELATIONS 100

Page 109: Oracle Cost Based Optimizer Correlations

Davies, J., Shaffer, D., & L'her, D. (2009). Oracle SOA Suite 11g -- an Oracle White Paper.

Redwood Shores, CA: Oracle.

Fan, S., Jiang, L., Lumpkin, G., & Sancheti, S. (2003). DSS performance in Oracle database 10g

- an Oracle White Paper September 2003. Redwood Shores, CA: Oracle.

Fechner, D. (2006, Jun 15). Distribution statistics uses with the DB2 optimizer. Retrieved from

http://www.ibm.com/developerworks/data/library/techarticle/dm-0606fechner/

Galindo-Legaria, C., Joshi, M. M., Waas, F., & Wu, M. (2003). Statistics on views. Paper

presented at Proceedings o f the 29th international conference on very large data bases - 29.

Berlin.

Hall, T. (2012). Automatic SQL tuning in Oracle database 10g. Retrieved from

http://www.oracle-base.com/articles/10g/automatic-sql-tuning-10g.php

Herodotou, H., Borisov, N., & Babu, S. (2011). Query optimization techniques for partitioned

tables. Paper presented at Proceedings o f the 2011 international conference on management

o f data. Athens. doi: 10.1145/1989323.1989330

Hu, Y., Sundara, S., & Srinivasan, J. (2007). Supporting time constraint SQL queries in Oracle.

Paper presented at Proceedings o f the 33rd international conference on very large data

bases. 1207 - 1218. Vienna.

Hu, Y., Sundara, S., & Srinivasan, J. (2009). Estimating aggregates in time-constrained

approximate queries in Oracle. Paper presented at Proceedings o f the 12th international

Conference on Extending Database Technology: Advances in Database Technology. 1104­

1107. Saint-Petersburg. doi: 10.1145/1516360.1516487

Krompass, S., Kuno, H., Wiener, J., Wilkinson, K., Dayal, U., & Kemper, A. (2009). Managing

long-running queries. Paper presented at the 12th International Conference on Extending

ORACLE CBO CORRELATIONS 101

Page 110: Oracle Cost Based Optimizer Correlations

Database Technology: Advances in Database Technology. 132-143. Saint-Petersberg. doi:

10.1145/1516360.1516377

Kuntulu, K. (2010). Invisible indexes in Oracle 11g. Retrieved from

http://viralpatel.net/blogs/invisible-indexes-in-oracle-11g/

Kyte, T. (2000, Jun 15). Consider cost or time -- trying to compare the cost of two queries.

Retrieved from

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:313416745628

Kyte, T. (2005). Ask Tom. Retrieved from

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:40230704959128

Kyte, T. (2009, Feb). On dynamic sampling. Retrieved from

http://www.oracle.com/technetwork/issue-archive/2009/09-jan/o19asktom-086775.html

Kyte, T. (2013, Jul). Hints when to use. Retrieved from

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:7038986332061

Lee, A. W., & Zait, M. (2008). Closing the query processing loop in Oracle 11g. Proceedings of

the VLDBEndowment, 1(2), 1368-1378. Auckland. doi: 10.1145/1454159.1454178

Leishman, R. (2007, Feb). Understanding indexes. Retrieved from

http://www.orafaq.com/node/1403

Lejeune, H., Buch, V., & Palmer, C. (2003). Database performance with Oracle database 10g

release 2 - an Oracle white paper May 2005. Redwood Shores, CA: Oracle.

Lewis, J. (2006a). Cost-based oracle fundamentals. Berkeley: Apress.

ORACLE CBO CORRELATIONS 102

Page 111: Oracle Cost Based Optimizer Correlations

Lewis, J. (2006b). Recent enhancement in optimization and some not so recent. Retrieved from

http://www.oracle.com/technetwork/database/focus-areas/manageability/optimizer-

enhancements-jl ewis-131438.pdf

Lewis, J. (2006c). Cost is time. Retrieved from

http://jonathanlewis.wordpress.com/2006/12/11/cost-is-time/

Lewis, J. (2011, Jan 10). Cost -- again. Retrieved from

http://jonathanlewis.wordpress.com/2011/01/10/cost-again

Luo, G., Naughton, J. F., Ellmann, C. J., & Watzke, M. W. (2004). Toward a progress indicator

for database queries. In Proceedings o f the 2004 ACM SIGMOD International Conference on

Management o f Data. Paris: ACM. 791-802. doi: 10.1145/1007568.1007658

Microsoft (2009, Jan). Database engine tuning advisor overview. Retrieved from http://

msdn.microsoft.com/en-us/library/ms173494.aspx

Niemiec, R. (1999). Oracle performance tuning tips & techniques. Berkeley: Osborne/McGraw-

Hill.

Oracle (2005, Jun). Oracle database performance tuning guide 10g release 2 (10.2) B14211-01.

Retrieved from http://web.njit.edu/info/limpid/DOC/server.102/b14211.pdf

Oracle (2007, Jul). VLDB and partitioning guide 11g Release 1. Retrieved from

http://docs.oracle.com/cd/B28359_01/server.111/b32024.pdf

Oracle (2011, Sep). Oracle database concepts 11g release 2 (11.2) E25789-01. Retrieved from

http://docs.oracle.com/cd/E11882_01/server.112/e25789.pdf

OracleFaqs (2008, Sep). Predicate. Retrieved from http://www.orafaq.com/wiki/Predicate

ORACLE CBO CORRELATIONS 103

Page 112: Oracle Cost Based Optimizer Correlations

OracleFaqs (2012, Jan). Toad product review. Retrieved from

http://www.orafaq.com/wiki/TOAD_Product_Review

Portugal, P. F. (2009). The history of Oracle. Retrieved from http://www.dba-

oracle. com/t_hi story_oracle.htm

Ratzesberger, O. (2010, Oct 06). Interview by Monash. eBay followup -- Greenplum out,

Teradata > 10 petabytes, Hadoop has some value, and more. Retrieved from

http://www.dbms2.com/2010/10/06/ebay-followup-greenplum-out-teradata-10-petabytes-

hadoop-has-some-value-and-more/

Rob, P., & Coronel, C. (2007). Database systems, design, implementation, and management.

Boston: Thomson Learning.

Tendulkar, D. M., & Phalak, C. (2011). Proactive performance testing using SQL performance

assurance services (sql-pass). Paper presented at Proceedings o f the International

Conference & Workshop on Emerging Trends in Technology. 541-547. Mumbai. doi:

10.1145/1980022.1980138

Thomas, J. (2011, Jul 25). Database revenues on the rise, so sayeth the Tracker. Retrieved from

http://www.itjungle.com/tfh/tfh072511-story09.html

Trenholm, R. (2009, Nov 02). NSA to store yottabytes in Utah data center. Retrieved from

http://crave.cnet.co.uk/gadgets/nsa-to-store-yottabytes-in-utah-data-centre-49304118/

Waas, F. M., Giakoumakis, L., & Zhang, S. (2011). Plan space analysis: An early warning

system to detect plan regressions in cost-based optimizers. Paper presented at Proceedings

o f the Fourth International Workshop on Testing. Article 2. Athens. doi:

10.1145/1988842.1988844

ORACLE CBO CORRELATIONS 104

Page 113: Oracle Cost Based Optimizer Correlations

Yagoub, K., & Gongloor, P. (2007). SQL performance analyzer - an Oracle white paper

November 2007. Redwood Shores, CA: Oracle.

Yang, H., & Faris, N. (2009, Sep 14). Ackamai reveals 2 seconds as the new threshold of

acceptability for ecommerce web page response times. Retrieved from

http://www.akamai.com/html/about/press/releases/2009/press_091409.html

Ziauddin, M., Das, D., Su, H., Zhu, Y., & Yagoub, K. (2008). Optimizer plan change

management: Improved stability and performance in Oracle 11g. Proceedings o f the VLDB

Endowment, 1(2), 1346-1355. Auckland. doi: 10.1145/1454159.1454175

ORACLE CBO CORRELATIONS 105

Page 114: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 106

Appendix 1

CREATE TABLE TEST_USER.MASTER_1 (PK_VALUEMASTER_2_LINKMASTER_3_LINKDATE_1DATE_2DATE_3DATE_4DATE_5CHAR_1CHAR_2CHAR_3VALUE_1VALUE_2

NUMBER,NUMBER,NUMBER,DATE,DATE,DATE,DATE,DATE,CHAR(1 BYTE), CHAR(1 BYTE), CHAR(1 BYTE), VARCHAR2(10 BYTE) VARCHAR2(10 BYTE'

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_1_L2_TAB1(PK_VALUEPARENT_LINKDATE_1DATE_2DATE_3CHAR_1CHAR_2CHAR 3

NUMBER,NUMBER,DATE,DATE,DATE,CHAR(1CHAR(1CHAR(1

BYTE)BYTE)BYTE)

Page 115: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 107

VALUE_1 VARCHAR2(10 BYTE)VALUE_2 VARCHAR2(10 BYTE)VALUE_3 VARCHAR2(10 BYTE)

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_1_L2_TAB2(PK_VALUEPARENT_LINKDATE_1DATE_2DATE_3CHAR_1CHAR_2CHAR_3VALUE_1VALUE_2VALUE_3

NUMBER,NUMBER,DATE,DATE,DATE,CHAR(1 BYTE), CHAR(1 BYTE), CHAR(1 BYTE), VARCHAR2(10 BYTE) VARCHAR2(10 BYTE) VARCHAR2(10 BYTE)

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTS

64K1M1UNLIMITED

Page 116: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 108

PCTINCREASE 0BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_1_L2_TAB3(PK_VALUEPARENT_LINKDATE_1DATE_2DATE_3CHAR_1CHAR_2CHAR_3VALUE_1VALUE_2VALUE_3

NUMBER,NUMBER,DATE,DATE,DATE,CHAR(1 BYTE), CHAR(1 BYTE), CHAR(1 BYTE), VARCHAR2(10 BYTE) VARCHAR2(10 BYTE) VARCHAR2(10 BYTE)

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_1_L3_TAB1(PK VALUE NUMBER,

Page 117: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 109

PARENT_LINKDATE_1DATE_2DATE_3DATE_4DATE_5VALUE_1VALUE_2VALUE_3CHAR_1CHAR 2

NUMBER,DATE,DATE,DATE,DATE,DATE,VARCHAR2(10 BYTE) VARCHAR2(10 BYTE) VARCHAR2(10 BYTE)CHARCHAR

;1 BYTE) '1 BYTE)

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_1_L3_TAB2(PK_VALUEPARENT_LINKDATE_1DATE_2DATE_3DATE_4DATE_5VALUE_1VALUE_2VALUE_3CHAR_1CHAR 2

NUMBER,NUMBER,DATE,DATE,DATE,DATE,DATE,VARCHAR2(10 BYTE) VARCHAR2(10 BYTE) VARCHAR2(10 BYTE)CHARCHAR

;1 BYTE) '1 BYTE)

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT)

Page 118: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 110

PCTUSEDPCTFREEINITRANSMAXTRANSSTORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_1_L3_TAB3(PK_VALUEPARENT_LINKDATE_1DATE_2DATE_3DATE_4DATE_5VALUE_1VALUE_2VALUE_3CHAR_1CHAR 2

NUMBER,NUMBER,DATE,DATE,DATE,DATE,DATE,VARCHAR2(10 BYTE) VARCHAR2(10 BYTE) VARCHAR2(10 BYTE)CHARCHAR

1 BYTE)1 BYTE)

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

Page 119: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 111

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_2 (PK VALUE NUMBER,MASTER 1 LINK NUMBER,MASTER 3 LINK NUMBER,VALUE 1 2RAHRCHVAR 10 BYTE) ,VALUE 2 VARCHAR2 10 BYTE) ,VALUE 3 VARCHAR2 10 BYTE) ,VALUE 4 2RAHRCHVAR 10 BYTE) ,VALUE 5 VARCHAR2 01 BYTE) ,CHAR 1 CHAR(1 BYTE) ,CHAR_2 CHAR(1 BYTE) ,CHAR_3 CHAR(1 BYTE) ,DATE_1 DATE,DATE 2 DATE

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_2_L2_TAB1(PK_VALUE NUMBER,DATE_1 DATE,DATE_2 DATE,DATE 3 DATE,

Page 120: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 112

DATE_4 DATE,DATE 5 DATE,DATE 6 DATE,DATE 7 DATE,DATE_8 DATE,DATE 9 DATE,DATE10 DATE,PARENT LINK NUMBER

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_2_L2_TAB2(PK_VALUENUM_1NUM_2NUM_3NUM_4NUM_5NUM_6NUM_7NUM_8NUM_9NUM_10PARENT LINK

NUMBER,NUMBER,NUMBER,NUMBER,NUMBER,NUMBER,NUMBER,NUMBER,NUMBER,NUMBER,NUMBER,NUMBER

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED 0 PCTFREE 10 INITRANS 1

Page 121: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 113

MAXTRANSSTORAGE

255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_2_L2_TAB3(PK VALUE NUMBER,VALUE 1 VARCHAR2 10 BYTEVALUE 2 VARCHAR2 10 BYTEVALUE 3 VARCHAR2 10 BYTEVALUE 4 VARCHAR2 10 BYTEVALUE 5 2RAHRCHVAR 10 BYTEVALUE 6 VARCHAR2 10 BYTEVALUE 7 VARCHAR2 10 BYTEVALUE 8 VARCHAR2 10 BYTEVALUE 9 VARCHAR2 10 BYTEVALUE 10 2RAHRCHVAR 10 BYTEPARENT_LINK NUMBER

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHE

Page 122: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 114

NOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_2_L3_TAB1(PK VALUE NUMBER,PARENT LINK NUMBER,VALUE 1 VARCHAR2 10 BYTE) iVALUE 2 VARCHAR2 10 BYTE) iVALUE 3 VARCHAR2 10 BYTE) iVALUE 4 VARCHAR2 10 BYTE) iDATE_1 DATE,DATE 2 DATE,DATE 3 DATE,CHAR 1 CHAR(1 BYTE) i

CHAR_2 CHAR(1 BYTE) i

CHAR_3 CHAR(1 BYTE)i

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_2_L3_TAB2(PK_VALUEPARENT_LINKVALUE_1VALUE_2VALUE_3VALUE_4DATE_1DATE 2

NUMBER,NUMBER,VARCHAR2(10 BYTE) VARCHAR2(10 BYTE) VARCHAR2(10 BYTE) VARCHAR2(10 BYTE) DATE,DATE,

Page 123: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 115

DATE_3CHAR_1CHAR_2CHAR_3

DATE,CHAR(1CHAR(1CHAR(1

BYTE)BYTE)BYTE)

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_2_L3_TAB3(PK VALUE NUMBER,PARENT LINK NUMBER,VALUE 1 VARCHAR2 10 BYTE) ,VALUE 2 VARCHAR2 10 BYTE) ,VALUE 3 VARCHAR2 10 BYTE) ,VALUE 4 VARCHAR2 10 BYTE) ,DATE_1 DATE,DATE 2 DATE,DATE 3 DATE,CHAR 1 CHAR(1 BYTE) ,CHAR_2 CHAR(1 BYTE) ,CHAR_3 CHAR(1 BYTE)i

)TABLESPACE TEST_DATARESULT_CACHE (MODE DEFAULT)PCTUSED 0PCTFREE 10INITRANS 1MAXTRANS 25 5STORAGE (

INITIAL 64KNEXT 1M

Page 124: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 116

MINEXTENTS 1MAXEXTENTS UNLIMITEDPCTINCREASE 0BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_3(PK_VALUENUM_1NUM_2NUM_3NUM_4NUM_5CHAR_1CHAR_2CHAR_3VALUE_1VALUE_2MASTER_1_MASTER 2

LINKLINK

NUMBER,NUMBER,NUMBER,NUMBER,NUMBER,NUMBER,CHAR(1 BYTE), CHAR(1 BYTE), CHAR(1 BYTE), VARCHAR2(10 BYTE) VARCHAR2(10 BYTE) NUMBER,NUMBER

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

Page 125: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 117

CREATE TABLE TEST_USER.MASTER_3_L2_TAB1(PK_VALUECOMP_1COMP_2COMP_3DATE_COMP_1DATE_COMP_2NUM_COMP_1NUM_COMP_2NUM_COMP_3PARENT LINK

NUMBER,CHAR(1CHAR(1CHAR(1DATE,DATE,NUMBER,NUMBER,NUMBER,NUMBER

BYTE)BYTE)BYTE)

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_3_L2_TAB2(PK_VALUECOMP_1COMP_2COMP_3DATE_COMP_1DATE_COMP_2NUM_COMP_1NUM_COMP_2NUM_COMP_3PARENT LINK

NUMBER,CHAR(1CHAR(1CHAR(1DATE,DATE,NUMBER,NUMBER,NUMBER,NUMBER

BYTE)BYTE)BYTE)

)TABLESPACE TEST_DATA RESULT CACHE (MODE DEFAULT)

Page 126: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 118

PCTUSEDPCTFREEINITRANSMAXTRANSSTORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_3_L2_TAB3(PK_VALUECOMP_1COMP_2COMP_3DATE_COMP_1DATE_COMP_2NUM_COMP_1NUM_COMP_2NUM_COMP_3PARENT LINK

NUMBER,CHAR(1CHAR(1CHAR(1DATE,DATE,NUMBER,NUMBER,NUMBER,NUMBER

BYTE)BYTE)BYTE)

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESS

Page 127: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 119

NOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_3_L3_TAB1(PK_VALUEPARENT_LINKVALUE_1VALUE_2VALUE_3CHAR_1CHAR_2CHAR_3DATE_1DATE_2DATE_3DATE 4

NUMBER,NUMBER,VARCHAR2(10 BYTE) VARCHAR2(10 BYTE) VARCHAR2(10 BYTE)CHAR(1CHAR(1CHAR(1DATE,DATE,DATE,DATE

BYTE)BYTE)BYTE)

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_3_L3_TAB2(PK_VALUEPARENT_LINKVALUE_1VALUE_2VALUE_3CHAR_1CHAR_2

NUMBER,NUMBER,VARCHAR2(10 BYTE) VARCHAR2(10 BYTE) VARCHAR2(10 BYTE)CHARCHAR

1 BYTE)1 BYTE)

Page 128: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 120

CHAR_3DATE_1DATE_2DATE_3DATE_4

CHAR(1 BYTE) DATE,DATE,DATE,DATE

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE TABLE TEST_USER.MASTER_3_L3_TAB3(PK_VALUEPARENT_LINKVALUE_1VALUE_2VALUE_3CHAR_1CHAR_2CHAR_3DATE_1DATE_2DATE_3DATE_4

NUMBER,NUMBER,VARCHAR2(10 BYTE) VARCHAR2(10 BYTE) VARCHAR2(10 BYTE)CHAR(1CHAR(1CHAR(1DATE,DATE,DATE,DATE

BYTE)BYTE)BYTE)

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

0101255(INITIAL 64K

Page 129: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 121

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

NEXT 1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

LOGGINGNOCOMPRESSNOCACHENOPARALLELMONITORING;

CREATE BITMAP INDEX TEST_USER.M1_L2_T1_CHAR_1_IDX ON TEST_USER.MASTER_1_L2_TAB1 (CHAR_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M1_L2_T1_CHAR_2_IDX ON TEST_USER.MASTER_1_L2_TAB1 (CHAR_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXT

64K

MINEXTENTS MAXEXTENTS PCTINCREASE BUFFER POOL

1M1UNLIMITED0DEFAULT

Page 130: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 122

FLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M1_L2_T1_CHAR_3_IDX ON TEST_USER.MASTER_1_L2_TAB1 (CHAR_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T1_DATE_1_IDX ON TEST_USER.MASTER_1_L2_TAB1 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 131: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 123

CREATE INDEX TEST_USER.M1_L2_T1_DATE_2_IDX ON TEST_USER.MASTER_1_L2_TAB1 (DATE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T1_DATE_3_IDX ON TEST_USER.MASTER_1_L2_TAB1 (DATE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M1_L2_T1_PK_IDX ON TEST_USER.MASTER_1_L2_TAB1 (PK_VALUE)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 132: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 124

STORAGE

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T1_VALUE_1_IDX ON TEST_USER.MASTER_1_L2_TAB1 (VALUE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T1_VALUE_2_IDX ON TEST_USER.MASTER_1_L2_TAB1 (VALUE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 133: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 125

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T1_VALUE_3_IDX ON TEST_USER.MASTER_1_L2_TAB1 (VALUE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE BITMAP INDEX TEST_USER.M1 L2 T2 CHAR 1 IDX ON TEST_USER.MASTER_1_L2_TAB2 (CHAR_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE BITMAP INDEX TEST_USER.M1_L2_T2_CHAR_2_IDX ONTEST USER.MASTER 1 L2 TAB2

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 134: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 126

(CHAR_2)LOGGINGTABLESPACE TEST_DATAPCTFREE 10INITRANS 2MAXTRANS 25 5STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M1_L2_T2_CHAR_3_IDX ON TEST_USER.MASTER_1_L2_TAB2 (CHAR_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_DATE_1_IDX ON TEST_USER.MASTER_1_L2_TAB2 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIAL 64K

Page 135: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 127

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

NEXT 1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_DATE_2_IDX ON TEST_USER.MASTER_1_L2_TAB2 (DATE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_DATE_3_IDX ON TEST_USER.MASTER_1_L2_TAB2 (DATE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

Page 136: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 128

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_NUM_10_IDX ON TEST_USER.MASTER_2_L2_TAB2 (NUM_10)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_NUM_1_IDX ON TEST_USER.MASTER_2_L2_TAB2 (NUM_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_NUM_2_IDX ON TEST_USER.MASTER_2_L2_TAB2 (NUM_2)LOGGING

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 137: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 129

TABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_NUM_3_IDX ON TEST_USER.MASTER_2_L2_TAB2 (NUM_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_NUM_4_IDX ON TEST_USER.MASTER_2_L2_TAB2 (NUM_4)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXTMINEXTENTS

64K1M1

Page 138: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 130

MAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_NUM_5_IDX ON TEST_USER.MASTER_2_L2_TAB2 (NUM_5)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_NUM_6_IDX ON TEST_USER.MASTER_2_L2_TAB2 (NUM_6)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 139: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 131

CREATE INDEX TEST_USER.M1_L2_T2_NUM_7_IDX ON TEST_USER.MASTER_2_L2_TAB2 (NUM_7)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_NUM_8_IDX ON TEST_USER.MASTER_2_L2_TAB2 (NUM_8)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_NUM_9_IDX ON TEST_USER.MASTER_2_L2_TAB2 (NUM_9)LOGGINGTABLESPACE TEST_DATA PCTFREE 10

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 140: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 132

INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M1_L2_T2_PK_IDX ON TEST_USER.MASTER_1_L2_TAB2 (PK_VALUE)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_VALUE_1_IDX ON TEST_USER.MASTER_1_L2_TAB2 (VALUE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXT

64K

MINEXTENTSMAXEXTENTSPCTINCREASE

1M1UNLIMITED0

Page 141: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 133

BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_VALUE_2_IDX ON TEST_USER.MASTER_1_L2_TAB2 (VALUE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T2_VALUE_3_IDX ON TEST_USER.MASTER_1_L2_TAB2 (VALUE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 142: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 134

CREATE BITMAP INDEX TEST_USER.M1 L2 T3 CHAR 1 IDX ON TEST_USER.MASTER_1_L2_TAB3 (CHAR_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE BITMAP INDEX TEST_USER.M1 L2 T3 CHAR 2 IDX ON TEST_USER.MASTER_1_L2_TAB3 (CHAR_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE BITMAP INDEX TEST_USER.M1_L2_T3_CHAR_3_IDX ON TEST_USER.MASTER_1_L2_TAB3 (CHAR_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 143: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 135

STORAGE

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T3_DATE_1_IDX ON TEST_USER.MASTER_1_L2_TAB3 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T3_DATE_2_IDX ON TEST_USER.MASTER_1_L2_TAB3 (DATE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 144: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 136

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T3_DATE_3_IDX ON TEST_USER.MASTER_1_L2_TAB3 (DATE_3)LOGGINGTABLESPACE TEST DATAPCTFREEINITRANSMAXTRANSSTORAGE

102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M1_L2_T3_PK_IDX ON TEST_USER.MASTER_1_L2_TAB3 (PK_VALUE)LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T3_VALUE_1_IDX ONTEST USER.MASTER 1 L2 TAB3

Page 145: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 137

(VALUE_1)LOGGINGTABLESPACE TEST_DATAPCTFREE 10INITRANS 2MAXTRANS 25 5STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T3_VALUE_2_IDX ON TEST_USER.MASTER_1_L2_TAB3 (VALUE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L2_T3_VALUE_3_IDX ON TEST_USER.MASTER_1_L2_TAB3 (VALUE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIAL 64K

Page 146: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 138

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

NEXT 1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M1_L3_T1_CHAR_1_IDX ON TEST_USER.MASTER_1_L3_TAB1 (CHAR_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M1_L3_T1_CHAR_2_IDX ON TEST_USER.MASTER_1_L3_TAB1 (CHAR_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

Page 147: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 139

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T1_DATE_1_IDX ON TEST_USER.MASTER_1_L3_TAB1 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T1_DATE_2_IDX ON TEST_USER.MASTER_1_L3_TAB1 (DATE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T1_DATE_3_IDX ON TEST_USER.MASTER_1_L3_TAB1 (DATE_3)LOGGING

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 148: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 140

TABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T1_DATE_4_IDX ON TEST_USER.MASTER_1_L3_TAB1 (DATE_4)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T1_DATE_5_IDX ON TEST_USER.MASTER_1_L3_TAB1 (DATE_5)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXTMINEXTENTS

64K1M1

Page 149: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 141

MAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M1_L3_T1_PK_IDX ON TEST_USER.MASTER_1_L3_TAB1 (PK_VALUE)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T1_VALUE_1_IDX ON TEST_USER.MASTER_1_L3_TAB1 (VALUE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 150: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 142

CREATE INDEX TEST_USER.M1_L3_T1_VALUE_2_IDX ON TEST_USER.MASTER_1_L3_TAB1 (VALUE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T1_VALUE_3_IDX ON TEST_USER.MASTER_1_L3_TAB1 (VALUE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE BITMAP INDEX TEST_USER.M1_L3_T2_CHAR_1_IDX ON TEST_USER.MASTER_1_L3_TAB2 (CHAR_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 151: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 143

INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M1_L3_T2_CHAR_2_IDX ON TEST_USER.MASTER_1_L3_TAB2 (CHAR_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T2_DATE_1_IDX ON TEST_USER.MASTER_1_L3_TAB2 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXT

64K

MINEXTENTSMAXEXTENTSPCTINCREASE

1M1UNLIMITED0

Page 152: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 144

BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T2_DATE_2_IDX ON TEST_USER.MASTER_1_L3_TAB2 (DATE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T2_DATE_3_IDX ON TEST_USER.MASTER_1_L3_TAB2 (DATE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 153: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 145

CREATE INDEX TEST_USER.M1_L3_T2_DATE_4_IDX ON TEST_USER.MASTER_1_L3_TAB2 (DATE_4)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T2_DATE_5_IDX ON TEST_USER.MASTER_1_L3_TAB2 (DATE_5)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M1_L3_T2_PK_IDX ON TEST_USER.MASTER_1_L3_TAB2 (PK_VALUE)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 154: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 146

STORAGE

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T2_VALUE_1_IDX ON TEST_USER.MASTER_1_L3_TAB2 (VALUE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T2_VALUE_2_IDX ON TEST_USER.MASTER_1_L3_TAB2 (VALUE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 155: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 147

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T2_VALUE_3_IDX ON TEST_USER.MASTER_1_L3_TAB2 (VALUE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE BITMAP INDEX TEST_USER.M1 L3 T3 CHAR 1 IDX ON TEST_USER.MASTER_1_L3_TAB3 (CHAR_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE BITMAP INDEX TEST_USER.M1_L3_T3_CHAR_2_IDX ONTEST USER.MASTER 1 L3 TAB3

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 156: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 148

(CHAR_2)LOGGINGTABLESPACE TEST_DATAPCTFREE 10INITRANS 2MAXTRANS 25 5STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T3_DATE_1_IDX ON TEST_USER.MASTER_1_L3_TAB3 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T3_DATE_2_IDX ON TEST_USER.MASTER_1_L3_TAB3 (DATE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIAL 64K

Page 157: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 149

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

NEXT 1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T3_DATE_3_IDX ON TEST_USER.MASTER_1_L3_TAB3 (DATE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T3_DATE_4_IDX ON TEST_USER.MASTER_1_L3_TAB3 (DATE_4)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

Page 158: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 150

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T3_DATE_5_IDX ON TEST_USER.MASTER_1_L3_TAB3 (DATE_5)LOGGINGTABLESPACE TEST DATAPCTFREEINITRANSMAXTRANSSTORAGE

102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M1_L3_T3_PK_IDX ON TEST_USER.MASTER_1_L3_TAB3 (PK_VALUE)LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T3_VALUE_1_IDX ON TEST_USER.MASTER_1_L3_TAB3 (VALUE_1)LOGGING

Page 159: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 151

TABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T3_VALUE_2_IDX ON TEST_USER.MASTER_1_L3_TAB3 (VALUE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M1_L3_T3_VALUE_3_IDX ON TEST_USER.MASTER_1_L3_TAB3 (VALUE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXTMINEXTENTS

64K1M1

Page 160: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 152

MAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T1_DATE_10_IDX ON TEST_USER.MASTER_2_L2_TAB1 (DATE10)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T1_DATE_1_IDX ON TEST_USER.MASTER_2_L2_TAB1 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 161: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 153

CREATE INDEX TEST_USER.M2_L2_T1_DATE_2_IDX ON TEST_USER.MASTER_2_L2_TAB1 (DATE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T1_DATE_3_IDX ON TEST_USER.MASTER_2_L2_TAB1 (DATE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T1_DATE_4_IDX ON TEST_USER.MASTER_2_L2_TAB1 (DATE_4)LOGGINGTABLESPACE TEST_DATA PCTFREE 10

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 162: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 154

INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T1_DATE_5_IDX ON TEST_USER.MASTER_2_L2_TAB1 (DATE_5)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T1_DATE_6_IDX ON TEST_USER.MASTER_2_L2_TAB1 (DATE_6)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXT

64K

MINEXTENTSMAXEXTENTSPCTINCREASE

1M1UNLIMITED0

Page 163: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 155

BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T1_DATE_7_IDX ON TEST_USER.MASTER_2_L2_TAB1 (DATE_7)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T1_DATE_8_IDX ON TEST_USER.MASTER_2_L2_TAB1 (DATE_8)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 164: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 156

CREATE INDEX TEST_USER.M2_L2_T1_DATE_9_IDX ON TEST_USER.MASTER_2_L2_TAB1 (DATE_9)LOGGINGTABLESPACE TEST DATAPCTFREEINITRANSMAXTRANSSTORAGE

102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M2_L2_T1_PK_IDX ON TEST_USER.MASTER_2_L2_TAB1 (PK_VALUE)LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M2_L2_T3_PK_IDX ON TEST_USER.MASTER_2_L2_TAB3 (PK_VALUE)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5

Page 165: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 157

STORAGE

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T3_VALUE_10_IDX ON TEST_USER.MASTER_2_L2_TAB3 (VALUE_10)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T3_VALUE_1_IDX ON TEST_USER.MASTER_2_L2_TAB3 (VALUE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 166: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 158

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T3_VALUE_2_IDX ON TEST_USER.MASTER_2_L2_TAB3 (VALUE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T3_VALUE_3_IDX ON TEST_USER.MASTER_2_L2_TAB3 (VALUE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T3_VALUE_4_IDX ONTEST USER.MASTER 2 L2 TAB3

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 167: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 159

(VALUE_4)LOGGINGTABLESPACE TEST_DATAPCTFREE 10INITRANS 2MAXTRANS 25 5STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T3_VALUE_5_IDX ON TEST_USER.MASTER_2_L2_TAB3 (VALUE_5)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T3_VALUE_6_IDX ON TEST_USER.MASTER_2_L2_TAB3 (VALUE_6)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIAL 64K

Page 168: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 160

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

NEXT 1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T3_VALUE_7_IDX ON TEST_USER.MASTER_2_L2_TAB3 (VALUE_7)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T3_VALUE_8_IDX ON TEST_USER.MASTER_2_L2_TAB3 (VALUE_8)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

Page 169: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 161

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L2_T3_VALUE_9_IDX ON TEST_USER.MASTER_2_L2_TAB3 (VALUE_9)LOGGINGTABLESPACE TEST DATAPCTFREEINITRANSMAXTRANSSTORAGE

102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M2_L2_TAB2_PK_IDX ON TEST_USER.MASTER_2_L2_TAB2 (PK_VALUE)LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M2_L3_T1_CHAR_1_IDX ON TEST_USER.MASTER_2_L3_TAB1 (CHAR_1)LOGGING

Page 170: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 162

TABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M2_L3_T1_CHAR_2_IDX ON TEST_USER.MASTER_2_L3_TAB1 (CHAR_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M2_L3_T1_CHAR_3_IDX ON TEST_USER.MASTER_2_L3_TAB1 (CHAR_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXTMINEXTENTS

64K1M1

Page 171: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 163

MAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T1_DATE_1_IDX ON TEST_USER.MASTER_2_L3_TAB1 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T1_DATE_2_IDX ON TEST_USER.MASTER_2_L3_TAB1 (DATE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 172: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 164

CREATE INDEX TEST_USER.M2_L3 TEST_USER.MASTER_2_L3_TAB1 (DATE_3)LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

T1 DATE 3 IDX ON

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M2_L3_T1_PK_IDX ON TEST_USER.MASTER_2_L3_TAB1 (PK_VALUE)LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T1_VALUE_1_IDX ON TEST_USER.MASTER_2_L3_TAB1 (VALUE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10

Page 173: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 165

INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T1_VALUE_2_IDX ON TEST_USER.MASTER_2_L3_TAB1 (VALUE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T1_VALUE_3_IDX ON TEST_USER.MASTER_2_L3_TAB1 (VALUE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXT

64K

MINEXTENTSMAXEXTENTSPCTINCREASE

1M1UNLIMITED0

Page 174: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 166

BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T1_VALUE_4_IDX ON TEST_USER.MASTER_2_L3_TAB1 (VALUE_4)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M2_L3_T2_CHAR_1_IDX ON TEST_USER.MASTER_2_L3_TAB2 (CHAR_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 175: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 167

CREATE BITMAP INDEX TEST_USER.M2 L3 T2 CHAR 2 IDX ON TEST_USER.MASTER_2_L3_TAB2 (CHAR_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE BITMAP INDEX TEST_USER.M2 L3 T2 CHAR 3 IDX ON TEST_USER.MASTER_2_L3_TAB2 (CHAR_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T2_DATE_1_IDX ON TEST_USER.MASTER_2_L3_TAB2 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 176: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 168

STORAGE

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T2_DATE_2_IDX ON TEST_USER.MASTER_2_L3_TAB2 (DATE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T2_DATE_3_IDX ON TEST_USER.MASTER_2_L3_TAB2 (DATE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 177: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 169

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M2_L3_T2_PK_IDX ON TEST_USER.MASTER_2_L3_TAB2 (PK_VALUE)LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T2_VALUE_1_IDX ON TEST_USER.MASTER_2_L3_TAB2 (VALUE_1)LOGGINGTABLESPACE TEST DATAPCTFREEINITRANSMAXTRANSSTORAGE

102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T2_VALUE_2_IDX ONTEST USER.MASTER 2 L3 TAB2

Page 178: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 170

(VALUE_2)LOGGINGTABLESPACE TEST_DATAPCTFREE 10INITRANS 2MAXTRANS 25 5STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T2_VALUE_3_IDX ON TEST_USER.MASTER_2_L3_TAB2 (VALUE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T2_VALUE_4_IDX ON TEST_USER.MASTER_2_L3_TAB2 (VALUE_4)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIAL 64K

Page 179: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 171

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

NEXT 1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M2_L3_T3_CHAR_1_IDX ON TEST_USER.MASTER_2_L3_TAB3 (CHAR_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M2_L3_T3_CHAR_2_IDX ON TEST_USER.MASTER_2_L3_TAB3 (CHAR_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

Page 180: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 172

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M2 L3 T3 CHAR 3 IDX ON TEST_USER.MASTER_2_L3_TAB3 (CHAR_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T3_DATE_1_IDX ON TEST_USER.MASTER_2_L3_TAB3 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T3_DATE_2_IDX ON TEST_USER.MASTER_2_L3_TAB3 (DATE_2)LOGGING

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 181: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 173

TABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T3_DATE_3_IDX ON TEST_USER.MASTER_2_L3_TAB3 (DATE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M2_L3_T3_PK_IDX ON TEST_USER.MASTER_2_L3_TAB3 (PK_VALUE)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXTMINEXTENTS

64K1M1

Page 182: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 174

MAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T3_VALUE_1_IDX ON TEST_USER.MASTER_2_L3_TAB3 (VALUE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T3_VALUE_2_IDX ON TEST_USER.MASTER_2_L3_TAB3 (VALUE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 183: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 175

CREATE INDEX TEST_USER.M2_L3_T3_VALUE TEST_USER.MASTER_2_L3_TAB3 (VALUE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHE CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M2_L3_T3_VALUE TEST_USER.MASTER_2_L3_TAB3 (VALUE_4)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHE CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L2_T1_COMP_1 TEST_USER.MASTER_3_L2_TAB1 (COMP_1, COMP_2, COMP_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

IDX ON

IDX ON

IDX ON

Page 184: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 176

INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L2_T1_DATE_COMP_1_IDX ON TEST_USER.MASTER_3_L2_TAB1 (DATE_COMP_1, DATE_COMP_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L2_T1_NUM_COMP_1_IDX ON TEST_USER.MASTER_3_L2_TAB1 (NUM_COMP_1, NUM_COMP_2, NUM_COMP_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXT

64K

MINEXTENTSMAXEXTENTSPCTINCREASE

1M1UNLIMITED0

Page 185: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 177

BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L2_T2_COMP_1_IDX ON TEST_USER.MASTER_3_L2_TAB2 (COMP_1, COMP_2, COMP_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L2_T2_DATE_COMP_1_IDX ON TEST_USER.MASTER_3_L2_TAB2 (DATE_COMP_1, DATE_COMP_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 186: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 178

CREATE INDEX TEST_USER.M3_L2_T2_NUM_COMP_1_IDX ON TEST_USER.MASTER_3_L2_TAB2 (NUM_COMP_1, NUM_COMP_2, NUM_COMP_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

64K1M1UNLIMITED0DEFAULTDEFAULT

CREATE UNIQUE INDEX TEST_USER.M3_L2_T2_PK_IDX ON TEST_USER.MASTER_3_L2_TAB2 (PK_VALUE)LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L2_T3_COMP_1_IDX ON TEST_USER.MASTER_3_L2_TAB3 (COMP_1, COMP_2, COMP_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5

Page 187: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 179

STORAGE

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L2_T3_DATE_COMP_1_IDX ON TEST_USER.MASTER_3_L2_TAB3 (DATE_COMP_1, DATE_COMP_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L2_T3_NUM_COMP_1_IDX ON TEST_USER.MASTER_3_L2_TAB3 (NUM_COMP_1, NUM_COMP_2, NUM_COMP_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 188: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 180

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M3_L2_T3_PK_IDX ON TEST_USER.MASTER_3_L2_TAB3 (PK_VALUE)LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M3_L2_TB_PK_IDX ON TEST_USER.MASTER_3_L2_TAB1 (PK_VALUE)LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M3_L3_T1_CHAR_1_IDX ON TEST USER.MASTER 3 L3 TAB1

Page 189: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 181

(CHAR_1)LOGGINGTABLESPACE TEST_DATAPCTFREE 10INITRANS 2MAXTRANS 25 5STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M3_L3_T1_CHAR_2_IDX ON TEST_USER.MASTER_3_L3_TAB1 (CHAR_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M3_L3_T1_CHAR_3_IDX ON TEST_USER.MASTER_3_L3_TAB1 (CHAR_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIAL 64K

Page 190: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 182

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

NEXT 1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T1_DATE_1_IDX ON TEST_USER.MASTER_3_L3_TAB1 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T1_DATE_2_IDX ON TEST_USER.MASTER_3_L3_TAB1 (DATE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

Page 191: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 183

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T1_DATE_3_IDX ON TEST_USER.MASTER_3_L3_TAB1 (DATE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T1_DATE_4_IDX ON TEST_USER.MASTER_3_L3_TAB1 (DATE_4)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M3_L3_T1_PK_IDX ON TEST_USER.MASTER_3_L3_TAB1 (PK_VALUE)LOGGING

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 192: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 184

TABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T1_VALUE_1_IDX ON TEST_USER.MASTER_3_L3_TAB1 (VALUE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T1_VALUE_2_IDX ON TEST_USER.MASTER_3_L3_TAB1 (VALUE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXTMINEXTENTS

64K1M1

Page 193: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 185

MAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T1_VALUE_3_IDX ON TEST_USER.MASTER_3_L3_TAB1 (VALUE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M3_L3_T2_CHAR_1_IDX ON TEST_USER.MASTER_3_L3_TAB2 (CHAR_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 194: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 186

CREATE BITMAP INDEX TEST_USER.M3 L3 T2 CHAR 2 IDX ON TEST_USER.MASTER_3_L3_TAB2 (CHAR_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE BITMAP INDEX TEST_USER.M3 L3 T2 CHAR 3 IDX ON TEST_USER.MASTER_3_L3_TAB2 (CHAR_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T2_DATE_1_IDX ON TEST_USER.MASTER_3_L3_TAB2 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 195: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 187

INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T2_DATE_2_IDX ON TEST_USER.MASTER_3_L3_TAB2 (DATE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T2_DATE_3_IDX ON TEST_USER.MASTER_3_L3_TAB2 (DATE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXT

64K

MINEXTENTSMAXEXTENTSPCTINCREASE

1M1UNLIMITED0

Page 196: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 188

BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T2_DATE_4_IDX ON TEST_USER.MASTER_3_L3_TAB2 (DATE_4)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M3_L3_T2_PK_IDX ON TEST_USER.MASTER_3_L3_TAB2 (PK_VALUE)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 197: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 189

CREATE INDEX TEST_USER.M3_L3_T2_VALUE_1_IDX ON TEST_USER.MASTER_3_L3_TAB2 (VALUE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T2_VALUE_2_IDX ON TEST_USER.MASTER_3_L3_TAB2 (VALUE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T2_VALUE_3_IDX ON TEST_USER.MASTER_3_L3_TAB2 (VALUE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 198: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 190

STORAGE

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M3_L3_T3_CHAR_1_IDX ON TEST_USER.MASTER_3_L3_TAB3 (CHAR_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M3_L3_T3_CHAR_2_IDX ON TEST_USER.MASTER_3_L3_TAB3 (CHAR_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 199: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 191

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.M3 L3 T3 CHAR 3 IDX ON TEST_USER.MASTER_3_L3_TAB3 (CHAR_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T3_DATE_1_IDX ON TEST_USER.MASTER_3_L3_TAB3 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T3_DATE_2_IDX ON TEST USER.MASTER 3 L3 TAB3

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 200: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 192

(DATE_2)LOGGINGTABLESPACE TEST_DATAPCTFREE 10INITRANS 2MAXTRANS 25 5STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T3_DATE_3_IDX ON TEST_USER.MASTER_3_L3_TAB3 (DATE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T3_DATE_4_IDX ON TEST_USER.MASTER_3_L3_TAB3 (DATE_4)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIAL 64K

Page 201: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 193

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

NEXT 1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.M3_L3_T3_PK_IDX ON TEST_USER.MASTER_3_L3_TAB3 (PK_VALUE)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T3_VALUE_1_IDX ON TEST_USER.MASTER_3_L3_TAB3 (VALUE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

Page 202: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 194

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T3_VALUE_2_IDX ON TEST_USER.MASTER_3_L3_TAB3 (VALUE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE INDEX TEST_USER.M3_L3_T3_VALUE_3_IDX ON TEST_USER.MASTER_3_L3_TAB3 (VALUE_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE BITMAP INDEX TEST_USER.MASTER_1_CHAR_1_IDX ON TEST_USER.MASTER_1 (CHAR_1)LOGGING

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 203: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 195

TABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.MASTER_1_CHAR_2_IDX ON TEST_USER.MASTER_1 (CHAR_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.MASTER_1_CHAR_3_IDX ON TEST_USER.MASTER_1 (CHAR_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXTMINEXTENTS

64K1M1

Page 204: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 196

MAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.MASTER_1_DATE_1_IDX ON TEST_USER.MASTER_1 (DATE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.MASTER_1_DATE_2_IDX ON TEST_USER.MASTER_1 (DATE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 205: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 197

CREATE INDEX TEST (DATE_3)LOGGING TABLESPACE PCTFREE

USER.MASTER 1 DATE 3 IDX ON TEST USER.MASTER 1

INITRANSMAXTRANSSTORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

NOPARALLELINVISIBLE;

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

CREATE INDEX TEST (DATE_4)LOGGING TABLESPACE PCTFREE

USER.MASTER 1 DATE 4 IDX ON TEST USER.MASTER 1

INITRANSMAXTRANSSTORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

NOPARALLELINVISIBLE;

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

CREATE INDEX TEST_USER.MASTER_1_DATE_5_IDX ON TEST_USER.MASTER_1 (DATE_5)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL 64KNEXT 1M

Page 206: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 198

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.MASTER_1_LINKER ON TEST_USER.MASTER_1 (MASTER_2_LINK, MASTER_3_LINK)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.MASTER_1_PK_IDX ON TEST_USER.MASTER_1 (PK_VALUE)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 207: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 199

CREATE INDEX TEST (VALUE_1)LOGGING TABLESPACE PCTFREE

USER.MASTER 1 VALUE 1 IDX ON TEST USER.MASTER 1

INITRANSMAXTRANSSTORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

NOPARALLELINVISIBLE;

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

CREATE INDEX TEST (VALUE_2)LOGGING TABLESPACE PCTFREE

USER.MASTER 1 VALUE 2 IDX ON TEST USER.MASTER 1

INITRANSMAXTRANSSTORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

NOPARALLELINVISIBLE;

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

CREATE BITMAP INDEX TEST_USER.MASTER_2_CHAR_1_IDX ON TEST_USER.MASTER_2 (CHAR_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

Page 208: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 200

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.MASTER_2_CHAR_2_IDX ON TEST_USER.MASTER_2 (CHAR_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.MASTER_2_CHAR_3_IDX ON TEST_USER.MASTER_2 (CHAR_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

Page 209: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 201

)NOPARALLELINVISIBLE;

CREATE INDEX TEST (DATE_1)LOGGING TABLESPACE PCTFREE

USER.MASTER 2 DATE 1 IDX ON TEST USER.MASTER 2

INITRANSMAXTRANSSTORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

NOPARALLELINVISIBLE;

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

CREATE INDEX TEST (DATE_2)LOGGING TABLESPACE PCTFREE

USER.MASTER 2 DATE 2 IDX ON TEST USER.MASTER 2

INITRANSMAXTRANSSTORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

NOPARALLELINVISIBLE;

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

CREATE INDEX TEST_USER.MASTER_2_LINKER ON TEST_USER.MASTER_2 (MASTER_1_LINK, MASTER_3_LINK)LOGGINGTABLESPACE TEST_DATA PCTFREE 10

Page 210: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 202

INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE UNIQUE INDEX TEST_USER.MASTER_2_PK_IDX ON TEST_USER.MASTER_2 (PK_VALUE)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.MASTER_2_VALUE_1_IDX ON TEST_USER.MASTER_2 (VALUE_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 211: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 203

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE (VALUE LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

INDEX TEST 2)

USER.MASTER 2 VALUE 2 IDX ON TEST USER.MASTER 2

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

NOPARALLELINVISIBLE;

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

CREATE INDEX TEST (VALUE_3)LOGGING TABLESPACE PCTFREE

USER.MASTER 2 VALUE 3 IDX ON TEST USER.MASTER 2

INITRANSMAXTRANSSTORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

NOPARALLELINVISIBLE;

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

CREATE INDEX TEST_USER.MASTER_2_VALUE_4_IDX ON TEST_USER.MASTER_2 (VALUE_4)LOGGINGTABLESPACE TEST DATA

Page 212: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 204

PCTFREE 10INITRANS 2MAXTRANS 25 5STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.MASTER_2_VALUE_5_IDX ON TEST_USER.MASTER_2 (VALUE_5)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.MASTER_3_CHAR_1_IDX ON TEST_USER.MASTER_3 (CHAR_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXT

64K

MINEXTENTSMAXEXTENTSPCTINCREASE

1M1UNLIMITED0

Page 213: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 205

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST USER.MASTER 3 CHAR 2 IDX ON TEST_USER.MASTER_3 (CHAR_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLEL INVISIBLE;

CREATE BITMAP INDEX TEST USER.MASTER 3 CHAR 3 IDX ON TEST_USER.MASTER_3 (CHAR_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

INITIAL NEXTMINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL FLASH_CACHECELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

64K1M1UNLIMITED0DEFAULTDEFAULT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 214: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 206

CREATE INDEX TEST_USER.MASTER_3_LINKER ON TEST_USER.MASTER_3 (MASTER_1_LINK, MASTER_2_LINK)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.MASTER_3_NUM_1_IDX ON TEST_USER.MASTER_3 (NUM_1)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.MASTER_3_NUM_2_IDX ON TEST_USER.MASTER_3 (NUM_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

INITIALNEXT

64K1M

Page 215: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 207

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

UNLIMITED0DEFAULTDEFAULT

1

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.MASTER_3_NUM_3_IDX ON TEST_USER.MASTER_3 (NUM_3)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST_USER.MASTER_3_NUM_4_IDX ON TEST_USER.MASTER_3 (NUM_4)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

NOPARALLELINVISIBLE;

Page 216: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 208

CREATE BITMAP INDEX TEST (NUM_5)LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

USER.MASTER 3 NUM 5 IDX ON TEST USER.MASTER 3

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

NOPARALLELINVISIBLE;

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

CREATE UNIQUE INDEX TEST_USER.MASTER_3_PK_IDX ON TEST_USER.MASTER_3 (PK_VALUE)LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.MASTER_3_VALUE (VALUE_1)LOGGINGTABLESPACE TEST DATA

1 IDX ON TEST USER.MASTER 3

PCTFREEINITRANSMAXTRANSSTORAGE

102255(INITIAL 64K

Page 217: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 209

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

NEXT 1M1UNLIMITED0DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.MASTER_3_VALUE_2_IDX ON TEST_USER.MASTER_3 (VALUE_2)LOGGINGTABLESPACE TEST_DATA PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

CELL_FLASH_CACHE DEFAULT)

NOPARALLELINVISIBLE;

ALTER TABLE TEST_USER.MASTER_1 ADD ( CONSTRAINT MASTER_1_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.MASTER_1_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_1_L2_TAB1 ADD ( CONSTRAINT M1_L2_T1_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M1_L2_T1_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_1_L2_TAB2 ADD ( CONSTRAINT M1_L2_T2_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST USER.M1 L2 T2 PK IDX

MINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHE

INITIALNEXT

64K1M1UNLIMITED0DEFAULTDEFAULT

Page 218: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 210

ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_1_L2_TAB3 ADD ( CONSTRAINT M1_L2_T3_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M1_L2_T3_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_1_L3_TAB1 ADD ( CONSTRAINT M1_L3_T1_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M1_L3_T1_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_1_L3_TAB2 ADD ( CONSTRAINT M1_L3_T2_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M1_L3_T2_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_1_L3_TAB3 ADD ( CONSTRAINT M1_L3_T3_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M1_L3_T3_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_2 ADD ( CONSTRAINT MASTER_2_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.MASTER_2_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_2_L2_TAB1 ADD ( CONSTRAINT M2_L2_T1_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M2_L2_T1_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_2_L2_TAB2 ADD ( CONSTRAINT M2_L2_TAB2_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M2_L2_TAB2_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST USER.MASTER 2 L2 TAB3 ADD (

Page 219: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 211

CONSTRAINT M2_L2_T3_PK_IDXPRIMARY KEY(PK_VALUE)USING INDEX TEST_USER.M2_L2_T3_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_2_L3_TAB1 ADD ( CONSTRAINT M2_L3_T1_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M2_L3_T1_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_2_L3_TAB2 ADD ( CONSTRAINT M2_L3_T2_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M2_L3_T2_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_2_L3_TAB3 ADD ( CONSTRAINT M2_L3_T3_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M2_L3_T3_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_3 ADD ( CONSTRAINT MASTER_3_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.MASTER_3_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_3_L2_TAB1 ADD ( CONSTRAINT M3_L2_TB_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M3_L2_TB_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_3_L2_TAB2 ADD ( CONSTRAINT M3_L2_T2_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M3_L2_T2_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_3_L2_TAB3 ADD ( CONSTRAINT M3_L2_T3_PK_IDX PRIMARY KEY (PK VALUE)

Page 220: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 212

USING INDEX TEST_USER.M3_L2_T3_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_3_L3_TAB1 ADD ( CONSTRAINT M3_L3_T1_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M3_L3_T1_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_3_L3_TAB2 ADD ( CONSTRAINT M3_L3_T2_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M3_L3_T2_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_3_L3_TAB3 ADD ( CONSTRAINT M3_L3_T3_PK_IDX PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.M3_L3_T3_PK_IDX ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_1_L2_TAB1 ADD ( CONSTRAINT M1_L2_T1_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_1 (PK_VALUE)ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_1_L2_TAB2 ADD ( CONSTRAINT M1_L2_T2_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_1 (PK_VALUE)ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_1_L2_TAB3 ADD ( CONSTRAINT M1_L2_T3_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_1 (PK_VALUE)ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_1_L3_TAB1 ADD ( CONSTRAINT M1_L3_T1_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_1_L2_TAB1 (PK_VALUE) ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_1_L3_TAB2 ADD ( CONSTRAINT M1_L3_T2_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST USER.MASTER 1 L2 TAB2 (PK VALUE)

Page 221: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 213

ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_1_L3_TAB3 ADD ( CONSTRAINT M1_L3_T3_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_1_L2_TAB3 (PK_VALUE) ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_2_L2_TAB1 ADD ( CONSTRAINT M2_L2_T1_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_2 (PK_VALUE)ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_2_L2_TAB2 ADD ( CONSTRAINT M2_L2_T2_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_2 (PK_VALUE)ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_2_L2_TAB3 ADD ( CONSTRAINT M2_L2_T3_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_2 (PK_VALUE)ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_2_L3_TAB1 ADD ( CONSTRAINT M2_L3_T1_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_2_L2_TAB1 (PK_VALUE) ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_2_L3_TAB2 ADD ( CONSTRAINT M2_L3_T2_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_2_L2_TAB2 (PK_VALUE) ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_2_L3_TAB3 ADD ( CONSTRAINT M2_L3_T3_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_2_L2_TAB3 (PK_VALUE) ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_3_L2_TAB1 ADD ( CONSTRAINT M3_L2_T1_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_3 (PK_VALUE)ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_3_L2_TAB2 ADD ( CONSTRAINT M3 L2 T2 LINK

Page 222: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 214

FOREIGN KEY (PARENT_LINK) REFERENCES TEST_USER.MASTER_3 ENABLE VALIDATE);

'PK VALUE)

ALTER TABLE TEST_USER.MASTER_3_L2_TAB3 ADD ( CONSTRAINT M3_L2_T3_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_3 (PK_VALUE)ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_3_L3_TAB1 ADD ( CONSTRAINT M3_L3_T1_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_3_L2_TAB1 (PK_VALUE) ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_3_L3_TAB2 ADD ( CONSTRAINT M3_L3_T2_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_3_L2_TAB2 (PK_VALUE) ENABLE VALIDATE);

ALTER TABLE TEST_USER.MASTER_3_L3_TAB3 ADD ( CONSTRAINT M3_L3_T3_LINK FOREIGN KEY (PARENT_LINK)REFERENCES TEST_USER.MASTER_3_L2_TAB3 (PK_VALUE) ENABLE VALIDATE);

CREATE TABLE TEST_USER.MASTER_4(PK VALUE NUMBERDATE_1 DATE,DATE 2 DATE,DATE 3 DATE,CHAR 1 CHAR(1 BYTE) ,CHAR_2 CHAR(1 BYTE) ,CHAR_3 CHAR(1 BYTE) ,VALUE 1 VARCHAR2(10 BYTE),VALUE 2 VARCHAR2(10 BYTE),VALUE 3 VARCHAR2(10 BYTE)

NOT NULL,

)TABLESPACE TEST_DATA RESULT_CACHE (MODE DEFAULT) PCTUSED PCTFREE INITRANS MAXTRANS STORAGE

001255(BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

Page 223: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 215

LOGGINGPARTITION BY RANGE (DATE_1)SUBPARTITION BY LIST (CHAR_1)SUBPARTITION TEMPLATE

(SUBPARTITION SP_1_0_1 VALUES (’A ’, ’B’, ’C ’, ’D’, ’E ’, ’F’, ’G ’, ’H’, ’I’, ’J’, ’K ’, ’L ’, ’M ’, ’N ’, ’O ’, ’P’, ’Q ’, ’R’, ’S’, ’T ’, ’U ’V ’, ’W ’, ’Y ’, ’X ’, ’Z’),

SUBPARTITION SP_1_0_2 VALUES (’a ’, ’b ’, ’c’, ’d’, ’e ’, ’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’l’, ’m ’, ’n’, ’o ’, ’p ’, ’q ’, ’r’, ’s’, ’t’, ’u ’v ’, ’w ’, ’x ’, ’y ’, ’z’),

SUBPARTITION SP_1_0_3 VALUES (’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’, ’0’)

)(PARTITION P_DATE_0_0 VALUES LESS THAN (TO_DATE(’ 1999-12-31

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P_DATE_0_0_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’ IH’G’ ’J’, K ’' \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’ W’V’U’ ’Y ’, X ’' \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_0_0_SP 1_0_2 VALUES (’a ’, ’' b ’, ’c’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, k’' \ , l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I -r- Iq , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, y ’' \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_0_0_SP 1_0_3 VALUES (’1’, ’-2’, 43 , ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P_DATE 1 0 VALUES LESS THAN (TO DATE(’ 2000-01-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS CALENDAR=:GREGORIAN’)NOLOGGINGNOCOMPRESSTABLESPACE TEST DATAPCTFREE 10INITRANS 1MAXTRANS 255STORAGE (

BUFFER POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 1 0 S P 1 0 1 VALUES (’A ’, ’ DC’B’

’F’, ’G ’, ’H’, ’I’, ’J’, ’K ’, ’L ’, ’M ’, ’N ’, ’O ’, ’P’, ’Q ’, ’ ’T ’, ’U ’, ’V ’, ’W ’, ’Y ’, ’X ’, ’Z’) TABLESPACE TEST DATA,

Page 224: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 216

SUBPARTITION P_DATE_1_0_SP_1_0_2 VALUES (’a ’, ’b ’, ’c’, ’d’, ’e ’, ’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’l’, ’m ’, ’n’, ’o ’, ’p ’, ’q ’, ’r’, ’s’, ’t’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’, ’z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_1_0_SP_1_0_3 VALUES (’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_2_0 VALUES LESS THAN (TO_DATE(’ 2000-02-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P_DATE_2_0_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’ IH’G’ ’J’, 'K’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’ W’V’U’ ’Y ’, X ’’ \ , ' Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_2_0_SP 1_0_2 VALUES (’a ’, ’' b ’, ’c’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, k’’ \ , l’, ’m ’, ’n’, ’o ’, ’’p ’, I r-r I I -r I q , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, y ’’ \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_2_0_SP 1_0_3 VALUES (’1’, ’-2’, 43 , ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P_DATE_3_0 VALUES LESS THAN (TO_DATE(’ 2000-03-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P_DATE_3_0_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’ IH’G’ ’J’, K ’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’ W’V’U’ ’Y ’, X ’’ \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_3_0_SP 1_0_2 VALUES (’a ’, ’'b’, ’c’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, k’’ \ , l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I -r- Iq , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, y ’’ \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_3_0_SP 1_0_3 VALUES (’1’, ’-2’, 43 , ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P_DATE_4_0 VALUES LESS THAN (TO_DATE(’ 2000-04-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST DATA

Page 225: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 217

PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE 4_0_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’, ’G ’, ’H’, ’I’, ’J’, 'K’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’, ’U ’, ’V ’, ’W ’, ’Y ’, X ’’ \ , ' Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE 4_0_SP 1_0_2 VALUES (’a ’, ’' b ’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, ' k’’ \ , ' l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I -r- Iq , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, -y’’ \ , ' z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE 4_0_SP 1_0_3 VALUES (’1’, ’-2’, 43 , ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_5_0 VALUES LESS THAN (TO_DATE(’ 2000-05-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESS TABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE 5_0_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’ IH’G’ ’J’, K ’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’ W’V’U’ ’Y ’, X ’’ \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE 5_0_SP 1_0_2 VALUES (’a ’, ’'b’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, k’’ \ , l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I -r- Iq , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, y ’’ \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE 5_0_SP 1_0_3 VALUES (’1’, ’-2’, 3’, ’4’, ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_6_0 VALUES LESS THAN (TO_DATE(’ 2000-06-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESS TABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

Page 226: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 218

( SUBPARTITION P DATE 6 0 S P 1 0 1 VALUES (’A ’, ’B’, ’C ’, ’D’, ’E ’,F’, ’G ’, ’H’, ’I’, ’J’, ’K ’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’'P’, ’Q ’, ’R’, ’ST ’, ’U ’, ’V ’, ’W ’, ’Y ’, X ’’ \ , ' Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_6_0_SP 1_0_2 VALUES (’a ’, ’'b’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, ' k’’ \ , ' l’, ’m ’, ’n’, ’o ’, ’'p’, I r-r I I -r I q , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, -y’’ \ , ' z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_6_0_SP 1_0_3 VALUES (’1’, ’'2’, 43 ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P_DATE_7_0 VALUES LESS THAN (TO_DATE(’ 2000-07-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE_7_0_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’, ’G ’, ’H’, ’I’, ’J’, K ’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’, ’U ’, ’V ’, ’W ’, ’Y ’, X ’’ \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_7_0_SP 1_0_2 VALUES (’a ’, ’'b’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, k’’ \ , l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I -r Iq , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, y ’’ \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_7_0_SP 1_0_3 VALUES (’1’, ’-2’, 3’, ’4’, ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P_DATE_8_0 VALUES LESS THAN (TO_DATE(’ 2000-08-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P_DATE_8_0_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’ IH’G’ ’J’, K ’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’ W’V’U’ ’Y ’, X ’’ \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_8_0_SP 1_0_2 VALUES (’a ’, ’'b’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, k’’ \ , l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I -r- Iq , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, y ’’ \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_8_0_SP 1_0_3 VALUES (’1’, ’-2’, 3’, ’4’, ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_9_0 VALUES LESS THAN (TO_DATE(’ 2000-09-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS CALENDAR=GREGORIAN’))

Page 227: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 219

NOLOGGINGNOCOMPRESSTABLESPACE TEST DATAPCTFREEINITRANSMAXTRANSSTORAGE

101255(BUFFER_POOL FLASH CACHE

DEFAULTDEFAULT

CELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P_DATE_9_0_SP_1_0_1 VALUES (’A ’, ’F’, ’G ’, ’H’, ’I’, ’J’, ’K ’, ’L ’, ’M ’, ’N ’, ’O ’, ’T ’, ’U ’, ’V ’, ’W ’, ’Y ’, ’X ’, ’Z’) TABLESPACE

SUBPARTITION P_DATE_9_0_SP_1_0_2 VALUES (’a ’, ’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’l’, ’m ’, ’n’, ’o ’, ’t’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’, ’z’) TABLESPACE

SUBPARTITION P_DATE_9_0_SP_1_0_3 VALUES (’1’, ’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATAPARTITION P_DATE_10_0 VALUES LESS THAN (TO_DATE(

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR= NOLOGGING NOCOMPRESSTABLESPACE TEST DATA

B’, ’C ’, ’D’, P’, ’Q ’, ’R’,TEST_DATA, b ’, ’c’, ’d’, p ’, ’q ’, ’r’, TEST_DATA,2’, ’3’, ’4’, ),2000-10-01

GREGORIAN’))

E ’S’

' e ’ s’

PCTFREEINITRANSMAXTRANSSTORAGE

101255(BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

A ’( SUBPARTITION P_DATE_10_0_SP_1_0_1 VALUES ’F’, ’G ’, ’H’, ’I’, ’J’, ’K ’, ’L ’, ’M ’, ’N ’, ’O ’, ’T ’, ’U ’, ’V ’, ’W ’, ’Y ’, ’X ’, ’Z’) TABLESPACE

SUBPARTITION P_DATE_10_0_SP_1_0_2 VALUES (’a’, ’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’l’, ’m ’, ’n’, ’o ’, ’t’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’, ’z’) TABLESPACE

SUBPARTITION P_DATE_10_0_SP_1_0_3 VALUES (’1’, ’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATAPARTITION P_DATE_11_0 VALUES LESS THAN (TO_DATE(

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR= NOLOGGING NOCOMPRESSTABLESPACE TEST DATA

’B ’, ’C ’, ’D ’, ’E’, P’, ’Q ’, ’R’, ’S’,TEST_DATA,’b ’, ’c’, ’d ’, ’e’,p ’, ’q ’, ’r’,TEST_DATA,’2’, ’3’, ’4’, ),2000-11-01

GREGORIAN’))

5’,

PCTFREEINITRANSMAXTRANSSTORAGE

101255(BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT

Page 228: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 220

)( SUBPARTITION P_DATE_ _0_11 _1_PS 0_1 VALUES (’A ’, ’B ’, ’C ’, ’D ’, ’E’

F’ IH’G’ ’J’, ’K ’, ’L ’, M ’' , ’N ’, ’O ’, ’'P’, ’Q ’, ’R ’, S ’,T ’ W’V’U’ ’Y ’, ’X ’, ’Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_ _0_11 SP_1_0_2 VALUES (’a’, ’b ’," ’c’, ’d ’, ’e’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’i’, 'm'', ’n’, ’o ’, ’'p’, ’q ’, ’r’, ’s’,t’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’, ’z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_ _0_11 _1_PS 0_3 VALUES (’1’, ’2’," ’3’, ’4’, ’5’6’, ’7’, ’8’, ’9’, , ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P_DATE_12_0 VALUES LESS THAN (TO_DATE(’ 2000-12-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE_ 0_21 _1P_S 0_1 VALUES (’A ’, ’B ’, ’C ’, ’D ’, ’E’F’ IH’G’ ’J’, ’K ’, ’L ’, M ’', ’N ’, ’O ’, ’'P’, ’Q ’, ’R ’, S ’,T ’ W’V’U’ ’Y ’, ’X ’, ’Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_ _0_21 SP_1_0_2 VALUES (’a’, ’b ’," ’c’, ’d ’, ’e’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’i’, m ’' , ’n’, ’o ’, ’'p’, ’q ’, ’r ’, s ’,t ’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’, ’z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_ _0_21 _1_PS 0_3 VALUES (’1’, ’2’," ’3’, ’4’, ’5’6’, ’7’, ’8’, ’9’, , ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P_DATE_1_1 VALUES LESS THAN (TO_DATE(’ 2001-01-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE_1_1_SP 1_0_1 VALUES (’A ’, ’-B’, ’C ’, ’D’, ’E ’,F’ IH’G’ ’J’, K ’' \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’S’,T ’ W’V’U’ ’Y ’, X ’' \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_1_1_SP 1_0_2 VALUES (’a ’, ’' b ’, I r-H I I C , d ’, ’e ’,f’, ’g ’, ’h ’, ’i’, ’j’, k’' \ , i’, ’m ’, ’n’, ’o ’, ’’p ’, ’q ’, ’r ’, ’s’,t’, ’u ’, ’v ’, ’w ’, ’x ’, y ’' \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_1_1_SP 1_0_3 VALUES (’1’, ’-2’, 3’, ’4’, ’5’,’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),

Page 229: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 221

PARTITION P_DATE_2_1 VALUES LESS THAN (TO_DATE(’ 2001-02-01 00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’))

NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P_DATE_2_1_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’ IH’G’ ’J’, 'K’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’ W’V’U’ ’Y ’, X ’’ \ , ' Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_2_1_SP 1_0_2 VALUES (’a ’, ’' b ’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, ' k’’ \ , ' l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I -r Iq , r , ’st’, ’u ’, ’v ’, ’w ’, ’x ’, -y’’ \ , ' z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_2_1_SP 1_0_3 VALUES (’1’, ’-2’, 43 , ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_3_1 VALUES LESS THAN (TO_DATE(’ 2001-03-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE_3_1_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’ IH’G’ ’J’, K ’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’ W’V’U’ ’Y ’, X ’’ \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_3_1_SP 1_0_2 VALUES (’a ’, ’'b’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, k’’ \ , l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I -r- Iq , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, y ’’ \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_3_1_SP 1_0_3 VALUES (’1’, ’-2’, 43 , ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P_DATE_4_1 VALUES LESS THAN (TO_DATE(’ 2001-04-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER POOL DEFAULT

Page 230: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 222

FLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE_4_1_SP 1_0_1 VALUES (’A ’, ’-B’, ’C ’, ’D’, ’E ’,F’ IH’G’ ’J’, 'K’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’S’,T ’ W’V’U’ ’Y ’, X ’’ \ , ' Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_4_1_SP 1_0_2 VALUES (’a ’, ’' b ’, 1 f-H 1 I C , d’, ’e ’,f’, ’g ’, ’h ’, ’i’, ’j’, ' k’’ 1' l’, ’m ’, ’n’, ’o ’, ’’p ’, ’q ’, ’r’, ’s’,t’, ’u ’, ’v ’, ’w ’, ’x ’, -y’’ \ , ' z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_4_1_SP 1_0_3 VALUES (’1’, ’-2’, 3’, ’4’, ’5’,’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_5_1 VALUES LESS THAN (TO_DATE(’ 2001-05-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P DATE 5 1_SP 1_0_1 VALUES (’A ’, ’1 B’, ’C ’, ’D’, ’E ’,F’ J’IH’G’ K ’ I, L I ’M ’, ’N ’, ’O ’, ’r P’, ’Q ’, ’R’, ’S’,T ’ Y’W’V’U’ X ’ I, Z’) TABLESPACE TEST_DATA,

SUBPARTITION P DATE 5 1_SP 1_0_2 VALUES (’a ’, ’r b ’, I r-H I I C , d ’, ’e ’,f’’, ’g ’, ’h ’, ’i’, ’j’, ’k’ I, lI ’m ’, ’n’, ’o ’, ’’p ’, ’q ’, ’r ’, ’s’,t ’’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’ I, z’) TABLESPACE TEST_DATA,

SUBPARTITION P DATE 5 1_SP 1_0_3 VALUES (’1’, ’1 2’, 3 ’, ’4’, ’5’,6’ 7 8 9 0 TABLESPACE TEST DATA ),PARTITION P DATE 6 1 VALUES LESS THAN (TO DATE(’ 2001-06-010::00:00’, ’SYYYY-MM-DD HH24 IM S’S , ’NLS CALENDAR==GREGORIAN’))

NOLOGGINGNOCOMPRESSTABLESPACE TEST DATAPCTFREE 10INITRANS 1MAXTRANS 25 5STORAGE (

BUFFER POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 6 1_SP 1_0_1 VALUES (’A ’, ’1 B’, ’C ’, ’D’, ’E ’,F’ J’IH’G’ K ’ I, L I ’M ’, ’N ’, ’O ’, ’r P’, ’Q ’, ’R’, ’S’,T ’ Y’W’V’U’ X ’ I, Z’) TABLESPACE TEST_DATA,

SUBPARTITION P DATE 6 1_SP 1_0_2 VALUES (’a ’, ’r b ’, I r-H I I C , d ’, ’e ’,f’’, ’g ’, ’h ’, ’i’, ’j’, ’k’ I, lI ’m ’, ’n’, ’o ’, ’’p ’, ’q ’, ’r ’, ’s’,t ’ x’w’v’u’ y ’ I, z’) TABLESPACE TEST_DATA,

Page 231: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 223

SUBPARTITION P_DATE_6_1_SP_1_0_3 VALUES (’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_7_1 VALUES LESS THAN (TO_DATE(’ 2001-07-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P_DATE_7_1_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’ IH’G’ ’J’, 'K’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’ W’V’U’ ’Y ’, X ’’ \ , ' Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_7_1_SP 1_0_2 VALUES (’a ’, ’' b ’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, ' k’’ \ , ' l’, ’m ’, ’n’, ’o ’, ’’p ’, I r-r I I -r I q , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, -y’’ \ , ' z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_7_1_SP 1_0_3 VALUES (’1’, ’-2’, 43 , ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_8_1 VALUES LESS THAN (TO_DATE(’ 2001-08-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE_8_1_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’ IH’G’ ’J’, K ’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’ W’V’U’ ’Y ’, X ’’ \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_8_1_SP 1_0_2 VALUES (’a ’, ’'b’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, k’’ \ , l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I -r- Iq , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, y ’’ \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_8_1_SP 1_0_3 VALUES (’1’, ’-2’, 43 , ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P_DATE_9_1 VALUES LESS THAN (TO_DATE(’ 2001-09-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5

Page 232: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 224

STORAGE (BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P_DATE_9_1_SP_1_0_1 VALUES (’A ’, ’F’, ’G ’, ’H’, ’I’, ’J’, ’K ’, ’L ’, ’M ’, ’N ’, ’O ’, ’T ’, ’U ’, ’V ’, ’W ’, ’Y ’, ’X ’, ’Z’) TABLESPACE

SUBPARTITION P_DATE_9_1_SP_1_0_2 VALUES (’a ’, ’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’l’, ’m ’, ’n’, ’o ’, ’t’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’, ’z’) TABLESPACE

SUBPARTITION P_DATE_9_1_SP_1_0_3 VALUES (’1’, ’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATAPARTITION P_DATE_10_1 VALUES LESS THAN (TO_DATE(

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR= NOLOGGING NOCOMPRESSTABLESPACE TEST DATA

B ’, ’C ’, ’D’ P’, ’Q ’, ’R’TEST_DATA, b ’, ’c’, ’d’ p ’, ’q ’, ’r’ TEST_DATA, 2’, ’3’, ’4’ ),2001-10-01

GREGORIAN’))

E ’S ’

' e ’ s ’

PCTFREEINITRANSMAXTRANSSTORAGE

101255(BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

A ’( SUBPARTITION P_DATE_10_1_SP_1_0_1 VALUES ’F’, ’G ’, ’H’, ’I’, ’J’, ’K ’, ’L ’, ’M ’, ’N ’, ’O ’, ’T ’, ’U ’, ’V ’, ’W ’, ’Y ’, ’X ’, ’Z’) TABLESPACE

SUBPARTITION P_DATE_10_1_SP_1_0_2 VALUES (’a’, ’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’l’, ’m ’, ’n’, ’o ’, ’t’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’, ’z’) TABLESPACE

SUBPARTITION P_DATE_10_1_SP_1_0_3 VALUES (’1’, ’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATAPARTITION P_DATE_11_1 VALUES LESS THAN (TO_DATE(

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR= NOLOGGING NOCOMPRESSTABLESPACE TEST DATA

’B ’, ’C ’, ’D ’, ’E’, P’, ’Q ’, ’R’, ’S’,TEST_DATA,’b ’, ’c’, ’d ’, ’e’, p ’, ’q ’, ’r’, ’s’, TEST_DATA,’2’, ’3’, ’4’, ’5’, ),2001-11-01

GREGORIAN’))

PCTFREEINITRANSMAXTRANSSTORAGE

101255(BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

A ’( SUBPARTITION P_DATE_11_1_SP_1_0_1 VALUES r F’, ’G ’, ’H’, ’I’, ’J’, ’K ’, ’L ’, ’M ’, ’N ’, ’O ’, ’ r T ’, ’U ’, ’V ’, ’W ’, ’Y ’, ’X ’, ’Z’) TABLESPACE

’B ’, ’C ’, ’D ’ P’, ’Q ’, ’R’,TEST DATA,

Page 233: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 225

SUBPARTITION P_DATE_11_1_SP_1_0_2 VALUES (’a’, ’b ’, ’c’, ’d ’, ’e’, ’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’l’, ’m ’, ’n’, ’o ’, ’p ’, ’q ’, ’r’, ’s’, ’t’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’, ’z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_11_1_SP_1_0_3 VALUES (’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_12_1 VALUES LESS THAN (TO_DATE(’ 2001-12-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P_DATE_ _1_21 SP_1_0_1 VALUES (’A ’, ’B ’, ’C ’, ’D ’, ’E’F’ IH’G’ ’J’, ’K ’, ’L ’, M ’', ’N ’, ’O ’, ’'P’, ’Q ’, ’R ’, S ’,T ’ W’V’U’ ’Y ’, ’X ’, ’Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_ _1_21 SP_1_0_2 VALUES (’a’, ’b ’," ’c’, ’d ’, ’e’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’i’, m ’' , ’n’, ’o ’, ’'p’, ’q ’, ’r ’, s ’,t ’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’, ’z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_ _1_21 _1_PS 0_3 VALUES (’1’, ’2’," ’3’, ’4’, ’5’6’, ’7’, ’8’, ’9’, , ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P DATE 1 2 VALUES LESS THAN (TO DATE(’ 2002-01-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P_DATE_1_2_SP 1_0_1 VALUES (’A ’, ’-B’, ’C ’, ’D’, ’E ’,F’ IH’G’ ’J’, K ’' \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’S’,T ’ W’V’U’ ’Y ’, X ’' \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_1_2_SP 1_0_2 VALUES (’a ’, ’' b ’, I r-H I I C , d ’, ’e ’,f’, ’g ’, ’h ’, ’i’, ’j’, k’' \ , l’, ’m ’, ’n’, ’o ’, ’’p ’, ’q ’, ’r ’, ’s’,t’, ’u ’, ’v ’, ’w ’, ’x ’, y ’' \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_1_2_SP 1_0_3 VALUES (’1’, ’-2’, 3’, ’4’, ’5’,’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P_DATE_2_2 VALUES LESS THAN (TO_DATE(’ 2002-02-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST DATA

Page 234: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 226

PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE 2_2_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’, ’G ’, ’H’, ’I’, ’J’, 'K’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’, ’U ’, ’V ’, ’W ’, ’Y ’, X ’’ \ , ' Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE 2_2_SP 1_0_2 VALUES (’a ’, ’' b ’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, ' k’’ \ , ' l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I -r- Iq , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, -y’’ \ , ' z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE 2_2_SP 1_0_3 VALUES (’1’, ’-2’, 43 , ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_3_2 VALUES LESS THAN (TO_DATE(’ 2002-03-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESS TABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE 3_2_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’ IH’G’ ’J’, K ’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’ W’V’U’ ’Y ’, X ’’ \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE 3_2_SP 1_0_2 VALUES (’a ’, ’'b’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, k’’ \ , l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I -r- Iq , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, y ’’ \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE 3_2_SP 1_0_3 VALUES (’1’, ’-2’, 3’, ’4’, ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_4_2 VALUES LESS THAN (TO_DATE(’ 2002-04-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESS TABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

Page 235: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 227

( SUBPARTITION P DATE 4 2 S P 1 0 1 VALUES (’A ’, ’B’, ’C ’, ’D’, ’E ’,F’, ’G ’, ’H’, ’I’, ’J’, 'K’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’'P’, ’Q ’, ’R’, ’ST ’, ’U ’, ’V ’, ’W ’, ’Y ’, X ’’ \ , ' Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_4_2_SP 1_0_2 VALUES (’a ’, ’'b’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, ' k’’ \ , ' l’, ’m ’, ’n’, ’o ’, ’'p’, I r-r I I - r I q , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, -y’’ \ , ' z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_4_2_SP 1_0_3 VALUES (’1’, ’'2’, 43 ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P_DATE_5_2 VALUES LESS THAN (TO_DATE(’ 2002-05-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE_5_2_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’, ’G ’, ’H’, ’I’, ’J’, K ’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’, ’U ’, ’V ’, ’W ’, ’Y ’, X ’’ \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_5_2_SP 1_0_2 VALUES (’a ’, ’'b’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, k’’ 1l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I - r Iq , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, y ’’ \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_5_2_SP 1_0_3 VALUES (’1’, ’-2’, 3’, ’4’, ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P_DATE_6_2 VALUES LESS THAN (TO_DATE(’ 2002-06-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P_DATE_6_2_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’ IH’G’ ’J’, K ’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’ W’V’U’ ’Y ’, X ’’ \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_6_2_SP 1_0_2 VALUES (’a ’, ’'b’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, k’’ \ , l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I -r- Iq , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, y ’’ \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_6_2_SP 1_0_3 VALUES (’1’, ’-2’, 3’, ’4’, ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_7_2 VALUES LESS THAN (TO_DATE(’ 2002-07-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS CALENDAR=GREGORIAN’))

Page 236: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 228

NOLOGGINGNOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P_DATE_7_2_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’ IH’G’ ’J’, 'K’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’ £V’U’ ’Y ’, X ’’ \ , ' Z’) TABLESPACE TEST_DATA,

SUBPARTITION P DATE_7_2_SP 1_0_2 VALUES (’a ’, ’' b ’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, ' k’’ \ , ' l’, ’m ’, ’n’, ’o ’, ’’p ’, !a ! I - r Iq , r , ’st’, ’u ’, ’v ’, ’w ’, ’x ’, -y’’ \ , ' z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_7_2_SP 1_0_3 VALUES (’1’, ’-2’, 43 , ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_8_2 VALUES LESS THAN (TO_DATE(’ 2002-08-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE_8_2_SP 1_0_1 VALUES (’A ’, ’-B’, D’C’ , ’EF’ IH’G’ ’J’, K ’’ \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’ST ’, ’U ’, ’V ’, ’W ’, ’Y ’, X ’’ \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_8_2_SP 1_0_2 VALUES (’a ’, ’'b’, ’o’, ’d’, ’ef’, ’g ’, ’h ’, ’i’, ’j’, k’’ \ , l’, ’m ’, ’n’, ’o ’, ’’p ’, ! a ! I -r- Iq , r , ’st ’, ’u ’, ’v ’, ’w ’, ’x ’, y ’’ \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_8_2_SP 1_0_3 VALUES (’1’, ’-2’, 43 , ’5’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ),PARTITION P_DATE_9_2 VALUES LESS THAN (TO_DATE(’ 2002-09-01

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’)) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT

Page 237: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 229

)( SUBPARTITION P_DATE_9_2_SP_1_0_1 VALUES (’A ’,

’F’, ’G ’, ’H’, ’I’, ’J’, ’K ’, ’L ’, ’M ’, ’N ’, ’O ’, ’T ’, ’U ’, ’V ’, ’W ’, ’Y ’, ’X ’, ’Z’) TABLESPACE

SUBPARTITION P_DATE_9_2_SP_1_0_2 VALUES (’a ’, ’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’l’, ’m ’, ’n’, ’o ’, ’t’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’, ’z’) TABLESPACE

SUBPARTITION P_DATE_9_2_SP_1_0_3 VALUES (’1’, ’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATAPARTITION P_DATE_10_2 VALUES LESS THAN (TO_DATE(

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR= NOLOGGING NOCOMPRESSTABLESPACE TEST DATA

B ’, ’C ’, ’D’, P’, ’Q ’, ’R’,TEST_DATA, b ’, ’c’, ’d’, p ’, ’q ’, ’r’, TEST_DATA,2’, ’3’, ’4’, ),2002-10-01

GREGORIAN’))

E ’S ’

' e ’ 's'

PCTFREEINITRANSMAXTRANSSTORAGE

101255(BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

A ’( SUBPARTITION P_DATE_10_2_SP_1_0_1 VALUES ’F’, ’G ’, ’H’, ’I’, ’J’, ’K ’, ’L ’, ’M ’, ’N ’, ’O ’, ’T ’, ’U ’, ’V ’, ’W ’, ’Y ’, ’X ’, ’Z’) TABLESPACE

SUBPARTITION P_DATE_10_2_SP_1_0_2 VALUES (’a’, ’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’l’, ’m ’, ’n’, ’o ’, ’t’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’, ’z’) TABLESPACE

SUBPARTITION P_DATE_10_2_SP_1_0_3 VALUES (’1’, ’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATAPARTITION P_DATE_11_2 VALUES LESS THAN (TO_DATE(

00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR= NOLOGGING NOCOMPRESSTABLESPACE TEST DATA

’B ’, ’C ’, ’D ’, ’E’, P’, ’Q ’, ’R’, ’S’,TEST_DATA,’b ’, ’c’, ’d ’, ’e’, p ’, ’q ’, ’r’, ’s’, TEST_DATA,’2’, ’3’, ’4’, ’5’, ),2002-11-01

GREGORIAN’))

PCTFREEINITRANSMAXTRANSSTORAGE

101255(BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P_DATE_ _2_11 SP_1_0_1 VALUES (’A ’, ’B ’, ’C ’, ’D ’, ’E’F’ IH’G’ ’J’, ’K ’, ’L ’, M ’', ’N ’, ’O ’, ’'P’, ’Q ’, ’R ’, S ’,T ’ W’V’U’ ’Y ’, ’X ’, ’Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_ _2_11 SP_1_0_2 VALUES (’a’, ’b ’," ’c’, ’d ’, ’e’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’i’, m ’' , ’n’, ’o ’, ’'p’, ’q ’, ’r ’, s ’,t ’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’, ’z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_ _2_11 _1_PS 0_3 VALUES (’1’, ’2’," ’3’, ’4’, ’5’6’, ’7’, ’8’, ’9’, , ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),

Page 238: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 230

PARTITION P_DATE_12_2 VALUES LESS THAN (TO_DATE(’ 2002-12-01 00:00:00’, ’SYYYY-MM-DD HH24:MI:SS’, ’NLS_CALENDAR=GREGORIAN’))

NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE_ _2_21 _1_PS 0_1 VALUES (’A ’, ’B ’, ’C ’, ’D ’, ’E’F’ IH’G’ ’J’, ’K ’, ’L ’, M ’' , ’N ’, ’O ’, ’'P’, ’Q ’, ’R ’, S ’,T ’ W’V’U’ ’Y ’, ’X ’, ’Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_ _2_21 SP_1_0_2 VALUES (’a’, ’b ’," ’c’, ’d ’, ’e’f’, ’g ’, ’h ’, ’i’, ’j’, ’k’, ’i’, 'm'', ’n’, ’o ’, ’'p’, ’q ’, ’r’, ’s’,t’, ’u ’, ’v ’, ’w ’, ’x ’, ’y ’, ’z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_ _2_21 _1_PS 0_3 VALUES (’1’, ’2’," ’3’, ’4’, ’5’6’, ’7’, ’8’, ’9’, , ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST DATA ),PARTITION P_DATE_9_9 VALUES LESS THAN (MAXVALUE) NOLOGGING NOCOMPRESSTABLESPACE TEST_DATA PCTFREE 10 INITRANS 1 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

(; SUBPARTITION P DATE_9_9_SP 1_0_1 VALUES (’A ’, ’-B’, ’C ’, ’D’, ’E ’,F’, ’G ’, ’H’, ’I’, ’J’, K ’' \ , L ’, ’M ’, ’N ’, ’O ’, ’-P’, ’Q ’, ’R’, ’S’,T ’, ’U ’, ’V ’, ’W ’, ’Y ’, X ’' \ , Z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_9_9_SP 1_0_2 VALUES (’a ’, ’' b ’, I r-H I I C , d ’, ’e ’,f’, ’g ’, ’h ’, ’i’, ’j’, k’' \ , i’, ’m ’, ’n’, ’o ’, ’’p ’, ’q ’, ’r ’, ’s’,t’, ’u ’, ’v ’, ’w ’, ’x ’, y ’' \ , z’) TABLESPACE TEST_DATA,

SUBPARTITION P_DATE_9_9_SP 1_0_3 VALUES (’1’, ’-2’, 3’, ’4’, ’5’,’6’, ’7’, ’8’, ’9’, ’0’) TABLESPACE TEST_DATA ))COMPRESS BASIC NOCACHE NOPARALLEL MONITORING;

CREATE BITMAP INDEX TEST_USER.MASTER_4_CHAR_1_IDX ON TEST_USER.MASTER_4 (CHAR_1)PCTFREE 10

Page 239: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 231

INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

LOGGING LOCAL (

PARTITION P_DATE_0_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_0_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_0_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_0_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_1_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_1_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_2_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_2_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_3_0 LOGGING PCTFREE 10 INITRANS 2

Page 240: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 232

MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_3_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_4_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_4_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_5_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_5_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_6_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_6_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_0 LOGGING PCTFREE 10 INITRANS 2

Page 241: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 233

MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_0_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_8_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_8_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_0_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_9_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_0_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 0_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 0_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 0_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_0 LOGGING PCTFREE 10 INITRANS 2

Page 242: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 234

MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 0_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 0_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 0_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_12_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_12 0_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 0_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 0_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_1_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P DATE 1 1 SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P DATE 1 1 SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_1 SP 1_0_3 TABLESPACE TEST_DATA ),^RTITION P DATE 2 1LOGGINGPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH 'CACHE DEFAULT)

SUBPARTITION P DATE 2 1 SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P DATE 2 1 SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_1 SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_3_1 LOGGING PCTFREE 10 INITRANS 2

Page 243: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 235

MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_3_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_4_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_4_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_5_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_5_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_6_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_6_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_1 LOGGING PCTFREE 10 INITRANS 2

Page 244: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 236

MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_8_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_8 1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8 1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8 1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_9_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 1_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_1 LOGGING PCTFREE 10 INITRANS 2

Page 245: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 237

MAXTRANSSTORAGE

255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 1_SP 1_0_3 TABLESPACE TEST DATA ),

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_12_1

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_12 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 1_SP 1_0_3 TABLESPACE TEST DATA ),

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_1_2

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_1_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_2_2

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_2_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_3_2 LOGGING PCTFREE 10 INITRANS 2

Page 246: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 238

MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_3_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_4_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_4_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_5_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_5_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_6_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_6_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_2 LOGGING PCTFREE 10 INITRANS 2

Page 247: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 239

MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_8_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_8 2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8 2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8 2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_9_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_2 LOGGING PCTFREE 10 INITRANS 2

Page 248: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 240

MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_12_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_12 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_9_9 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_9_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_9_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_9_SP 1_0_3 TABLESPACE TEST_DATA

)NOPARALLEL;

CREATE BITMAP INDEX TEST_USER.MASTER_4_CHAR_2_IDX ON TEST_USER.MASTER_4 (CHAR_2)PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

LOGGING LOCAL (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

Page 249: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 241

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_0_0

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)IONIONION

_0_0_SP 1_0_1 TABLESPACE TEST_0_0_SP 1_0_2 TABLESPACE TEST_0_0_SP 1_0_3 TABLESPACE TEST

DATE_1_0

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)IONIONIONDATE

DATEDATEDATE2_0

_1_0_SP 1_0_1 TABLESPACE TEST_1_0_SP 1_0_2 TABLESPACE TEST_1_0_SP 1_0_3 TABLESPACE TEST

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)IONIONION

DATEDATEDATE

i 2 0_SP 1_0_1 TABLESPACE TESTi 2 0_SP 1_0_2 TABLESPACE TEST; 2 0_SP 1_0_3 TABLESPACE TEST

DATE_3_0

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

SUBPARTITION P_DATE_3_0_SP 1_0_1 TABLESPACE TESTSUBPARTITION P_DATE_3_0_SP 1_0_2 TABLESPACE TESTSUBPARTITION P_DATE_3_0_SP 1_0_3 TABLESPACE TEST

DATA, DATA, DATA ),

DATA, DATA, DATA ),

DATA, DATA, DATA ),

DATA, DATA, DATA ),

Page 250: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 242

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_4_0

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)IONIONIONDATE

DATEDATEDATE5_0

_4_0_SP 1_0_1 TABLESPACE TEST_4_0_SP 1_0_2 TABLESPACE TEST_4_0_SP 1_0_3 TABLESPACE TEST

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)IONIONIONDATE

DATE DATE DATE "6 0

i 5 0_SP 1_0_1 TABLESPACE TESTi 5 0_SP 1_0_2 TABLESPACE TESTi 5 0_SP 1_0_3 TABLESPACE TEST

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)IONIONION

DATEDATEDATE

_6_0_SP 1_0_1 TABLESPACE TEST_6_0_SP 1_0_2 TABLESPACE TEST_6_0_SP 1_0_3 TABLESPACE TEST

DATE_7_0

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

SUBPARTITION P_DATE_7_0_SP 1_0_1 TABLESPACE TESTSUBPARTITION P_DATE_7_0_SP 1_0_2 TABLESPACE TESTSUBPARTITION P_DATE_7_0_SP 1_0_3 TABLESPACE TEST

DATA, DATA, DATA ),

DATA, DATA, DATA ),

DATA, DATA, DATA ),

DATA, DATA, DATA ),

Page 251: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 243

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_8_0

102255(BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

CELL_FLASH_CACHE DEFAULT)

ION P_DATE ION P_DATE ION P_DATE DATE 9 0

; 8 0_SP 1_0_1 TABLESPACE TEST_DATA,i 8 0_SP 1_0_2 TABLESPACE TEST_DATA,_8_0_SP 1_0_3 TABLESPACE TEST_DATA ),

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)IONIONION

DATEDATEDATE

_9_0_SP 1_0_1 TABLESPACE TEST_DATA,_9_0_SP 1_0_2 TABLESPACE TEST_DATA,_9_0_SP 1_0_3 TABLESPACE TEST_DATA ),

DATE_10_0

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)IONIONION

; 10 0_SP 1_0_1 TABLESPACE TEST DATA,; 10 0_SP 1_0_2 TABLESPACE TEST DATA,; 10 0_SP 1_0_3 TABLESPACE TEST DATA

DATE_11_0

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 0_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 0_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 0_SP 1_0_3 TABLESPACE TEST DATA

Page 252: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 244

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_12_0

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)IONIONION

i 12 0_SP 1_0_1 TABLESPACE TEST DATA,i 12 0_SP 1_0_2 TABLESPACE TEST DATA,i 12 0_SP 1_0_3 TABLESPACE TEST DATA

DATE_1_1

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_1_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_2_1

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_2_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_3 LOGGING PCTFREE INITRANS MAXTRANS STORAGE

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_3_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_1_SP 1_0_3 TABLESPACE TEST_DATA ),

Page 253: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 245

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_4_1

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

SUBPARTITION P_DATE_4_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_5_1

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

SUBPARTITION P_DATE_5_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_6_1

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

SUBPARTITION P_DATE_6_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7 LOGGING PCTFREE INITRANS MAXTRANS STORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

SUBPARTITION P_DATE_7_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_1_SP 1_0_3 TABLESPACE TEST_DATA

Page 254: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 246

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_8_1

102255(BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_8_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_9_1

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_1 LOGGINGPCTFREEINITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)IONIONION

i 10 1_SP 1_0_1 TABLESPACE TEST DATA,; 10 1_SP 1_0_2 TABLESPACE TEST DATA,i 10 1_SP 1_0_3 TABLESPACE TEST DATA

DATE_11_1

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 1_SP 1_0_3 TABLESPACE TEST DATA

Page 255: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 247

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_12_1

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)IONIONION

i 12 1_SP 1_0_1 TABLESPACE TEST DATA,i 12 1_SP 1_0_2 TABLESPACE TEST DATA,i 12 1_SP 1_0_3 TABLESPACE TEST DATA

DATE_1_2

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_1_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_2_2

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_2_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_3_2 LOGGINGPCTFREEINITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_3_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_2_SP 1_0_3 TABLESPACE TEST_DATA ),

Page 256: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 248

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_4_2

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

SUBPARTITION P_DATE_4_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_5_2

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

SUBPARTITION P_DATE_5_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_6_2

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

SUBPARTITION P_DATE_6_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_2 LOGGINGPCTFREEINITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

SUBPARTITION P_DATE_7_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_2_SP 1_0_3 TABLESPACE TEST_DATA

Page 257: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 249

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_8_2

102255(BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_8 2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8 2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8 2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_9_2

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_2 LOGGINGPCTFREEINITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)IONIONION

i 10 2_SP 1_0_1 TABLESPACE TEST DATA,; 10 2_SP 1_0_2 TABLESPACE TEST DATA,; 10 2_SP 1_0_3 TABLESPACE TEST DATA

DATE_11_2

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 2_SP 1_0_3 TABLESPACE TEST DATA

Page 258: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 250

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

_DATE_12_2

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)IONIONION

i 12 2_SP 1_0_1 TABLESPACE TEST DATA,i 12 2_SP 1_0_2 TABLESPACE TEST DATA,i 12 2_SP 1_0_3 TABLESPACE TEST DATA

DATE_9_9

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_9_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_9_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_9_SP 1_0_3 TABLESPACE TEST_DATA

)NOPARALLELINVISIBLE;

CREATE BITMAP INDEX TEST TEST_USER.MASTER_4 (CHAR 3)

USER.MASTER 4 CHAR 3 IDX ON

PCTFREEINITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

LOGGING LOCAL (

PARTITION P_DATE_0_0 LOGGING PCTFREE INITRANS MAXTRANS STORAGE

102255(BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

Page 259: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 251

CELL FLASH CACHE DEFAULT))

SUBPARTITION P_DATE_0_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_0_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_0_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_1_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_1_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_2_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_2_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_3_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_3_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_4_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT

Page 260: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 252

CELL FLASH CACHE DEFAULT))

SUBPARTITION P_DATE_4_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_5_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_5_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_6_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_6_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_8_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT

Page 261: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 253

CELL FLASH CACHE DEFAULT))

SUBPARTITION P_DATE_8_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_0_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_9_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_0_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 0_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 0_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 0_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 0_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 0_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 0_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_12_0 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT

Page 262: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 254

CELL FLASH CACHE DEFAULT))

SUBPARTITION P_DATE_12 0_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 0_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 0_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_1_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_1_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_2_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_2_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_3_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_3_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_4_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT

Page 263: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 255

CELL FLASH CACHE DEFAULT))

SUBPARTITION P_DATE_4_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_5_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_5_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_6_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_6_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_8_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT

Page 264: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 256

CELL FLASH CACHE DEFAULT))

SUBPARTITION P_DATE_8_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_9_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 1_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 1_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_12_1 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT

Page 265: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 257

CELL FLASH CACHE DEFAULT))

SUBPARTITION P_DATE_12 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 1_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_1_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_1_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_2_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_2_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_3_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_3_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_4_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT

Page 266: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 258

CELL FLASH CACHE DEFAULT))

SUBPARTITION P_DATE_4 2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4 2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4 2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_5_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_5_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_6_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_6_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_8_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT

Page 267: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 259

CELL FLASH CACHE DEFAULT))

SUBPARTITION P_DATE_8 2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8 2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8 2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_9_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_12_2 LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT

Page 268: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 260

CELL FLASH CACHE DEFAULT

( SUBPARTIT SUBPARTIT SUBPARTIT

PARTITION P LOGGING PCTFREE INITRANS MAXTRANS STORAGE

)ION P_DATI ION P_DATI ION P_DATI DATE 9 9

; 12 2_SP 1_0_1 TABLESPACE TEST DATA,i 12 2_SP 1_0_2 TABLESPACE TEST DATA,; 12 2_SP 1_0_3 TABLESPACE TEST DATA

102255(BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_9_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_9_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_9_SP 1_0_3 TABLESPACE TEST_DATA

)NOPARALLELINVISIBLE;

CREATE INDEX TEST_USER.MASTER_4_DATE_1_IDX ON TEST_USER.MASTER_4 (DATE_1)PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

LOGGING LOCAL (

PARTITION P_DATE_0_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_0_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_0_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_0_0_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_1_0 LOGGING NOCOMPRESS

Page 269: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 261

PCTFREEINITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE'

PARTITION P_DATE_2_0 LOGGING NOCOMPRESS PCTFREE

_1_0_SP 1_0_1 TABLESPACE TEST_DATA,_1_0_SP 1_0_2 TABLESPACE TEST_DATA,_1_0_SP 1_0_3 TABLESPACE TEST_DATA

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE' SUBPARTITION P_DATE

PARTITION P_DATE_3_0 LOGGING NOCOMPRESS PCTFREE

; 2 0_SP 1_0_1 TABLESPACE TEST_DATA,i 2 0_SP 1_0_2 TABLESPACE TEST_DATA,i 2 0_SP 1_0_3 TABLESPACE TEST_DATA

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DAT SUBPARTITION P_DAT SUBPARTITION P_DAT

PARTITION P_DATE_4_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

( SUBPARTITION P_DATE_4_0_SP_1_ SUBPARTITION P DATE 4 0 S P 1

_3_0_SP 1_0_1 TABLESPACE TEST_DATA,_3_0_SP 1_0_2 TABLESPACE TEST_DATA,_3_0_SP 1_0_3 TABLESPACE TEST_DATA

DEFAULTDEFAULTDEFAULT

0_10_2

TABLESPACE TEST_DATA, TABLESPACE TEST DATA,

Page 270: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 262

SUBPARTITION P DATE 4 0 S P 1 0 3 TABLESPACE TEST DATA ),PARTITION P DATE 5 0

LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 5 0 SP 1_0_1 TABLESPACE TEST _DATA,SUBPARTITION P DATE 5 0 SP 1_ 2_01 TABLESPACE TEST _DATA,SUBPARTITION P_DATE_5_0 SP 1_ 3_01 TABLESPACE TEST _DATA

PARTITION P DATE 6 0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 6 0 SP 1_ 1_01 TABLESPACE TEST _DATA,SUBPARTITION P DATE 6 0 SP 1_1 O _ TABLESPACE TEST _DATA,SUBPARTITION P_DATE_6_0 SP 1_ 3_0i TABLESPACE TEST _DATA

PARTITION P DATE 7 0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 7 0 SP 1_ 1_0i TABLESPACE TEST _DATA,SUBPARTITION P DATE 7 0 SP 1_ 2_0i TABLESPACE TEST _DATA,SUBPARTITION P_DATE_7_0 SP 1_ 3_0i TABLESPACE TEST _DATA

PARTITION P_DATE_8_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH CACHE DEFAULT

Page 271: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 263

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_9_0 LOGGING NOCOMPRESS PCTFREE

0 S P 1 0 1 TABLESPACE TEST DATA,_8_0_SP 1_0_2 TABLESPACE TEST_DATA,_8_0_SP 1_0_3 TABLESPACE TEST_DATA ),

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_ SUBPARTITION P_ SUBPARTITION P_

PARTITION P_DATE_ LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

DATE DATE DATE 10 0

_9_0_SP 1_0_1 TABLESPACE TEST_DATA,_9_0_SP 1_0_2 TABLESPACE TEST_DATA,_9_0_SP 1_0_3 TABLESPACE TEST_DATA ),

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_11_0 LOGGING NOCOMPRESS PCTFREE

; 10 0_SP 1_0_1 TABLESPACE TEST DATA,; 10 0_SP 1_0_2 TABLESPACE TEST DATA,i 10 0_SP 1_0_3 TABLESPACE TEST DATA

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)SUBPARTITION P_ SUBPARTITION P_ SUBPARTITION P_

i 11 0_SP 1_0_1 TABLESPACE TEST DATA,; 11 0_SP 1_0_2 TABLESPACE TEST DATA,; 11 0_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_12_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2

Page 272: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 264

MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_12 0_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 0_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 0_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_1_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_1_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_2_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_2_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_3_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_3_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P DATE 4 1

Page 273: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 265

LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_4_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_5_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_5_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_6_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_6_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

Page 274: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 266

( SUBPARTITION P DATE 7 1 S P 1 0 1SUBPARTITION P_DATE_7_1_SP 1_0_SUBPARTITION P_DATE_7_1_SP 1_0_

PARTITION P_DATE_8_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_8_1_SP 1_0_SUBPARTITION P_DATE_8_1_SP 1_0_SUBPARTITION P_DATE_8_1_SP 1_0_

PARTITION P_DATE_9_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_9_1_SP 1_0_SUBPARTITION P_DATE_9_1_SP 1_0_SUBPARTITION P_DATE_9_1_SP 1_0_

PARTITION P_DATE_10_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 1_SP 1_0_SUBPARTITION P_DATE_10 1_SP 1_0_SUBPARTITION P_DATE_10 1_SP 1_0_

PARTITION P_DATE_11_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

Page 275: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 267

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 1_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_12_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_12 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 1_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_1_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_1_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_2_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_2_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_3_2 LOGGING NOCOMPRESS

Page 276: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 268

PCTFREEINITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P SUBPARTITION P SUBPARTITION P

PARTITION P_DATE LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

_3_2_SP 1_0_1 TABLESPACE TEST_DATA,_3_2_SP 1_0_2 TABLESPACE TEST_DATA,_3_2_SP 1_0_3 TABLESPACE TEST_DATA

4 2

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE' SUBPARTITION P_DATE

PARTITION P_DATE_5_2 LOGGING NOCOMPRESS PCTFREE

_4_2_SP 1_0_1 TABLESPACE TEST_DATA,_4_2_SP 1_0_2 TABLESPACE TEST_DATA,_4_2_SP 1_0_3 TABLESPACE TEST_DATA

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

DATE DATE DATE "6 2

)( SUBPARTITION P_SUBPARTITION P_SUBPARTITION P_

PARTITION P_DATE___LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

( SUBPARTITION P_DATE_6_2_SP_1_ SUBPARTITION P DATE 6 2 S P 1

; 5 2_SP 1_0_1 TABLESPACE TEST_DATA,i 5 2_SP 1_0_2 TABLESPACE TEST_DATA,i 5 2_SP 1_0_3 TABLESPACE TEST_DATA

DEFAULTDEFAULTDEFAULT

0_10_2

TABLESPACE TEST_DATA, TABLESPACE TEST DATA,

Page 277: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 269

SUBPARTITION P DATE 6 2 S P 1 0 3 TABLESPACE TEST DATA ),PARTITION P_DATE_7_2

LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 7 2 SP 1_0_1 TABLESPACE TEST _DATA,SUBPARTITION P DATE 7 2 SP 1_ 2_01 TABLESPACE TEST _DATA,SUBPARTITION P DATE 7 2 SP 1_ 3_01 TABLESPACE TEST _DATA

PARTITION P DATE 8 2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 8 2 SP 1_ 1_01 TABLESPACE TEST _DATA,SUBPARTITION P DATE 8 2 SP 1_1 O _ TABLESPACE TEST _DATA,SUBPARTITION P DATE 8 2 SP 1_ 3_0i TABLESPACE TEST _DATA

PARTITION P DATE 9 2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 9 2 SP 1_ 1_0i TABLESPACE TEST _DATA,SUBPARTITION P DATE 9 2 SP 1_ 2_0i TABLESPACE TEST _DATA,SUBPARTITION P_DATE_9_2 SP 1_ 3_0i TABLESPACE TEST _DATA

PARTITION P_DATE_10_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH CACHE DEFAULT

Page 278: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 270

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_11_2 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

; 10 2_SP 1_0_1 TABLESPACEi 10 2_SP 1_0_2 TABLESPACE; 10 2_SP 1_0_3 TABLESPACE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_12_2 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

i 11 2_SP 1_0_1 TABLESPACE; 11 2_SP 1_0_2 TABLESPACEi 11 2_SP 1_0_3 TABLESPACE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P SUBPARTITION P SUBPARTITION P

PARTITION P_DATE LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

i 12 2_SP 1_0_1 TABLESPACEi 12 2_SP 1_0_2 TABLESPACE; 12 2_SP 1_0_3 TABLESPACE

9 9

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

SUBPARTITION P_DATE_9_9_SP 1_0_1 TABLESPACE TESTSUBPARTITION P_DATE_9_9_SP 1_0_2 TABLESPACE TESTSUBPARTITION P_DATE_9_9_SP 1_0_3 TABLESPACE TEST

)NOPARALLEL INVISIBLE COMPRESS 1;

DATA, DATA, DATA ),

DATA, DATA, DATA ),

DATA, DATA, DATA ),

DATA, DATA, DATA )

Page 279: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 271

CREATE INDEX TEST_USER.MASTER_4_DATE_2_IDX ON TEST_USER.MASTER_4 (DATE_2)PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

LOGGING LOCAL (

PARTITION P_DATE_0_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_0_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_0_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_0_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_1_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_1_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_2_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

Page 280: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 272

( SUBPARTITION P_DATE_2_0_SP_1 SUBPARTITION P_DATE_2_0_SP_1 SUBPARTITION P_DATE_2_0_SP_1_

PARTITION P_DATE_3_0 LOGGING

0_10_20_3

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA

NOCOMPRESSPCTFREEINITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DAT SUBPARTITION P_DAT SUBPARTITION P_DAT

PARTITION P_DATE_4_0 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

_3_0_SP 1_0_1 TABLESPACE TEST_DATA,_3_0_SP 1_0_2 TABLESPACE TEST_DATA,_3_0_SP 1_0_3 TABLESPACE TEST_DATA

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_5_0 LOGGING NOCOMPRESS PCTFREE

_4_0_SP 1_0_1 TABLESPACE TEST_DATA,_4_0_SP 1_0_2 TABLESPACE TEST_DATA,_4_0_SP 1_0_3 TABLESPACE TEST_DATA

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_6_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

; 5 0_SP 1_0_1 TABLESPACE TEST_DATA,; 5 0_SP 1_0_2 TABLESPACE TEST_DATA,i 5 0_SP 1_0_3 TABLESPACE TEST_DATA

Page 281: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 273

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_6_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_8_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_8_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_9_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_10_0 LOGGING NOCOMPRESS

Page 282: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 274

PCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 10 _PS_0 _ o _1SUBPARTITION P DATE 10 0 SP l-> 0 _2SUBPARTITION P DATE 10 _PS_0 0_1 3

PARTITION P DATE 11 0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL DEFAULTFLASH CACHE DEFAULTCELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 11 P_S0 1_0_1SUBPARTITION P DATE 11 _PS_0 0_1 _2SUBPARTITION P DATE 11 _PS_0 1_0_3

PARTITION P DATE 12 0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL DEFAULTFLASH CACHE DEFAULTCELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 12 0 SP _ o _1SUBPARTITION P DATE 12 _PS_0 0_1 _2SUBPARTITION P DATE 12 _PS_0 1_0_3

PARTITION P_DATE_1_1LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL DEFAULTFLASH CACHE DEFAULTCELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 1 1 1_PS_ _0_1SUBPARTITION P DATE 1 1 1_PS_ _0_2

TABLESPACE TEST TABLESPACE TEST TABLESPACE TEST

TABLESPACE TEST TABLESPACE TEST TABLESPACE TEST

TABLESPACE TEST TABLESPACE TEST TABLESPACE TEST

TABLESPACE TEST TABLESPACE TEST

DATA, DATA, DATA ),

DATA, DATA, DATA ),

DATA, DATA, DATA ),

DATA,DATA,

Page 283: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 275

SUBPARTITION P DATE 1 1 S P 1 0 3 TABLESPACE TEST DATA ),PARTITION P DATE 2 1

LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 2 1 SP 1_0_1 TABLESPACE TEST _DATA,SUBPARTITION P DATE 2 1 SP 1_ 2_01 TABLESPACE TEST _DATA,SUBPARTITION P_DATE_2_1 SP 1_ 3_01 TABLESPACE TEST _DATA

PARTITION P_DATE_3_1LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 3 1 SP 1_ 1_01 TABLESPACE TEST _DATA,SUBPARTITION P DATE 3 1 SP 1_1 O _ TABLESPACE TEST _DATA,SUBPARTITION P_DATE_3_1 SP 1_ 3_0i TABLESPACE TEST _DATA

PARTITION P DATE 4 1LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 4 1 SP 1_ 1_0i TABLESPACE TEST _DATA,SUBPARTITION P DATE 4 1 SP 1_ 2_0i TABLESPACE TEST _DATA,SUBPARTITION P DATE 4 1 SP 1_ 3_0i TABLESPACE TEST _DATA

PARTITION P_DATE_5_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH CACHE DEFAULT

Page 284: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 276

CELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_5_1_SP 1_0_SUBPARTITION P_DATE_5_1_SP 1_0_SUBPARTITION P_DATE_5_1_SP 1_0_

PARTITION P_DATE_6_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_6_1_SP 1_0_SUBPARTITION P_DATE_6_1_SP 1_0_SUBPARTITION P_DATE_6_1_SP 1_0_

PARTITION P_DATE_7_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7_1_SP 1_0_SUBPARTITION P_DATE_7_1_SP 1_0_SUBPARTITION P_DATE_7_1_SP 1_0_

PARTITION P_DATE_8_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_8_1_SP 1_0_SUBPARTITION P_DATE_8_1_SP 1_0_SUBPARTITION P_DATE_8_1_SP 1_0_

PARTITION P_DATE_9_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

Page 285: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 277

MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 1_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 1_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_12_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_12 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 1_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_1_2

Page 286: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 278

LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_1_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_2_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_2_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_3_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_3_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_4_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

Page 287: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 279

( SUBPARTITION P DATE 4 2 S P 1 0 1SUBPARTITION P_DATE_4_2_SP 1_0_SUBPARTITION P_DATE_4_2_SP 1_0_

PARTITION P_DATE_5_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_5_2_SP 1_0_SUBPARTITION P_DATE_5_2_SP 1_0_SUBPARTITION P_DATE_5_2_SP 1_0_

PARTITION P_DATE_6_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_6_2_SP 1_0_SUBPARTITION P_DATE_6_2_SP 1_0_SUBPARTITION P_DATE_6_2_SP 1_0_

PARTITION P_DATE_7_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7_2_SP 1_0_SUBPARTITION P_DATE_7_2_SP 1_0_SUBPARTITION P_DATE_7_2_SP 1_0_

PARTITION P_DATE_8_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

Page 288: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 280

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_8 2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8 2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8 2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_9_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_2_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_12_2 LOGGING NOCOMPRESS

Page 289: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 281

PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_12 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_9_9 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_9_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_9_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_9_SP 1_0_3 TABLESPACE TEST_DATA

)NOPARALLEL INVISIBLE COMPRESS 1;

CREATE INDEX TEST (DATE_3)PCTFREE INITRANS MAXTRANS STORAGE

USER.MASTER 4 DATE 3 IDX ON TEST USER.MASTER 4

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

LOGGING LOCAL (

PARTITION P_DATE_0_0 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

102255(BUFFER_POOLFLASH_CACHE

DEFAULTDEFAULT

Page 290: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 282

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P SUBPARTITION P SUBPARTITION P

PARTITION P_DATE LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

DATEDATEDATE1_0

_0_0_SP 1_0_1 TABLESPACE TEST_DATA,_0_0_SP 1_0_2 TABLESPACE TEST_DATA,_0_0_SP 1_0_3 TABLESPACE TEST_DATA

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_2_0 LOGGING NOCOMPRESS PCTFREE

_1_0_SP 1_0_1 TABLESPACE TEST_DATA,_1_0_SP 1_0_2 TABLESPACE TEST_DATA,_1_0_SP 1_0_3 TABLESPACE TEST_DATA

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_3_0 LOGGING NOCOMPRESS PCTFREE

; 2 0_SP 1_0_1 TABLESPACE TEST_DATA,i 2 0_SP 1_0_2 TABLESPACE TEST_DATA,; 2 0_SP 1_0_3 TABLESPACE TEST_DATA

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DATI SUBPARTITION P_DATI SUBPARTITION P_DATI

PARTITION P_DATE_4_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2

_3_0_SP 1_0_1 TABLESPACE TEST_DATA,_3_0_SP 1_0_2 TABLESPACE TEST_DATA,_3_0_SP 1_0_3 TABLESPACE TEST_DATA

Page 291: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 283

MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_4_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_5_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_5_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_6_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_6_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P DATE 8 0

Page 292: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 284

LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_8_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_0_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_9_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_0_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 0_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 0_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 0_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

)

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT

Page 293: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 285

( SUBPARTITION P_DATE_11_0_SP_ SUBPARTITION P_DATE_11_0_SP_ SUBPARTITION P_DATE_11_0_SP_

PARTITION P_DATE_12_0 LOGGING

1_0_1 1_0_2 1 0 3

TABLESPACE TEST TABLESPACE TEST TABLESPACE TEST

NOCOMPRESSPCTFREEINITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DAT SUBPARTITION P_DAT SUBPARTITION P_DAT

PARTITION P_DATE_1_1 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

i 12 0_SP 1_0_1 TABLESPACE; 12 0_SP 1_0_2 TABLESPACEi 12 0_SP 1_0_3 TABLESPACE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_2_1 LOGGING NOCOMPRESS PCTFREE

_1_1_SP 1_0_1 TABLESPACE TEST_1_1_SP 1_0_2 TABLESPACE TEST_1_1_SP 1_0_3 TABLESPACE TEST

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_3_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

i 2 1_SP 1_0_1 TABLESPACE TEST; 2 1_SP 1_0_2 TABLESPACE TEST; 2 1_SP 1_0_3 TABLESPACE TEST

DATA, DATA, DATA ),

DATA, DATA, DATA ),

DATA, DATA, DATA ),

DATA, DATA, DATA ),

Page 294: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 286

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_3_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_4_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_4_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_5_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_5_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_6_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_6_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_1 LOGGING NOCOMPRESS

Page 295: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 287

PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P DATE 7 1 1_PS_ 1 o _ l-> TABLESPACE TEST_DATA,SUBPARTITION P DATE 7 1 1P_S 0 2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_1 1_PS_ 3_0_ TABLESPACE TEST_DATA )

PARTITION P DATE 8 1LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 8 1 1P_S 0 1 TABLESPACE TEST_DATA,SUBPARTITION P DATE 8 1 1_PS_ 1

1 o _ TABLESPACE TEST_DATA,

SUBPARTITION P DATE 8 1 1_PS_ 3_0_ TABLESPACE TEST_DATA )PARTITION P DATE 9 1

LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 9 1 1_PS_ 1 o _ i-> TABLESPACE TEST_DATA,SUBPARTITION P DATE 9 1 1_PS_ _0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_1 1_PS_ 3_0_ TABLESPACE TEST_DATA )

PARTITION P DATE 10 1LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 10 _PS_1 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P DATE 10 _PS_1 2_0_1 TABLESPACE TEST DATA,

Page 296: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 288

SUBPARTITION P DATE 10 1 S P 1 0 3 TABLESPACE TEST DATA ),PARTITION P_DATE_11_1

LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 1 1 1 S P 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P DATE 1 1 1 S P 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P DATE 1 1 1 S P 1_0_3 TABLESPACE TEST_DATA

PARTITION P DATE 12 1LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 12 1 SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P DATE 12 1 SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12_1_SP_1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_1_2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 1 2 S P 1 0 1 TABLESPACE TEST_DATA,SUBPARTITION P DATE 1 2 S P 1 0 2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_2_SP_1 0 3 TABLESPACE TEST_DATA )

PARTITION P_DATE_2_2LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH CACHE DEFAULT

Page 297: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 289

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P SUBPARTITION P SUBPARTITION P

PARTITION P_DATE LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

DATEDATEDATE3_2

; 2 2_SP 1_0_1 TABLESPACE TEST_DATA,; 2 2_SP 1_0_2 TABLESPACE TEST_DATA,i 2 2_SP 1_0_3 TABLESPACE TEST_DATA

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DAT SUBPARTITION P_DAT SUBPARTITION P_DAT

PARTITION P_DATE_4_2 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

_3_2_SP 1_0_1 TABLESPACE TEST_DATA,_3_2_SP 1_0_2 TABLESPACE TEST_DATA,_3_2_SP 1_0_3 TABLESPACE TEST_DATA

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_5_2 LOGGING NOCOMPRESS PCTFREE

_4_2_SP 1_0_1 TABLESPACE TEST_DATA,_4_2_SP 1_0_2 TABLESPACE TEST_DATA,_4_2_SP 1_0_3 TABLESPACE TEST_DATA

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_ SUBPARTITION P_ SUBPARTITION P_

PARTITION P_DATE_ LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2

DATE DATE DATE "6 2

; 5 2_SP 1_0_1 TABLESPACE TEST_DATA,; 5 2_SP 1_0_2 TABLESPACE TEST_DATA,; 5 2_SP 1_0_3 TABLESPACE TEST_DATA

Page 298: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 290

MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 6_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 6_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 6_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 7_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 7_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 7_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_8_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 8 2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 8 2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 8 2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_9_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 9_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 9_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 9_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_10_2

Page 299: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 291

LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 10 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE 10 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE 10 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 11 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE 11 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE 11 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_12_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 12 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE 12 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE 12 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_9_9 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

)

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT

Page 300: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 292

( SUBPARTITION P DATE 9 9 S P 1 0 1 TABLESPACE TEST DATA,SUBPARTITION P_DATE 9_9_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 9_9_SP 1_0_3 TABLESPACE TEST_DATA

)NOPARALLEL COMPRESS 1;

CREATE UNIQUE INDEX TEST_USER.MASTER_4 (PK_VALUE)LOGGING TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE

PK ON TEST USER.MASTER 4

TEST_DATA102255(INITIALNEXTMINEXTENTSMAXEXTENTSPCTINCREASEBUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

64K1M1UNLIMITED0DEFAULTDEFAULTDEFAULT

NOPARALLEL;

CREATE INDEX TEST (VALUE_1)PCTFREE INITRANS MAXTRANS STORAGE

USER.MASTER 4 VALUE 1 IDX ON TEST USER.MASTER 4

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

LOGGING LOCAL (

PARTITION P_DATE_0_0 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P DATE 0 0 S P 1 0 1 TABLESPACE TEST DATA,

Page 301: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 293

SUBPARTITION P DATE 0 0 S P 1 0 2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_0_0 SP 1_

23 __

00 1 1 TABLESPACE TEST _DATA

PARTITION P DATE 1 0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 1 0 SP 1_0_1 TABLESPACE TEST _DATA,SUBPARTITION P DATE 1 0 SP 1_ 2_01 TABLESPACE TEST _DATA,SUBPARTITION P_DATE_1_0 SP 1_ 3_01 TABLESPACE TEST _DATA

PARTITION P DATE 2 0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 2 0 SP 1_ 1_01 TABLESPACE TEST _DATA,SUBPARTITION P DATE 2 0 SP 1_1 O _ TABLESPACE TEST _DATA,SUBPARTITION P_DATE_2_0 SP 1_ 3_0i TABLESPACE TEST _DATA

PARTITION P_DATE_3_0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 3 0 SP 1_ 1_0i TABLESPACE TEST _DATA,SUBPARTITION P DATE 3 0 SP 1_ 2_0i TABLESPACE TEST _DATA,SUBPARTITION P_DATE_3_0 SP 1_ 3_0i TABLESPACE TEST _DATA

PARTITION P_DATE_4_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER POOL DEFAULT

Page 302: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 294

FLASH_CACHE CELL FLASH CACHE)

( SUBPARTITION P_DATE_4_0 SUBPARTITION P_DATE_4_0_ SUBPARTITION P_DATE_4_0_

PARTITION P_DATE_5_0 LOGGING

SP_1 SP_1 SP 1

DEFAULTDEFAULT

0_10_20_3

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA

NOCOMPRESSPCTFREEINITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_6_0 LOGGING NOCOMPRESS PCTFREE

i 5 0_SP 1_0_1 TABLESPACE TEST_DATA,i 5 0_SP 1_0_2 TABLESPACE TEST_DATA,i 5 0_SP 1_0_3 TABLESPACE TEST_DATA

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_7_0 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

_6_0_SP 1_0_1 TABLESPACE TEST_DATA,_6_0_SP 1_0_2 TABLESPACE TEST_DATA,_6_0_SP 1_0_3 TABLESPACE TEST_DATA

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DATI SUBPARTITION P_DATI SUBPARTITION P_DATI

PARTITION P_DATE_8_0 LOGGING NOCOMPRESS PCTFREE 10

; 7 0_SP 1_0_1 TABLESPACE TEST_DATA,; 7 0_SP 1_0_2 TABLESPACE TEST_DATA,; 7 0_SP 1_0_3 TABLESPACE TEST_DATA

Page 303: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 295

INITRANSMAXTRANSSTORAGE

2255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_9_0 LOGGING NOCOMPRESS PCTFREE

_8_0_SP 1_0_1 TABLESPACE TEST_DATA,_8_0_SP 1_0_2 TABLESPACE TEST_DATA,_8_0_SP 1_0_3 TABLESPACE TEST_DATA ),

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_ SUBPARTITION P_ SUBPARTITION P_

PARTITION P_DATE_ LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

DATE DATE DATE 10 0

_9_0_SP 1_0_1 TABLESPACE TEST_DATA,_9_0_SP 1_0_2 TABLESPACE TEST_DATA,_9_0_SP 1_0_3 TABLESPACE TEST_DATA ),

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_11_0 LOGGING NOCOMPRESS PCTFREE

i 10 0_SP 1_0_1 TABLESPACE TEST DATA,; 10 0_SP 1_0_2 TABLESPACE TEST DATA,; 10 0_SP 1_0_3 TABLESPACE TEST DATA

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

SUBPARTITION P_DATE_11 0_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 0_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 0_SP 1_0_3 TABLESPACE TEST DATA

Page 304: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 296

PARTITION P_DATE_12 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DAT SUBPARTITION P_DAT SUBPARTITION P_DAT

PARTITION P_DATE_1_1 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

i 12 0_SP 1_0_1 TABLESPACE; 12 0_SP 1_0_2 TABLESPACEi 12 0_SP 1_0_3 TABLESPACE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_2_1 LOGGING NOCOMPRESS PCTFREE

_1_1_SP 1_0_1 TABLESPACE TEST_1_1_SP 1_0_2 TABLESPACE TEST_1_1_SP 1_0_3 TABLESPACE TEST

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_3_1 LOGGING NOCOMPRESS PCTFREE

i 2 1_SP 1_0_1 TABLESPACE TEST; 2 1_SP 1_0_2 TABLESPACE TEST; 2 1_SP 1_0_3 TABLESPACE TEST

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

DATA, DATA, DATA ),

DATA, DATA, DATA ),

DATA, DATA, DATA ),

Page 305: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 297

)SUBPARTITION P_DATE_3 1_SP 1_0_SUBPARTITION P_DATE_3 1_SP 1_0_SUBPARTITION P_DATE_3 1_SP 1_0_

PARTITION P_DATE_4_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_4_1_SP 1_0_SUBPARTITION P_DATE_4_1_SP 1_0_SUBPARTITION P_DATE_4_1_SP 1_0_

PARTITION P_DATE_5_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_5_1_SP 1_0_SUBPARTITION P_DATE_5_1_SP 1_0_SUBPARTITION P_DATE_5_1_SP 1_0_

PARTITION P_DATE_6_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_6_1_SP 1_0_SUBPARTITION P_DATE_6_1_SP 1_0_SUBPARTITION P_DATE_6_1_SP 1_0_

PARTITION P_DATE_7_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

Page 306: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 298

STORAGE (BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7 1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7 1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7 1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_8_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_8_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_9_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 1_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_1 LOGGING

Page 307: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 299

NOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 1 1 1 S P 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P DATE 1 1 1 S P 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P DATE 1 1 1 S P 1 0 3 TABLESPACE TEST_DATA

PARTITION P DATE 12 1LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 12 1 SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P DATE 12 1 SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_12_1_SP_1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_1_2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 1 2 S P 1 0 1 TABLESPACE TEST_DATA,SUBPARTITION P DATE 1 2 S P 1 0 2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_2_SP_1 0 3 TABLESPACE TEST_DATA )

PARTITION P_DATE_2_2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 2 2 S P 1 0 1 TABLESPACE TEST_DATA,

Page 308: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 300

SUBPARTITION P DATE 2 2 S P 1 0 2 TABLESPACE TEST DATA,SUBPARTITION P DATE 2 2 SP 1_

23 __

00 1 1 TABLESPACE TEST _DATA

PARTITION P DATE 3 2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 3 2 SP 1_0_1 TABLESPACE TEST _DATA,SUBPARTITION P DATE 3 2 SP 1_ 2_01 TABLESPACE TEST _DATA,SUBPARTITION P_DATE_3_2 SP 1_ 3_01 TABLESPACE TEST _DATA

PARTITION P DATE 4 2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 4 2 SP 1_ 1_01 TABLESPACE TEST _DATA,SUBPARTITION P DATE 4 2 SP 1_1 O _ TABLESPACE TEST _DATA,SUBPARTITION P DATE 4 2 SP 1_ 3_0i TABLESPACE TEST _DATA

PARTITION P_DATE_5_2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 5 2 SP 1_ 1_0i TABLESPACE TEST _DATA,SUBPARTITION P DATE 5 2 SP 1_ 2_0i TABLESPACE TEST _DATA,SUBPARTITION P DATE 5 2 SP 1_ 3_0i TABLESPACE TEST _DATA

PARTITION P_DATE_6_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER POOL DEFAULT

Page 309: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 301

FLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_6_2_SP_1_0_1SUBPARTITION P_DATE_6_2_SP 1_0_SUBPARTITION P_DATE_6_2_SP 1_0_

PARTITION P_DATE_7_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7_2_SP 1_0_SUBPARTITION P_DATE_7_2_SP 1_0_SUBPARTITION P_DATE_7_2_SP 1_0_

PARTITION P_DATE_8_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_8_2_SP 1_0_SUBPARTITION P_DATE_8_2_SP 1_0_SUBPARTITION P_DATE_8_2_SP 1_0_

PARTITION P_DATE_9_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

SUBPARTITION P_DATE_9_2_SP 1_0_SUBPARTITION P_DATE_9_2_SP 1_0_SUBPARTITION P_DATE_9_2_SP 1_0_

PARTITION P_DATE_10_2 LOGGING NOCOMPRESS PCTFREE 10

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA ),

Page 310: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 302

INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_12_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_12 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_9_9 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_9_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_9_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_9_SP 1_0_3 TABLESPACE TEST_DATA

Page 311: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 303

)NOPARALLEL COMPRESS 1;

CREATE INDEX TEST_USER.MASTER_4_VALUE_2_IDX ON TEST_USER.MASTER_4 (VALUE_2)PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

LOGGING LOCAL (

PARTITION P_DATE_0_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_0_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_0_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_0_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_1_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_1_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_1_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_2_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

Page 312: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 304

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_2_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_2_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_3_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_3_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_3_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_4_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_4_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_5_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_5_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_6_0 LOGGING NOCOMPRESS

Page 313: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 305

PCTFREEINITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE'

PARTITION P_DATE_7_0 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

_6_0_SP 1_0_1 TABLESPACE TEST_DATA,_6_0_SP 1_0_2 TABLESPACE TEST_DATA,_6_0_SP 1_0_3 TABLESPACE TEST_DATA

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DAT SUBPARTITION P_DAT SUBPARTITION P_DAT

PARTITION P_DATE_8_0 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

; 7 0_SP 1_0_1 TABLESPACE TEST_DATA,i 7 0_SP 1_0_2 TABLESPACE TEST_DATA,i 7 0_SP 1_0_3 TABLESPACE TEST_DATA

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_9_0 LOGGING NOCOMPRESS PCTFREE

_8_0_SP 1_0_1 TABLESPACE TEST_DATA,_8_0_SP 1_0_2 TABLESPACE TEST_DATA,_8_0_SP 1_0_3 TABLESPACE TEST_DATA

INITRANSMAXTRANSSTORAGE

10 2255 (BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

SUBPARTITION P_DATE_9_0_SP_1_ SUBPARTITION P DATE 9 0 S P 1

DEFAULTDEFAULTDEFAULT

0_10_2

TABLESPACE TEST_DATA, TABLESPACE TEST DATA,

Page 314: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 306

SUBPARTITION P DATE 9 0 S P 1 0 3 TABLESPACE TEST DATA ),PARTITION P DATE 10 0

LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 10 0 SP 0_1 _1 TABLESPACE TEST DATA,SUBPARTITION P DATE 10 0 SP 0_1 _2 TABLESPACE TEST DATA,SUBPARTITION P DATE 10 0 SP 1_0_3 TABLESPACE TEST DATA

PARTITION P DATE 11 0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 110 SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P DATE 110 SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P DATE 110 SP 1_0_3 TABLESPACE TEST DATA

PARTITION P DATE 12 0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 12 0 SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P DATE 12 0 SP 0_1 _2 TABLESPACE TEST DATA,SUBPARTITION P DATE 12 0 SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_1_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH CACHE DEFAULT

Page 315: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 307

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P SUBPARTITION P SUBPARTITION P

PARTITION P_DATE LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

DATEDATEDATE2_1

_1_1_SP 1_0_1 TABLESPACE TEST_DATA,_1_1_SP 1_0_2 TABLESPACE TEST_DATA,_1_1_SP 1_0_3 TABLESPACE TEST_DATA

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_3_1 LOGGING NOCOMPRESS PCTFREE

; 2 1_SP 1_0_1 TABLESPACE TEST_DATA,; 2 1_SP 1_0_2 TABLESPACE TEST_DATA,i 2 1_SP 1_0_3 TABLESPACE TEST_DATA

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DAT SUBPARTITION P_DAT SUBPARTITION P_DAT

PARTITION P_DATE_4_1 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

_3_1_SP 1_0_1 TABLESPACE TEST_DATA,_3_1_SP 1_0_2 TABLESPACE TEST_DATA,_3_1_SP 1_0_3 TABLESPACE TEST_DATA

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_5_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2

_4_1_SP 1_0_1 TABLESPACE TEST_DATA,_4_1_SP 1_0_2 TABLESPACE TEST_DATA,_4_1_SP 1_0_3 TABLESPACE TEST_DATA

Page 316: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 308

MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_5_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_6_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_6_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_8_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_8_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_8_1_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P DATE 9 1

Page 317: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 309

LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_1_SP 1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 1_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_11 1_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 1_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_11 1_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_12_1 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

)

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT

Page 318: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 310

( SUBPARTITION P_DATE_12_1_SP_ SUBPARTITION P_DATE_12_1_SP_ SUBPARTITION P_DATE_12_1_SP_

PARTITION P_DATE_1_2 LOGGING

1_0_1 1_0_2 1 0 3

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA

NOCOMPRESSPCTFREEINITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_2_2 LOGGING NOCOMPRESS PCTFREE

_1_2_SP 1_0_1 TABLESPACE TEST_DATA,_1_2_SP 1_0_2 TABLESPACE TEST_DATA,_1_2_SP 1_0_3 TABLESPACE TEST_DATA ),

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_ SUBPARTITION P_ SUBPARTITION P_

PARTITION P_DATE_ LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

DATEDATEDATE3_2

; 2 2_SP 1_0_1 TABLESPACE TEST_DATA,i 2 2_SP 1_0_2 TABLESPACE TEST_DATA,; 2 2_SP 1_0_3 TABLESPACE TEST_DATA ),

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DATI SUBPARTITION P_DATI SUBPARTITION P_DATI

PARTITION P_DATE_4_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

_3_2_SP 1_0_1 TABLESPACE TEST_DATA,_3_2_SP 1_0_2 TABLESPACE TEST_DATA,_3_2_SP 1_0_3 TABLESPACE TEST_DATA ),

Page 319: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 311

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_4 2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4 2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_4 2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_5_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_5_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_5_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_6_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_6_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_6_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_7_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_7_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_7_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_8_2 LOGGING NOCOMPRESS

Page 320: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 312

PCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE CELL_FLASH_CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 8 2 S P 1 0 1 TABLESPACE TEST_DATA,SUBPARTITION P DATE 8 2 S P 1 0 2 TABLESPACE TEST_DATA,SUBPARTITION P DATE 8 2 S P 1 0 3 TABLESPACE TEST_DATA )

PARTITION P DATE 9 2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE CELL_FLASH_CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 9 2 S P 1 0 1 TABLESPACE TEST_DATA,SUBPARTITION P DATE 9 2 S P 1 0 2 TABLESPACE TEST_DATA,SUBPARTITION P DATE 9 2 S P 1 0 3 TABLESPACE TEST_DATA )

PARTITION P DATE 10 2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE CELL_FLASH_CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 10 2 S P 1 0 1 TABLESPACE TEST DATA,SUBPARTITION P DATE 10 2 S P 21011 TABLESPACE TEST DATA,SUBPARTITION P DATE 10 2 S P 31011 TABLESPACE TEST_DATA

PARTITION P DATE 112LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE CELL_FLASH_CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 1 1 2 S P 1 0 1 TABLESPACE TEST DATA,SUBPARTITION P DATE 1 1 2 S P 1 0 2 TABLESPACE TEST DATA,

Page 321: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 313

SUBPARTITION P DATE 1 1 2 S P 1 0 3 TABLESPACE TEST DATA ),PARTITION P DATE 12 2

LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER POOL DEFAULTFLASH CACHE DEFAULTCELL FLASH CACHE\

DEFAULT)

( SUBPARTITION P DATE 12 2 S P 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P DATE 12 2 S P 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_12_2_SP_1_0_3 TABLESPACE TEST DATA

PARTITION P DATE 9 9 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER POOL DEFAULTFLASH CACHE DEFAULTCELL FLASH CACHE\

DEFAULT)

( SUBPARTITION P DATE 9 9 S P 1 _0_1 TABLESPACE TEST DATA,SUBPARTITION P DATE 9 9 S P 1 _0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_9_9_SP_1_0_3 TABLESPACE TEST_DATA )

)NOPARALLEL COMPRESS 1;

CREATE INDEX TEST (VALUE_3)PCTFREE INITRANS MAXTRANS STORAGE

USER.MASTER 4 VALUE 3 IDX ON TEST USER.MASTER 4

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

LOGGING LOCAL (

PARTITION P_DATE_0_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5

Page 322: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 314

STORAGE (BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 0_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 0_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 0_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_1_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 1_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 1_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 1_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_2_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 2_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 2_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 2_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_3_0 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 3_0_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 3_0_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 3_0_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_4_0 LOGGING

Page 323: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 315

NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P DATE 4 0 SP 1_ 101 TABLESPACE TEST _DATA,SUBPARTITION P_DATE_4_0 SP 1_0_2 TABLESPACE TEST _DATA,SUBPARTITION P_DATE_4_0 SP 1_ 3_01 TABLESPACE TEST _DATA

PARTITION P DATE 5 0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 5 0 SP 1_ 1_01 TABLESPACE TEST _DATA,SUBPARTITION P DATE 5 0 SP 1_ 2_01 TABLESPACE TEST _DATA,SUBPARTITION P_DATE_5_0 SP 1_0_3 TABLESPACE TEST _DATA

PARTITION P DATE 6 0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 6 0 SP 1_ 1_01 TABLESPACE TEST _DATA,SUBPARTITION P DATE 6 0 SP 1_ 2_01 TABLESPACE TEST _DATA,SUBPARTITION P_DATE_6_0 SP 1_ 3_01 TABLESPACE TEST _DATA

PARTITION P_DATE_7_0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 7 0 SP 1_ 1_01 TABLESPACE TEST _DATA,

Page 324: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 316

SUBPARTITION P DATE 7 0 S P 1 0 2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_7_0_SP_1

23__00__ TABLESPACE TEST_DATA ),PARTITION P DATE 8 0

LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 8 0 S P 1 1 o _ l-> TABLESPACE TEST DATA,SUBPARTITION P DATE 8 0 S P 1 1 o _ TABLESPACE TEST DATA,SUBPARTITION P DATE 8 0 S P 1 3_0_ TABLESPACE TEST_DATA ),

PARTITION P DATE 9 0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 9 0 S P 1 _0_1 TABLESPACE TEST DATA,SUBPARTITION P DATE 9 0 S P 1 _0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_9_0_SP_1 3_0_ TABLESPACE TEST_DATA ),

PARTITION P DATE 10 0LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P DATE 10 0 SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P DATE 10 0 SP 2_0_1 TABLESPACE TEST DATA,SUBPARTITION P DATE 10 0 SP 1_0_3 TABLESPACE TEST DATA )

PARTITION P DATE 11 0LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER POOL DEFAULT

Page 325: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 317

FLASH_CACHECELL_FLASH_CACHE)

( SUBPARTITION P_DATE_11_0_SP_ SUBPARTITION P_DATE_11_0_SP_ SUBPARTITION P_DATE_11_0_SP_

PARTITION P_DATE_12_0 LOGGING

DEFAULTDEFAULT

1_0_1 1_0_2 1 0 3

TABLESPACE TEST_DATA, TABLESPACE TEST_DATA, TABLESPACE TEST DATA

NOCOMPRESSPCTFREEINITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DAT SUBPARTITION P_DAT SUBPARTITION P_DAT

PARTITION P_DATE_1_1 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

i 12 0_SP 1_0_1 TABLESPACE TEST DATA,i 12 0_SP 1_0_2 TABLESPACE TEST DATA,; 12 0_SP 1_0_3 TABLESPACE TEST DATA

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_2_1 LOGGING NOCOMPRESS PCTFREE

_1_1_SP 1_0_1 TABLESPACE TEST_DATA,_1_1_SP 1_0_2 TABLESPACE TEST_DATA,_1_1_SP 1_0_3 TABLESPACE TEST_DATA ),

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_3_1 LOGGING NOCOMPRESS PCTFREE 10

i 2 1_SP 1_0_1 TABLESPACE TEST_DATA,; 2 1_SP 1_0_2 TABLESPACE TEST_DATA,; 2 1_SP 1_0_3 TABLESPACE TEST_DATA ),

Page 326: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 318

INITRANSMAXTRANSSTORAGE

2255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DAT SUBPARTITION P_DAT SUBPARTITION P_DAT

PARTITION P_DATE_4_1 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

_3_1_SP 1_0_1 TABLESPACE TEST_DATA,_3_1_SP 1_0_2 TABLESPACE TEST_DATA,_3_1_SP 1_0_3 TABLESPACE TEST_DATA

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_5_1 LOGGING NOCOMPRESS PCTFREE

_4_1_SP 1_0_1 TABLESPACE TEST_DATA,_4_1_SP 1_0_2 TABLESPACE TEST_DATA,_4_1_SP 1_0_3 TABLESPACE TEST_DATA

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_6_1 LOGGING NOCOMPRESS PCTFREE

i 5 1_SP 1_0_1 TABLESPACE TEST_DATA,i 5 1_SP 1_0_2 TABLESPACE TEST_DATA,i 5 1_SP 1_0_3 TABLESPACE TEST_DATA

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

SUBPARTITION P_DATE 6_1_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 6_1_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 6_1_SP 1_0_3 TABLESPACE TEST_DATA

Page 327: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 319

PARTITION P_DATE_7 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DAT SUBPARTITION P_DAT SUBPARTITION P_DAT

PARTITION P_DATE_8_1 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

i 7 1_SP 1_0_1 TABLESPACE TEST; 7 1_SP 1_0_2 TABLESPACE TESTi 7 1_SP 1_0_3 TABLESPACE TEST

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_9_1 LOGGING NOCOMPRESS PCTFREE

_8_1_SP 1_0_1 TABLESPACE TEST_8_1_SP 1_0_2 TABLESPACE TEST_8_1_SP 1_0_3 TABLESPACE TEST

INITRANSMAXTRANSSTORAGE

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

)( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_10_1 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

_9_1_SP 1_0_1 TABLESPACE TEST_9_1_SP 1_0_2 TABLESPACE TEST_9_1_SP 1_0_3 TABLESPACE TEST

102255(BUFFER_POOL FLASH_CACHE CELL FLASH CACHE

DEFAULTDEFAULTDEFAULT

DATA, DATA, DATA ),

DATA, DATA, DATA ),

DATA, DATA, DATA ),

Page 328: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 320

)( SUBPARTITION P_DATE

SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_11_1 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

; 10 1_SP 1_0_1 TABLESPACE TEST DATA,i 10 1_SP 1_0_2 TABLESPACE TEST DATA,; 10 1_SP 1_0_3 TABLESPACE TEST DATA

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DA SUBPARTITION P_DA SUBPARTITION P_DA

PARTITION P_DATE_12 LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

i 11 1_SP 1_0_1 TABLESPACE TEST DATA,; 11 1_SP 1_0_2 TABLESPACE TEST DATA,; 11 1_SP 1_0_3 TABLESPACE TEST DATA

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P SUBPARTITION P SUBPARTITION P

PARTITION P_DATE LOGGING NOCOMPRESS PCTFREE INITRANS MAXTRANS STORAGE

i 12 1_SP 1_0_1 TABLESPACE TEST DATA,i 12 1_SP 1_0_2 TABLESPACE TEST DATA,; 12 1_SP 1_0_3 TABLESPACE TEST DATA

1_2

102255(BUFFER_POOLFLASH_CACHECELL_FLASH_CACHE)

DEFAULTDEFAULTDEFAULT

( SUBPARTITION P_DATE SUBPARTITION P_DATE SUBPARTITION P_DATE

PARTITION P_DATE_2_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5

_1_2_SP 1_0_1 TABLESPACE TEST_DATA,_1_2_SP 1_0_2 TABLESPACE TEST_DATA,_1_2_SP 1_0_3 TABLESPACE TEST_DATA ),

Page 329: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 321

STORAGE (BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 2_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 2_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 2_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_3_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 3_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 3_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 3_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_4_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 4_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 4_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 4_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_5_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE 5_2_SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 5_2_SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE 5_2_SP 1_0_3 TABLESPACE TEST_DATA

PARTITION P_DATE_6_2 LOGGING

Page 330: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 322

NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P DATE 6 2 SP 1_ 101 TABLESPACE TEST _DATA,SUBPARTITION P_DATE_6_2 SP 1_0_2 TABLESPACE TEST _DATA,SUBPARTITION P_DATE_6_2 SP 1_ 3_01 TABLESPACE TEST _DATA

PARTITION P DATE 7 2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 7 2 SP 1_ 1_01 TABLESPACE TEST _DATA,SUBPARTITION P DATE 7 2 SP 1_ 2_01 TABLESPACE TEST _DATA,SUBPARTITION P_DATE_7_2 SP 1_0_3 TABLESPACE TEST _DATA

PARTITION P DATE 8 2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 8 2 SP 1_ 1_01 TABLESPACE TEST _DATA,SUBPARTITION P DATE 8 2 SP 1_ 2_01 TABLESPACE TEST _DATA,SUBPARTITION P DATE 8 2 SP 1_ 3_01 TABLESPACE TEST _DATA

PARTITION P DATE 9 2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL FLASH CACHE

DEFAULTDEFAULT

CELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 9 2 SP 1_ 1_01 TABLESPACE TEST _DATA,

Page 331: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 323

SUBPARTITION P_DATE_9_2_SP_1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_2_SP_1_0_3 TABLESPACE TEST_DATA ),

PARTITION P_DATE_10_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_10 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P_DATE_10 2_SP 1_0_3 TABLESPACE TEST DATA

PARTITION P_DATE_11_2 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER_POOL DEFAULTFLASH_CACHE DEFAULTCELL_FLASH_CACHE DEFAULT)

( SUBPARTITION P DATE 11 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P DATE 11 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P DATE 11 2_SP 0_1 _3 TABLESPACE TEST DATA

PARTITION P DATE 12 2LOGGINGNOCOMPRESSPCTFREE 10INITRANS 2MAXTRANS 255STORAGE (

BUFFER POOL DEFAULTFLASH_CACHE DEFAULTCELL FLASH CACHE DEFAULT)

( SUBPARTITION P DATE 12 2_SP 1_0_1 TABLESPACE TEST DATA,SUBPARTITION P DATE 12 2_SP 1_0_2 TABLESPACE TEST DATA,SUBPARTITION P DATE 12 2_SP 0_1 _3 TABLESPACE TEST DATA

PARTITION P_DATE_9_9 LOGGING NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 25 5 STORAGE (

BUFFER POOL DEFAULT

Page 332: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 324

FLASH_CACHE DEFAULTCELL FLASH_CACHE DEFAULT)

SUBPARTITION P_DATE_9_9 SP 1_0_1 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_9 SP 1_0_2 TABLESPACE TEST_DATA,SUBPARTITION P_DATE_9_9 SP 1_0_3 TABLESPACE TEST_DATA

)NOPARALLEL;

ALTER TABLE TEST_USER.MASTER_4 ADD ( CONSTRAINT MASTER_4_PK PRIMARY KEY (PK_VALUE)USING INDEX TEST_USER.MASTER_4_PK ENABLE VALIDATE);

Page 333: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 325

#!/usr/bin/perl

$master 1 row number =$master 1 level 2 row number = $master 1 level 3 row number =

$master 2 row number =$master 2 level 2 row number = $master 2 level 3 row number =

$master 3 row number =$master 3 level 2 row number = $master_3_level_3_row_number =

$master 4 row number =

@names = ();

# SUB ROUTINES #

sub process names{

open (NAMES, "</export/home/oracle/perl scripts/names.txt");@temp names = <NAMES>;foreach $name (@temp names){

chomp($name); push (@names, $name);

}close NAMES;

}

sub row_number {

my $table name = shift;my $return value;

chomp($table name);if ($table name eq ’MASTER 1’){

$return value = $master 1 row number;}elsif ($table name eq ’MASTER 2’){

$return value = $master 2 row number;}elsif ($table name eq ’MASTER 3’){

$return value = $master 3 row number;}elsif ($table name eq ’MASTER 1 L2 TAB1’ ||

Appendix 2

1000000;100000;100000;

1000000;100000;100000;

1000000;100000;100000;

30000000;

Page 334: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 326

$re

$table_name eq ’MASTER_1_L2_TAB2’ || $table_name eq ’MASTER_1_L2_TAB3’){

turn value = $master 1 level 2 row number;}elsif ($table name eq ’MASTER 1 L3 TAB1’ ||

$table_name eq ’MASTER_1_L3_TAB2’ || name eq ’MASTER_1_L3_TAB3’){ turn value = $master 1 level 3 row number;

$table$re

}elsif [$table name eq

$table name eq $table name eq

'MASTER_2_L2_TAB1' 'MASTER_2_L2_TAB2' 'MASTER 2 L2 TAB3’

||||{

$return value = $master 2 level 2 row number;}elsif |$table name eq

$table name eq $table name eq

'MASTER_2_L3_TAB1’ 'MASTER_2_L3_TAB2’ 'MASTER 2 L3 TAB3’

||||{

$return value = $master 2 level 3 row number;}elsif ($table name eq ’MASTER 3 L2 TAB1’ ||

$table_name eq ’MASTER_3_L2_TAB2’ || $table_name eq ’MASTER_3_L2_TAB3’){

$return value = $master 3 level 2 row number;}elsif ($table name eq ’MASTER 3 L3 TAB1’ ||

$table_name eq ’MASTER_3_L3_TAB2’ || $table_name eq ’MASTER_3_L3_TAB3’){

$return value = $master 3 level 3 row number;}elsif

$re}

($table name eq ’MASTER 4’){ turn value = $master 4 row number;

return $return value;

}

sub sql {

my $execute file = shift;

my $output = 'sqlplus -S test user\/test\@SANDBOX \@$execute file'; return $output;

}

sub randomizer {

my $type = shift; my $return value; my $range;

Page 335: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 327

my $temp choice;

if ($type eq ’NUMBER’){

#--will return numbers 0 .. 999999998 $range = 999999999;$return value = int(rand($range));

}elsif ($type eq ’CHAR’){

#--will choose between numbers and letters here $range = 3;$temp choice = int(rand($range));

if ($temp choice == 0){#--Numbers;$range = 10;$return value = chr(int(rand($range)) + 48);

}elsif ($temp choice == 1){

#--Upper Case Letters $range = 25;

$return value = chr(int(rand($range)) + 65);}else{

#--Lower Case Letters $range = 25;

$return value = chr(int(rand($range)) + 97);}

}elsif ($type eq ’DATE’){

#--first the year 1970--2013 = 43 year span $range = 43;my $year = int(rand($range)) + 1970;

#--month $range = 12;my $month = int(rand($range)) + 1;

#--day -- just avoid leap day....$range = 28;my $day = int(rand($range)) + 1;

$return value = ’to date(\’’ . "$year-$month-$day" . ’\’,\’YYYY- MM-DD\’)’;

}elsif ($type eq ’MASTER_4_DATE’){

Page 336: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 328

#--first the year 2000-2002 = 3 year span total: 2000, 2001,2002

$range = 3;my $year = int(rand($range)) + 2000;

#--month $range = 12;my $month = int(rand($range)) + 1;

#--day -- just avoid leap day...$range = 28;my $day = int(rand($range)) + 1;

$return value = ’to date(\’’ . "$year-$month-$day" . ’\’,\’YYYY- MM-DD\’)’;}

return $return value;}

sub build string {

#— Note. data_type will be in (’NUMBER’,’DATE’,’VARCHAR2’, ’CHAR’, ’CLOB’)

my $data type = shift; my $data_length = shift; my $column id = shift; my $table name = shift; my $return value;

if ($data type =~ /NUMBER/){

$return value = randomizer(’NUMBER’);

}

elsif ($data type =~ /DATE/){

if ($table name eq ’MASTER 4’){

$return value = randomizer(’MASTER 4 DATE’);}else{

$return value = randomizer(’DATE’);}

}

elsif ($data type =~ /VARCHAR2/){

Page 337: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 329

if ($table name eq ’MASTER 4’){

#--will find a number between 0 and 499 inclusive, and pull from the names array the first 10 characters

$return value = substr($names[int(rand(5 00))], 0, 10);}else{

for (my $i = 0; $i < $data length; $i++){

$return value .= randomizer(’CHAR’);

}}$return value = "’" . $return value . "’";

}

elsif ($data type =~ /CHAR/){

$return value = "’" . randomizer (’CHAR’) . "’";

}

elsif ($data type =~ /CLOB/){

for (my $i = 0; $i < int(rand(1000)) + 100; $i++){ #-- Randomizing the length

$return value .= randomizer(’CHAR’);}$return value = "’" . $return value . "’";

}

return $return value;

}

sub find parent row number{

my $table name = shift; my $return value = "";

if ($table_name eq ’MASTER_1_L2_TAB1’ ||$table_name eq ’MASTER_1_L2_TAB2’ ||$table_name eq ’MASTER_1_L2_TAB3’){$return value = $master 1 row number - 1;

}if ($table_name eq ’MASTER_2_L2_TAB1’ ||

$table_name eq ’MASTER_2_L2_TAB2’ ||$table_name eq ’MASTER_2_L2_TAB3’){

Page 338: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 330

$return value = $master 2 row number - 1;}if ($table_name eq ’MASTER_3_L2_TAB1’ ||

$table_name eq ’MASTER_3_L2_TAB2’ ||$table_name eq ’MASTER_3_L2_TAB3’){$return value = $master 3 row number - 1;

}if ($table name eq ’MASTER 1 L3 TAB1’ ||

$table_name eq ’MASTER_1_L3_TAB2’ ||$table_name eq ’MASTER_1_L3_TAB3’){$return value = $master 1 level 2 row number - 1;}

if ($table_name eq ’MASTER_2_L3_TAB1’ ||$table_name eq ’MASTER_2_L3_TAB2’ ||$table_name eq ’MASTER_2_L3_TAB3’){$return value = $master 2 level 2 row number - 1;}

if ($table name eq ’MASTER 3 L3 TAB1’ ||$table_name eq ’MASTER_3_L3_TAB2’ ||$table_name eq ’MASTER_3_L3_TAB3’){$return value = $master 3 level 2 row number - 1;}

return $return value;}sub load table {

my $table name = shift;my $table_load_number = 0;my $total_load_number = 0;my $row number = 0;

my $sql def file ="\/export\/home\/oracle\/perl scripts\/sql def file.sql";

my $output file ="\/export\/home\/oracle\/perl scripts\/$table name.sql";

open (EXE FILE, ">$sql def file");print EXE FILE qq[set heading off

set pagesize 0 set feedback off select table name ||’~’||

column name ||’~’|| data type ||’~’||data Length ||’~’|| column Id

from user tab columns where table name = ’$table name’ order by column Id asc

/exit/];

Page 339: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 331

close EXE_FILE;

my @lines = split (/\n/, sql($sql def file));

$row number = row number($table name); print "$table name $row number\n";

open (OP, ">$output file"); print OP ""; close OP;

#--Tank up some rows....for (my $i = 1; $i <= $row number; $i++){

$table load number++;$total load number++;

my %line value = (); my $insert string = "";

foreach $line (@lines){ #--this holdes the table definition, so we tank up each column one at time.

my ($def table name, $column name, $data type, $data length, $column id) = split(/~/, $line);

if ($column name eq ’PK VALUE’ && $data type eq ’NUMBER’){

$line value{$column name} = $i;

}}elsif($column name eq ’PK VALUE2’ && $data type eq

’NUMBER’){

$line value{$column name} = $i;

}elsif ($column name eq ’PARENT LINK’ && $data type eq

’NUMBER’){

$parent row number = find parent row number($table name); $line value{$column name} = int(rand($parent row number))

+ 1;

}elsif ($column name eq ’MASTER 1 LINK’){

$row number = row number("MASTER 1");;$line value{$column name} = int(rand($row number)) + 1;

Page 340: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 332

}elsif ($column name eq ’MASTER 2 LINK’){

$row number = row number("MASTER 2");;$line value{$column name} = int(rand($row number)) + 1;

}elsif ($column name eq ’MASTER 3 LINK’){

$row number = row number("MASTER 3");;$line value{$column name} = int(rand($row number)) + 1;

}else{

$line value{$column name} = build string($data type, $data length, $column id, $table name);

}}

$insert string = "insert into $table name (\n";

foreach $key (sort keys %line value){

$insert string .= "$key,\n";

}

$insert string .= ") values (\n";

foreach $key (sort keys %line value){

$insert string .= "$line value{$key},\n";}

$insert string .= ");";$insert string =~ s/,\n\)/\n\)/g;

open (OP, ">>$output file"); print OP "$insert string\n"; close OP;

#-- Going to load table into database in batches of 500

if ($table load number >= 500){

open (OP, ">>$output file"); print OP "commit\n\/\n"; print OP "exit\n\/\n"; close OP;

each,

Page 341: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 333

$temp output = sql($output file);

#--reinitialize the output file open (OP, ">$output file"); print OP ""; close OP;$table load number = 0;print "Loaded $total load number\n";

}

}#-- Executute the final loadopen (OP, ">>$output file"); print OP "commit\n\/\n"; print OP "exit\n\/\n"; close OP;

$temp output = sql($output file);print "Total load on $table name was $total load number\n";

}

#---- MAIN SECTION to TANKUP the SYSTEM

process names();

load table( "MASTER 4");

load table( "MASTER 1");

load table ("MASTER 1 L2 TAB1"load table ("MASTER 1 L2" TAB2"load table ("MASTER 1 L2" TAB3"

load table ("MASTER 1 L3 TAB1"load table ("MASTER 1 L3" TAB2"load table ("MASTER 1 L3" TAB3"

load table( "MASTER 2");load table ("MASTER 2 L2 TAB1"load table ("MASTER 2 L2" TAB2"load table ("MASTER 2 L2" TAB3"

load table ("MASTER 2 L3 TAB1"load table ("MASTER 2 L3" TAB2"load table ("MASTER 2 L3" TAB3"

load table( "MASTER 3");

Page 342: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 334

load_table ("MASTER_3_L2_TAB1")load_table ("MASTER_3_L2_TAB2")load_table ("MASTER_3_L2_TAB3")

load_table ("MASTER_3_L3_TAB1")load_table ("MASTER_3_L3_TAB2")load table ("MASTER 3 L3 TAB3")

Page 343: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 335

Appendix 3— INDEXESMASTER_1_CHAR_1_IDXMASTER_1_CHAR_2_IDXMASTER_1_CHAR_3_IDXMASTER_1_DATE_1_IDXMASTER_1_DATE_2_IDXMASTER_1_DATE_3_IDXMASTER_1_DATE_4_IDXMASTER_1_DATE_5_IDXMASTER_1_VALUE_1_IDXMASTER_1_VALUE_2_IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for select count(*) from master_1where date 1 in (select date 1 from master 1 where date 1 between to date('01-JAN-197 0','DD-MON-YYYY') and sysdate)

and date 2 in (select date 2 from master 1 where date 2 between to date('01-JAN-1971','DD-MON-YYYY') and sysdate)

and date 3 in (select date 3 from master 1 where date 3 between to date('01-JAN-1972','DD-MON-YYYY') and sysdate)

and date 4 in (select date 4 from master 1 where date 4 between to date('01-JAN-1973','DD-MON-YYYY') and sysdate)

and date 5 in (select date 5 from master 1 where date 5 between to date('01-JAN-197 4','DD-MON-YYYY') and sysdate)

and char 1 in (select char 1 from master 1 where char 1 between 'A' and 'Z')

and char 2 in (select char 2 from master 1 where char 2 between 'A' and 'Z')

and char 3 in (select char 3 from master 1 where char 3 between 'A' and 'Z')

and (value 1 like 'a%' or value 1 like 'b%') and (value 2 like 'A%' or value 2 like 'B%')

/select cost from plan table where statement_id = 'A' and parent_id IS NULL /exit/

--TIME_COST set timing onselect /*+ MASTER 1 QUERY*/

Page 344: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 336

count(*) from master_1where date_1 in (select date_1 from master 1 where date_1 betweento date('01 -JAN- 1970',' DD-MON-YYYY' and sysdate)

and date_2 in (select date_2 from master 1 where date_2 betweento date('01 -JAN- 1971',' DD-MON-YYYY' and sysdate)

and date_3 in (select date_3 from master 1 where date_3 betweento date('01 -JAN- 1972',' DD-MON-YYYY' and sysdate)

and date_4 in (select date_4 from master 1 where date_4 betweento date('01 -JAN- 1973',' DD-MON-YYYY' and sysdate)

and date_5 in (select date_5 from master 1 where date_5 betweento date('01 -JAN- 1974',' DD-MON-YYYY' and sysdate)

and char 1 in (select char 1 from master 1 where char_1 between 'A'and 'Z')

and char 2 in (select char 2 from master 1 where char_2 between 'A'and 'Z')

and char 3 in (select char 3 from master 1 where char_3 between 'A'and 'Z')

and (value 1 like 'a%' or value 1 like 'b%') and (value 2 like 'A%' or value 2 like 'B%')

/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%MASTER 1 QUERY%' and optimizer cost > 1 order by last load time desc /exit/

--INDEXESMASTER_2_CHAR_1_IDXMASTER_2_CHAR_2_IDXMASTER_2_CHAR_3_IDXMASTER_2_DATE_1_IDXMASTER_2_DATE_2_IDXMASTER_2_VALUE_1_IDXMASTER_2_VALUE_2_IDXMASTER_2_VALUE_3_IDXMASTER_2_VALUE_4_IDXMASTER_2_VALUE_5_IDX

— GET_COSTdelete from plan_table

Page 345: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 337

/explain planset statement id = 'A' for select count(*) from master 2where value 1 in (select value 1 from master 2 where value 1 like '%A%') _and value 2 in (select value 2 from master 2 where value 2 like

and value 3 in (select value 3 from master 2 where value 3 like *C%')and like

likelikelikelikelike

A%

C% ' D%' E%' 0%

orororor

or value 5 like Z%')

' b% or value 5 like '0%

or char 2 between or char 3 between

A'A'

andand

Z'Z'

(value 4 value 4 value 4 value 4 value 4

and (value 5 value 5 like '7%' or value 5 like

and (char 1 between 'a' and 'z' and (char 2 between 'a' and 'z' and (char 3 between 'a' and 'z'

char 3 between '0' and '9')and date 1 in (select date 1 from master 2 where date 1 between

to date('01-JAN-197 0','DD-MON-YYYY') and sysdate)and date 2 in (select date 2 from master 2 where date 2 between

to date('01-JAN-1971','DD-M0N-YYYY') and sysdate)/select cost from plan table where statement id = 'A' and parent id IS NULL /exit/

or

— TIME_C0ST set timing onselect /*+ MASTER_2_QUERY*/count(*)from master 2where value 1 in (select value 1 from master 2 where value 1 like '%A%') _and value 2 in (select value 2 from master 2 where value 2 like

and value 3 in (select value 3 from master 2 where value 3 like *C%')and (value 4 like 'A%' or

value 4 like 'B%' orvalue 4 like 'C%' orvalue 4 like 'D%' orvalue 4 like 'E%' )

or

Page 346: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 338

and (value 5 like '0%' or value 5 like 'b%' or value 5 like '0%' value 5 like '7%' or value 5 like 'Z%')

and (char 1 between 'a' and 'z')and (char 2 between 'a' and 'z' or char 2 between 'A' and 'Z') and (char 3 between 'a' and 'z' or char 3 between 'A' and 'Z' or

char_3 between '0' and '9')and date 1 in (select date 1 from master 2 where date 1 between

to date('01-JAN-197 0','DD-M0N-YYYY') and sysdate)and date 2 in (select date 2 from master 2 where date 2 between

to date('01-JAN-1971','DD-M0N-YYYY') and sysdate)/exit/

— CR0SS_CHECK_C0ST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%MASTER 2 QUERY%' and optimizer cost > 1 order by last load time desc /exit/

— INDEXESMASTER_3_CHAR_1_IDXMASTER_3_CHAR_2_IDXMASTER_3_CHAR_3_IDXMASTER_3_NUM_1_IDXMASTER_3_NUM_2_IDXMASTER_3_NUM_3_IDXMASTER_3_NUM_4_IDXMASTER_3_NUM_5_IDXMASTER_3_VALUE_1_IDXMASTER_3_VALUE_2_IDX

— GET_C0STdelete from plan table /explain planset statement id = 'A' for select count(*) from master 3where num 1 between 1 and 987 68000

and num 2 between 28 and 291381400 and num 3 >= (select min(num 3) from master 3) and num 4 <= (select avg(num 4) from master 3) and num 5 <= (select max(num 5) from master 3)

or

Page 347: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 339

and (char 1 between 'a' and 'z')and (char 2 between 'a' and 'z' or char 2 between 'A' and 'Z') and (char 3 between 'a' and 'z' or char 3 between 'A' and 'Z' or

char_3 between '0' and '9')and value 1 in (select value 1 from master 3 where value 1 like

'%A%' or value_1 like '%B%') - - -and value 2 in (select value 2 from master 3 where value 2 like

'%C%')/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_C0ST set timing onselect /*+ MASTER_3_QUERY*/count(*)from master 3where num 1 between 1 and 987 68000

and num 2 between 28 and 291381400 and num 3 >= (select min(num 3) from master 3) and num 4 <= (select avg(num 4) from master 3) and num 5 <= (select max(num 5) from master 3) and (char 1 between 'a' and 'z')and (char 2 between 'a' and 'z' or char 2 between 'A' and 'Z') and (char 3 between 'a' and 'z' or char 3 between 'A' and 'Z' or

char_3 between '0' and '9')and value 1 in (select value 1 from master 3 where value 1 like

'%A%' or value_1 like '%B%') - - -and value 2 in (select value 2 from master 3 where value 2 like

'%C%')/exit/

--INDEXESMASTER_1_DATE_1_IDXMASTER_1_DATE_2_IDXMASTER_1_DATE_3_IDXMASTER_1_DATE_4_IDXM1_L2_T1 DATE_1_IDXM1_L2_T2 DATE_1_IDXM1_L2_T3 DATE_1_IDXM1_L2_T1_VALUE_1_IDXM1_L2_T2_VALUE_1_IDXM1_L2_T3_VALUE_1_IDX

Page 348: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 340

— GET_COSTdelete from plan table /explain planset statement id = 'A' for select count(*)from master 1 a join master 1 l2 tabl b on (b.parent link = a.pk value)

join master 1 l2 tab2 c on (c.parent link =a.pk value)

join master 1 l2 tab3 d on (d.parent link =a.pk value)where A.DATE 1 in (select date 1 from master 1 where date 1 between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)

and A.DATE 2 in (select date 2 from master 1 where date 2 between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)

and A.DATE 3 in (select date 3 from master 1 where date 3 between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)

and A.DATE 4 in (select date 4 from master 1 where date 4 between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)

and B.DATE 1 in (select date 1 from master 1 l2 tab1 where date 1 between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)

and C.DATE 1 in (select date 1 from master 1 l2 tab2 where date 1 between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)

and D.DATE 1 in (select date 1 from master 1 l2 tab3 where date 1 between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)

and (B..value 1 like ' %A% or B.value 1 like T O . D S . IoBo or B.value 1 likea n a ioCo or B.value 1 like '%D o . I \ o )and (C..value 1 like 'o. 1 o. 1o1o or C.value 1 like % % or C.value 1 like

%3% or C.value 1 like 4% o . I \ o )and (D..value 1 like ' %w% or D.value 1 like %x% or D.value 1 like

%y% or D.value 1 like I O. „oZ o. I \ o )/select cost from plan table where statement id = 'A' and parent id IS NULL /exit/

--TIME_COST set timing onselect /*+ MASTER_1_JOIN_1*/ count(*)from master 1 a join master 1 l2 tab1 b on (b.parent link = a.pk value)

join master 1 l2 tab2 c on (c.parent link =a.pk value)

join master 1 l2 tab3 d on (d.parent link =a.pk value)

Page 349: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 341

where A.DATE 1 in (select date 1 from master 1 where date 1 between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)

and A.DATE 2 in (select date 2 from master 1 where date 2 between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)

and A.DATE 3 in (select date 3 from master 1 where date 3 between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)

and A.DATE 4 in (select date 4 from master 1 where date 4 between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)

and B.DATE 1 in (select date 1 from master 1 l2 tab1 where date 1 between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)

and C.DATE 1 in (select date 1 from master 1 l2 tab2 where date 1 between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)

and D.DATE 1 in (select date 1 from master 1 l2 tab3 where date 1between to date(' 01-JAN-1984','fDD-MON-YYYY') and sysdate)

and (B.value 1 like ' %A% or B.value 1 like T O . D S .oBo ' or B.value 1 liket a n a ioCo or B.value 1 like '%D o. I \ o )and (C.value 1 like 'o. 1 fi- To1o or C.value 1 like %2% ' or C.value 1 like

%3% or C.value 1 like 4% o. I \ o )and (D.value 1 like ' %w% or D.value 1 like %x% ' or D.value 1 like

%y% or D.value 1 like I O. „oZ o . I \ o )/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%MASTER 1 JOIN 1%’ and optimizer cost > 1 order by last load time desc /exit/

— INDEXESMASTER_1_CHAR_1_IDX MASTER_1_CHAR_2_IDX MASTER_1_CHAR_3_IDX MASTER 1 DATE 1 IDXM1_L2 T1 DATE 1_IDXM1_L3 T1 DATE 1_IDXM1_L2 T2 DATE 1_IDXM1_L3 T2 DATE 1_IDXM1_L2 T3 CHAR_1_IDXM1_L3_T3 CHAR_1_IDX

— GET_COSTdelete from plan table

Page 350: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 342

/explain planset statement id = 'A' for select count(*)from master 1 a join master 1 l2 tab1 b on (b.parent link =a.pk value)

join master 1 l3 tab1 c on (c.parent link =b.pk value)

a.pk value)

d.pk value)

a.pk value)

join master 1 l2 tab2 d on (d.parent link =

join master 1 l3 tab2 e on (e.parent link =

join master 1 l2 tab3 f on (f.parent link =

join master 1 l3 tab3 g on (g.parent link =f.pk value)where a.char 1 between 'A' and 'Z'

and a.char 2 between '0' and '9'and (a.char 3 between 'a' and 'z' or a.char 3 between '1' and '9') and A.DATE 1 in (select date 1 from master 1 where date 1 between

to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)and B.DATE 1 in (select date 1 from master 1 l2 tab1 where date 1

between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)and C.DATE 1 in (select date 1 from master 1 l3 tab1 where date 1

between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)and d.DATE 1 in (select date 1 from master 1 l2 tab2 where date 1

between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate)and e.DATE 1 in (select date 1 from master 1 l3 tab2 where date 1

between to date('01-JAN-198 4','DD-MON-YYYY') and sysdate) and f.char 1 in ('6','D','O','T')and (g.char 1 between 'A' and 'Z' or g.char 1 in

('1','2','3',t 4','5','6'))/select cost from plan table where statement id = 'A' and parent id IS NULL /exit/

--TIME_COST set timing onselect /*+ MASTER_1_JOIN_2*/ count(*)from master 1 a join master 1 l2 tab1 b on (b.parent link =a.pk value)

join master 1 l3 tab1 c on (c.parent link =b.pk value)

join master 1 l2 tab2 d on (d.parent link =a.pk value)

Page 351: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 343

join master 1 13 tab2 e on (e.parent link =d.pk value)

join master 1 12 tab3 f on (f.parent link =a.pk value)

join master 1 l3 tab3 g on (g.parent link =f.pk value)where a.char 1 between 'A' and 'Z'

and a.char 2 between '0' and '9'and (a.char 3 between 'a' and 'z' or a.char 3 between '1' and '9') and A.DATE 1 in (select date 1 from master 1 where date 1 between

to date ( '01-JAN-1984','DD-MON-YYYY') and sysdate)and B. DATE_1 in (select date_1 from master 1 l2 tab1 where date_1

between to date('01 -JAN-1984', 'DD-MON--YYYY') and sysdate)and C. DATE_1 in (select date_1 from master 1 l3 tab1 where date_1

between to date('01 -JAN-1984','DD-MON--YYYY') and sysdate)and d.DATE_1 in (select date_1 from master 1 l2 tab2 where date_1

between to date('01 -JAN-1984', 'DD-MON--YYYY') and sysdate)and e.DATE_1 in (select date_1 from master 1 l3 tab2 where date_1

between to date('01 -JAN-1984', 'DD-MON--YYYY') and sysdate)and f. char_1 in ('6','D ','O' ,'T')and (g.char 1 between 'A' and 'Z' or g.char 1 in

('1','2','3',T4','5','6'))/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%MASTER 1 JOIN 2%' and optimizer cost > 1 order by last load time desc /exit/

-INDEXESMASTER_1_CHAR_1_IDX MASTER_1_CHAR_2_IDX MASTER_1_CHAR_3_IDX MASTER 1 DATE 1 IDXM1_L2 T1 DATE_1 IDXM1_L3 T1 DATE_1 IDXM1_L2 T2 DATE_1 IDXM1_L3 T2 DATE_1 IDXM1_L2 T3 CHAR_1 IDXM1_L3_T3 CHAR_1 IDXM1_L3_T3 VALUE 1_IDX

Page 352: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 344

— GET_COSTdelete from plan table /explain planset statement id = 'A' for SELECT SUM (counter)

FROM (SELECT COUNT (*) counter FROM master 1 a

JOIN master 1 l2 tab1 bON (b.parent link = a.pk value)

JOIN master_1_l3_tab1 cON (c.parent link = b.pk value)

JOIN master 1 l2 tab2 dON (d.parent link = a.pk value)

JOIN master_1_l3_tab2 eON (e.parent link = d.pk value)

JOIN master 1 l2 tab3 fON (f.parent link = a.pk value)

JOIN master_1_l3_tab3 gON (g.parent link = f.pk value)

WHERE g.char_1 IN (SELECT char_1FROM master 1 l3 tab3

WHERE char_1 BETWEEN 'A'AND G.value_1 IN

(SELECT value_1FROM master_1_l3_tab3

WHERE value_1 LIKE '%A%'OR value_1 LIKE '%B%'OR value 1 LIKE '%C%')

UNIONSELECT COUNT (

FROM mastercounter

1 a

WHERE

JOIN master 1 l2 tab1 bON (b.parent link = a.pk value)

JOIN master_1_l3_tab1 cON (c.parent link = b.pk value)

JOIN master 1 l2 tab2 dON (d.parent link = a.pk value)

JOIN master_1_l3_tab2 eON (e.parent link = d.pk value)

JOIN master 1 l2 tab3 fON (f.parent link = a.pk value)

JOIN master_1_l3_tab3 gON (g.parent link = f.pk value)a.char_1 BETWEEN 'A' AND 'Z'

AND a.char_2 BETWEEN '0' AND '9' AND ( a.char_3 BETWEEN 'a' AND '

OR a.char_3 BETWEEN '1' AND ' AND A.DATE_1 IN

(SELECT date_1 FROM master 1

' AND 'Z')

Page 353: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 345

WHERE date_1 BETWEEN TO_DATE ('01-JAN-198 4','DD-MON-YYYY')

AND SYSDATE)AND B.DATE_1 IN

(SELECT date_1FROM master 1 l2 tab1

WHERE date_1 BETWEEN TO_DATE ('01-JAN-198 4','DD-MON-YYYY')

AND SYSDATE)AND C.DATE_1 IN

(SELECT date_1FROM master_1_l3_tab1

WHERE date_1 BETWEEN TO_DATE ('01-JAN-198 4','DD-MON-YYYY')

AND SYSDATE)AND d.DATE_1 IN

(SELECT date_1FROM master 1 l2 tab2

WHERE date_1 BETWEEN TO_DATE ('01-JAN-198 4','DD-MON-YYYY')

AND SYSDATE)AND e.DATE_1 IN

(SELECT date_1FROM master_1_l3_tab2

WHERE date_1 BETWEEN TO_DATE ('01-JAN-198 4','DD-MON-YYYY')

AND SYSDATE)AND f.char_1 IN ('6', 'D', 'O', 'T')AND ( g.char_1 BETWEEN 'A' AND 'Z'

OR g.char_1 IN ('1', '2', '3', '4', '5', '6')))/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_COST set timing onselect /*+ MASTER_1_JOIN_3*/SUM (counter)

FROM (SELECT COUNT (*) counter FROM master 1 a

JOIN master 1 l2 tab1 bON (b.parent link = a.pk value)

JOIN master_1_l3_tab1 cON (c.parent link = b.pk value)

JOIN master 1 l2 tab2 dON (d.parent link = a.pk value)

JOIN master_1_l3_tab2 e

Page 354: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 346

WHERE

UNIONSELECT

FROM

WHERE

ON (e.parent link = d.pk value)JOIN master 1 l2 tab3 f

ON (f.parent link = a.pk value)JOIN master_1_l3_tab3 g

ON (g.parent link = f.pk value)g.char_1 IN (SELECT char_1

FROM master 1 l3 tab3 WHERE char_1 BETWEEN 'A' AND 'Z')

AND G.value_1 IN(SELECT value_1

FROM master_1_l3_tab3 WHERE value_1 LIKE '%A%'

OR value_1 LIKE '%B%'OR value_1 LIKE '%C%')

COUNT (*) counter master 1 aJOIN master 1 l2 tab1 b

ON (b.parent link = a.pk value)JOIN master_1_l3_tab1 c

ON (c.parent link = b.pk value)JOIN master 1 l2 tab2 d

ON (d.parent link = a.pk value)JOIN master_1_l3_tab2 e

ON (e.parent link = d.pk value)JOIN master 1 l2 tab3 f

ON (f.parent link = a.pk value)JOIN master_1_l3_tab3 g

ON (g.parent link = f.pk value)a.char_1 BETWEEN 'A' AND 'Z'

AND a.char_2 BETWEEN '0' AND '9'AND ( a.char_3 BETWEEN 'a' AND 'z'

OR a.char_3 BETWEEN '1' AND '9')AND A.DATE_1 IN

(SELECT date_1 FROM master 1

WHERE date_1 BETWEEN TO_DATE ('01-JAN-198 4','DD-MON-YYYY')

AND SYSDATE)AND B.DATE_1 IN

(SELECT date_1FROM master 1 l2 tab1

WHERE date_1 BETWEEN TO_DATE ('01-JAN-198 4','DD-MON-YYYY')

AND SYSDATE)AND C.DATE_1 IN

(SELECT date_1FROM master_1_l3_tab1

WHERE date_1_BETWEEN TO_DATE ('01-JAN-198 4','DD-MON-YYYY')

AND SYSDATE)AND d.DATE 1 IN

Page 355: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 347

(SELECT date_1FROM master 1 l2 tab2

WHERE date_1 BETWEEN TO_DATE ('01-JAN-198 4','DD-MON-YYYY')

AND SYSDATE)AND e.DATE_1 IN

(SELECT date_1FROM master_1_l3_tab2

WHERE date_1 BETWEEN TO_DATE ('01-JAN-198 4','DD-MON-YYYY')

AND SYSDATE)AND f.char_1 IN ('6', 'D', 'O', 'T')AND ( g.char_1 BETWEEN 'A' AND 'Z'

OR g.char_1 IN ('1', '2', '3', '4', '5', '6')))/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%MASTER 1 JOIN 3%' and optimizer cost > 1 order by last load time desc /exit/

— INDEXESM2_L2_T3_PK_IDXM3_L3_T3_CHAR_1_IDXM3_L3_T3_CHAR_2_IDXM1_L2_T1_PK_IDXMASTER_1_DATE_1_IDXM3_L3_T3_VALUE_1_IDXMASTER_1_PK_IDXMASTER_2_PK_IDXMASTER_3_PK_IDXM2_L2_T1_DATE_10_IDXM2_L3_T1_DATE_1_IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for select count(*)from master 1 a join master 2 b on (A.PK VALUE = B.PK VALUE)

Page 356: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS

join master 3 c on (B.PK VALUE = C.PK VALUE)

c.pk value)

p.pk value)

c.pk value)

r.pk value)

c.pk value)

join master 1 l2 tab1 d onjoin master 1 l3 tab1 e onjoin master 1 l2 tab2 f onjoin master 1 l3 tab2 g onjoin master 1 l2 tab3 h onjoin master 1 l3 tab3 i onjoin master 2 l2 tab1 j onjoin master 2 l3 tab1 k onjoin master 2 l2 tab2 l onjoin master 2 l3 tab2 m onjoin master 2 l2 tab3 n onjoin master 2 l3 tab3 o onjoin master 3 l2 tab1 p on

join master 3 l3 tab1 q on

join master 3 l2 tab2 r on

join master 3 l3 tab2 s on

join master 3 l2 tab3 t on

join master 3 l3 tab3 u on

(d.pk value (e.pk value (f.pk value (g.pk value (h.pk value (i.pk value (j.pk value (k.pk value (l.pk value (m.pk value (n.pk value (o.pk value (p.parent link

(q.parent link

(r.parent link

(s.parent link

(t.parent link

(u.parent link

a.pk value a.pk value a.pk value a.pk valuea.pk valuea.pk valueb.pk value j.pk valueb.pk value l.pk valueb.pk value n.pk value

t.pk value)where u.char 1 between 'A' and 'Z'

and (u.char 2 between 'A' and 'Z' or u.char 2 between '1' and AND a.date_1 BETWEEN TO_DATE ('01-FEB-1983', 'DD-MON-YYYY')

AND SYSDATEAND s.value 3 IN

('92E0b1CBj0','L51lHeuaJo','fQaLo5msQY','1tffVC1iy9','LMc2250887','8 0TiO4F81M','rg68IGlfEp','A7B900WG85')

and J.DATE10 between (select min(date10) sysdateand K.DATE 1 between (select max(date 1)

sysdate - 999999999 /select cost from plan table where statement id = 'A' and parent_id IS NULL /exit /

from master 2 l2 tab1) and

from master 2 l3 tab1) and

348

--TIME_COST

Page 357: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 349

set timing onselect /*+ MASTER_ALL_JOIN_1*/ count(*)from master 1 a join master 2 b on (A.PK VALUE = B.PK VALUE)

join master 3 c on (B.PK VALUE = C.PK VALUE)

c.pk value)

p.pk value)

c.pk value)

r.pk value)

c.pk value)

join master 1 l2 tab1 d onjoin master 1 l3 tab1 e onjoin master 1 l2 tab2 f onjoin master 1 l3 tab2 g onjoin master 1 l2 tab3 h onjoin master 1 l3 tab3 i onjoin master 2 l2 tab1 j onjoin master 2 l3 tab1 k onjoin master 2 l2 tab2 l onjoin master 2 l3 tab2 m onjoin master 2 l2 tab3 n onjoin master 2 l3 tab3 o onjoin master 3 l2 tab1 p on

join master 3 l3 tab1 q on

join master 3 l2 tab2 r on

join master 3 l3 tab2 s on

join master 3 l2 tab3 t on

join master 3 l3 tab3 u on

(d.pk value = a.pk value (e.pk value = a.pk value (f.pk value = a.pk value (g.pk value = a.pk value (h.pk value = a.pk value (i.pk value = a.pk value (j.pk value = b.pk value (k.pk value = j.pk value (l.pk value = b.pk value (m.pk value = l.pk value (n.pk value = b.pk value (o.pk value = n.pk value (p.parent link =

(q.parent link =

(r.parent link =

(s.parent link =

(t.parent link =

(u.parent link =t.pk value)where u.char 1 between 'A' and 'Z'

and (u.char 2 between 'A' and 'Z' or u.char 2 between andAND a.date_1 BETWEEN TO_DATE ('01-FEB-1983', 'DD-MON-YYYY')

AND SYSDATEAND s.value 3 IN

('92E0b1CBj0','L51lHeuaJo','fQaLo5msQY','1tffVC1iy9','LMc2250887','8 0TiO4F81M','rg68IGlfEp','A7B900WG85')

and J.DATE10 between (select min(date10) from master 2 l2 tab1) and sysdateand K.DATE 1 between (select max(date 1) from master 2 l3 tab1) and

sysdate - 999999999 /exit/

— CROSS_CHECK_COST set heading off

Page 358: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 350

set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql_text like '%MASTER_ALL_JOIN_1%' and optimizer cost > 1 order by last load time desc /exit/

--INDEXESM2_L2_T3_PK_IDXM1_L2_T1_PK_IDXM3_L3_T3_VALUE_1_IDXMASTER_1_PK_IDXMASTER_3_PK_IDXM2_L2_T1_DATE_10_IDXM2_L3_T1_DATE_1_IDXMASTER_1_CHAR_1_IDXMASTER_1_DATE_2_IDXMASTER_1_VALUE_1_IDXMASTER_1_VALUE_2_IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for SELECT SUM(counter)

FROM (SELECT COUNT (*) counter FROM master 1 a

JOIN master 2 bON (A.PK_VALUE = B.PK_VALUE)

JOIN master 3 cON (B.PK_VALUE = C.PK_VALUE)

JOIN master 1 l2 tab1 dON (d.pk value = a.pk value)

JOIN master_1_l3_tab1 eON (e.pk value = a.pk value)

JOIN master 1 l2 tab2 fON (f.pk value = a.pk value)

JOIN master_1_l3_tab2 gON (g.pk value = a.pk value)

JOIN master 1 l2 tab3 hON (h.pk value = a.pk value)

JOIN master_1_l3_tab3 iON (i.pk value = a.pk value)

JOIN master 2 l2 tab1 jON (j.pk value = b.pk value)

JOIN master_2_l3_tab1 k

Page 359: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 351

YYYY')

ON (k.pk value = j.pk value)JOIN master 2 l2 tab2 l

ON (l.pk value = b.pk value)JOIN master_2_l3_tab2 m

ON (m.pk value = l.pk value)JOIN master 2 l2 tab3 n

ON (n.pk value = b.pk value)JOIN master_2_l3_tab3 o

ON (o.pk value = n.pk value)JOIN master 3 l2 tab1 p

ON (p.parent link = c.pk value)JOIN master 3 l3 tab1 q

ON (q.parent link = p.pk value)JOIN master 3 l2 tab2 r

ON (r.parent link = c.pk value)JOIN master 3 l3 tab2 s

ON (s.parent link = r.pk value)JOIN master 3 l2 tab3 t

ON (t.parent link = c.pk value)JOIN master 3 l3 tab3 u

ON (u.parent link = t.pk value)WHERE u.char_1 BETWEEN 'A' AND 'Z'

AND ( u.char_2 BETWEEN 'A' AND 'Z'OR u.char_2 BETWEEN '1' AND '9')

AND a.date_1 BETWEEN TO_DATE ('01-FEB-1983', 'DD-MON-

AND SYSDATEAND s.value 3 IN

('92E0b1CBj0','L51lHeuaJo','fQaLo5msQY','1tffVC1iy9','LMc2250887','8 0TiO4F81M','rg68IGlfEp','A7B900WG85')

AND J.DATE10 BETWEEN (SELECT MIN (date10)FROM master 2 l2 tab1)

AND SYSDATE AND K.DATE_2 BETWEEN (SELECT MAX (date_2)

FROM master 2 l3 tab1)AND SYSDATE - 9 99 99

UNIONSELECT COUNT (*) counter

FROM master 1 WHERE date_1 IN

(SELECT date_1 FROM master 1

WHERE date_1_BETWEEN TO_DATE ('01-JAN-197 0','DD-MON-YYYY')

AND SYSDATE)AND date_2 IN

Page 360: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 352

SELECT date_2 FROM master

WHERE date_2

AND date_3 IN(SELECT date_3

FROM master WHERE date_3

AND date_4 IN(SELECT date_4

FROM master WHERE date_4

AND date_5 IN(SELECT date_5

FROM master WHERE date 5

AND char_1 IN (SELECTFROM

WHEREAND char_2 IN (SELECT

FROMWHERE

AND char_3 IN (SELECTFROM

WHEREAND (value_1 LIKE 'a% AND (value 2 LIKE 'A%

BETWEEN TO_DATE

AND SYSDATE)

1BETWEEN TO_DATE

AND SYSDATE)

1BETWEEN TO_DATE

AND SYSDATE)

1BETWEEN TO_DATE

' 01-JAN-1971' 'DD-MON-YYYY'

' 01-JAN-197 2' 'DD-MON-YYYY'

' 01-JAN-197 3' 'DD-MON-YYYY'

' 01-JAN-1974' 'DD-MON-YYYY'

AND SYSDATE) char_1 master 1char_1 BETWEEN 'A' AND 'Z'char_2master 1char_2 BETWEEN 'A' AND 'Z'char_3master 1char_3 BETWEEN 'A' AND 'Z' ' OR value_1 LIKE 'b%')' OR value 2 LIKE 'B%'))

/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_COST set timing onselect /*+ MASTER_ALL_JOIN_2*/SUM(counter)

FROM (SELECT COUNT (*) counter FROM master 1 a

JOIN master 2 bON (A.PK_VALUE = B.PK_VALUE)

JOIN master 3 c

Page 361: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 353

ON (B.PK_VALUE = C.PK_VALUE)JOIN master 1 l2 tab1 d

ON (d.pk value = a.pk value)JOIN master_1_l3_tab1 e

ON (e.pk value = a.pk value)JOIN master 1 l2 tab2 f

ON (f.pk value = a.pk value)JOIN master_1_l3_tab2 g

ON (g.pk value = a.pk value)JOIN master 1 l2 tab3 h

ON (h.pk value = a.pk value)JOIN master_1_l3_tab3 i

ON (i.pk value = a.pk value)JOIN master 2 l2 tab1 j

ON (j.pk value = b.pk value)JOIN master_2_l3_tab1 k

ON (k.pk value = j.pk value)JOIN master 2 l2 tab2 l

ON (l.pk value = b.pk value)JOIN master_2_l3_tab2 m

ON (m.pk value = l.pk value)JOIN master 2 l2 tab3 n

ON (n.pk value = b.pk value)JOIN master_2_l3_tab3 o

ON (o.pk value = n.pk value)JOIN master 3 l2 tab1 p

ON (p.parent link = c.pk value)JOIN master 3 l3 tab1 q

ON (q.parent link = p.pk value)JOIN master 3 l2 tab2 r

ON (r.parent link = c.pk value)JOIN master 3 l3 tab2 s

ON (s.parent link = r.pk value)JOIN master 3 l2 tab3 t

ON (t.parent link = c.pk value)JOIN master 3 l3 tab3 u

ON (u.parent link = t.pk value)WHERE u.char_1 BETWEEN 'A' AND 'Z'

AND ( u.char_2 BETWEEN 'A' AND 'Z'OR u.char_2 BETWEEN '1' AND '9')

AND a.date_1 BETWEEN TO_DATE ('01-FEB-1983', 'DD-MON-YYYY')

AND SYSDATEAND s.value 3 IN

('92E0b1CBj0','L51lHeuaJo','fQaLo5msQY','1tffVC1iy9','LMc2250887','8 0TiO4F81M','rg68IGlfEp','A7B900WG85')

Page 362: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 354

AND J.DATE10 BETWEEN (SELECT MIN (date10)FROM master 2 l2 tab1)

AND SYSDATE AND K.DATE_2 BETWEEN (SELECT MAX (date_2)

FROM master 2 l3 tab1) AND SYSDATE - 9 99 99

UNIONSELECT COUNT (*) counter

FROM master 1 WHERE date_1 IN

(SELECT date_1 FROM master 1

WHERE date_1 BETWEEN TO_DATE

AND date_2 IN(SELECT date_2

FROM master WHERE date_2

AND SYSDATE)

BETWEEN TO_DATE

AND SYSDATE)AND date_3 IN

(SELECT date_3 FROM master 1

WHERE date_3 BETWEEN TO_DATE

AND SYSDATE)AND date_4 IN

(SELECT date_4 FROM master 1

WHERE date_4 BETWEEN TO_DATE

AND date_5 IN(SELECT date_5

FROM master WHERE date 5

AND SYSDATE)

BETWEEN TO_DATE

' 01-JAN-1970' 'DD-MON-YYYY'

' 01-JAN-1971' 'DD-MON-YYYY'

' 01-JAN-1972' 'DD-MON-YYYY'

' 01-JAN-1973' 'DD-MON-YYYY'

' 01-JAN-1974' 'DD-MON-YYYY'

AND SYSDATE)AND char_1 IN (SELECT char_1

FROM master 1 WHERE char_1 BETWEEN 'A' AND

AND char_2 IN (SELECT char_2FROM master 1

WHERE char_2 BETWEEN 'A' AND AND char_3 IN (SELECT char_3

FROM master 1 WHERE char_3 BETWEEN 'A' AND

AND (value_1 LIKE 'a%' OR value_1 LIKE 'b%') AND (value 2 LIKE 'A%' OR value 2 LIKE 'B%'))

/exit

Page 363: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 355

/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql_text like '%MASTER_ALL_JOIN_2%' and optimizer cost > 1 order by last load time desc /exit/

--INDEXESM2_L2_T3_PK_IDXM3_L3_T3_CHAR_1_IDXM1_L2_T1_PK_IDXMASTER_1_PK_IDXMASTER_3_PK_IDXMASTER_2_CHAR_1_IDXMASTER_2_CHAR_3_IDXMASTER_2_DATE_2_IDXMASTER_2_VALUE_2_IDXMASTER_2_VALUE_4_IDXMASTER_2_VALUE_5_IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for SELECT SUM (counter)

FROM (SELECT COUNT (*) counter FROM master 1 a

JOIN master 2 bON (A.PK_VALUE = B.PK_VALUE)

JOIN master 3 cON (B.PK_VALUE = C.PK_VALUE)

JOIN master 1 l2 tab1 dON (d.pk value = a.pk value)

JOIN master_1_l3_tab1 eON (e.pk value = a.pk value)

JOIN master 1 l2 tab2 fON (f.pk value = a.pk value)

JOIN master_1_l3_tab2 gON (g.pk value = a.pk value)

JOIN master 1 l2 tab3 hON (h.pk value = a.pk value)

JOIN master_1_l3_tab3 i

Page 364: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 356

ON (i.pk value = a.pk value)JOIN master 2 l2 tab1 j

ON (j.pk value = b.pk value)JOIN master_2_l3_tab1 k

ON (k.pk value = j.pk value)JOIN master 2 l2 tab2 l

ON (l.pk value = b.pk value)JOIN master_2_l3_tab2 m

ON (m.pk value = l.pk value)JOIN master 2 l2 tab3 n

ON (n.pk value = b.pk value)JOIN master_2_l3_tab3 o

ON (o.pk value = n.pk value)JOIN master 3 l2 tab1 p

ON (p.parent link = c.pk value)JOIN master 3 l3 tab1 q

ON (q.parent link = p.pk value)JOIN master 3 l2 tab2 r

ON (r.parent link = c.pk value)JOIN master 3 l3 tab2 s

ON (s.parent link = r.pk value)JOIN master 3 l2 tab3 t

ON (t.parent link = c.pk value)JOIN master 3 l3 tab3 u

ON (u.parent link = t.pk value)WHERE u.char_1 BETWEEN 'A' AND 'Z'

AND ( u.char_2 BETWEEN 'A' AND 'Z'OR u.char_2 BETWEEN '1' AND '9')

AND a.date_1 BETWEEN TO_DATE ('01-FEB-1983', 'DD-MON-YYYY')

AND SYSDATEUNIONSELECT COUNT (*) counter

FROM master 2value 1 IN SELECT value_1

FROM master 2WHERE value_1 LIKE

AND value_2 IN SELECT value_2FROM master 2

WHERE value_2 LIKEAND value_3 IN SELECT value_3

FROM master 2WHERE value_3 LIKE

AND ( value 4 LIKE 'A%'OR value 4 LIKE 'B%'OR value 4 LIKE 'C%'OR value 4 LIKE 'D%'OR value 4 LIKE 'E%')

AND ( value 5 LIKE '0%'OR value 5 LIKE 'b%'OR value 5 LIKE '0%'OR value 5 LIKE '7%'

Page 365: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 357

AND

OR value_5 LIKE 'Z%')AND (char_1 BETWEEN 'a' AND 'z' AND (char 2 BETWEEN 'a' AND 'z' OR char_

AND ( char_3 BETWEEN 'a' AND 'z'OR char_3 BETWEEN 'A' AND 'Z'OR char_3 BETWEEN '0' AND '9')

AND date_1 IN(SELECT date_1

FROM master 2 WHERE date_1 BETWEEN TO_DATE

AND SYSDATE)AND date_2 IN

(SELECT date_2 FROM master 2

WHERE date_2 BETWEEN TO_DATE

AND SYSDATE)/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_COST set timing onselect /*+ MASTER_ALL_JOIN_3*/SUM (counter)

FROM (SELECT COUNT (*) counter FROM master 1 a

JOIN master 2 bON (A.PK_VALUE = B.PK_VALUE)

JOIN master 3 cON (B.PK_VALUE = C.PK_VALUE)

JOIN master 1 l2 tab1 dON (d.pk value = a.pk value)

JOIN master_1_l3_tab1 eON (e.pk value = a.pk value)

JOIN master 1 l2 tab2 fON (f.pk value = a.pk value)

JOIN master_1_l3_tab2 gON (g.pk value = a.pk value)

JOIN master 1 l2 tab3 hON (h.pk value = a.pk value)

JOIN master_1_l3_tab3 iON (i.pk value = a.pk value)

JOIN master 2 l2 tab1 jON (j.pk value = b.pk value)

2 BETWEEN 'A'

01-JAN-1970',DD-MON-YYYY')

01-JAN-1971',DD-MON-YYYY')

Page 366: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 358

JOIN master_2_l3_tab1 kON (k.pk value = j.pk value)

JOIN master 2 l2 tab2 lON (l.pk value = b.pk value)

JOIN master_2_l3_tab2 mON (m.pk value = l.pk value)

JOIN master 2 l2 tab3 nON (n.pk value = b.pk value)

JOIN master_2_l3_tab3 oON (o.pk value = n.pk value)

JOIN master 3 l2 tab1 pON (p.parent link = c.pk value)

JOIN master 3 l3 tab1 qON (q.parent link = p.pk value)

JOIN master 3 l2 tab2 rON (r.parent link = c.pk value)

JOIN master 3 l3 tab2 sON (s.parent link = r.pk value)

JOIN master 3 l2 tab3 tON (t.parent link = c.pk value)

JOIN master 3 l3 tab3 uON (u.parent link = t.pk value)

WHERE u.char_1 BETWEEN 'A' AND 'Z'AND ( u.char_2 BETWEEN 'A' AND 'Z'

OR u.char_2 BETWEEN '1' AND '9')AND a.date_1 BETWEEN TO_DATE ('01-FEB-1983', 'DD-MON-

YYYY')AND SYSDATE

UNIONSELECT COUNT (*) counter

FROM master 2value 1 IN SELECT value_1

FROM master 2WHERE value_1 LIKE

AND value_2 IN SELECT value_2FROM master 2

WHERE value_2 LIKEAND value_3 IN SELECT value_3

FROM master 2WHERE value_3 LIKE

AND ( value 4 LIKE 'A%'OR value 4 LIKE 'B%'OR value 4 LIKE 'C%'OR value 4 LIKE 'D%'OR value 4 LIKE 'E%')

AND ( value 5 LIKE '0%'OR value 5 LIKE 'b%'OR value 5 LIKE '0%'OR value 5 LIKE '7%'OR value 5 LIKE 'Z%')

AND (char 1 BETWEEN 'a' AND 'z')

Page 367: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 359

AND (char 2 BETWEEN AND OR char_AND

AND ( char_3 OR char_3 OR char_3

AND date_1 IN (SELECT

FROM WHERE

BETWEEN 'a' AND 'z' BETWEEN 'A' AND 'Z' BETWEEN '0' AND '9')

date_1 master 2date_1 BETWEEN TO_DATE

AND date_2 IN (SELECT

FROM WHERE

AND SYSDATE)

date_2 master 2date_2 BETWEEN TO_DATE

/exit/

AND SYSDATE)

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%MASTER ALL JOIN 3%' and optimizer cost > 1 order by last load time desc /exit/

— INDEXESM3_L3_T3_CHAR_1_IDXM3_L3_T3_CHAR_2_IDXM1_L2_T1_PK_IDXM3_L3_T3_VALUE_1_IDXMASTER_1_PK_IDXMASTER_2_PK_IDXMASTER_3_PK_IDXM2_L2_T1_DATE_10_IDXM2_L3_T1_DATE_1_IDXMASTER_1_CHAR_1_IDXMASTER_1_DATE_1_IDXMASTER 1 VALUE 1 IDX

— GET COST

2 BETWEEN 'A'

01-JAN-1970',DD-MON-YYYY')

01-JAN-1971',DD-MON-YYYY')

Page 368: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 360

delete from plan table /explain planset statement id = 'A' for SELECT SUM (counter)

FROM (SELECT COUNT (*) counter FROM master 1 a

JOIN master 2 bON (A.PK_VALUE = B.PK_VALUE)

JOIN master 3 cON (B.PK_VALUE = C.PK_VALUE)

JOIN master 1 l2 tab1 dON (d.pk value = a.pk value)

JOIN master_1_l3_tab1 eON (e.pk value = a.pk value)

JOIN master 1 l2 tab2 fON (f.pk value = a.pk value)

JOIN master_1_l3_tab2 gON (g.pk value = a.pk value)

JOIN master 1 l2 tab3 hON (h.pk value = a.pk value)

JOIN master_1_l3_tab3 iON (i.pk value = a.pk value)

JOIN master 2 l2 tab1 jON (j.pk value = b.pk value)

JOIN master_2_l3_tab1 kON (k.pk value = j.pk value)

JOIN master 2 l2 tab2 lON (l.pk value = b.pk value)

JOIN master_2_l3_tab2 mON (m.pk value = l.pk value)

JOIN master 2 l2 tab3 nON (n.pk value = b.pk value)

JOIN master_2_l3_tab3 oON (o.pk value = n.pk value)

JOIN master 3 l2 tab1 pON (p.parent link = c.pk value)

JOIN master 3 l3 tab1 qON (q.parent link = p.pk value)

JOIN master 3 l2 tab2 rON (r.parent link = c.pk value)

JOIN master 3 l3 tab2 sON (s.parent link = r.pk value)

JOIN master 3 l2 tab3 tON (t.parent link = c.pk value)

JOIN master 3 l3 tab3 uON (u.parent link = t.pk value)

WHERE u.char_1 BETWEEN 'A' AND 'Z'AND ( u.char_2 BETWEEN 'A' AND 'Z'

OR u.char_2 BETWEEN '1' AND '9')AND a.date_1 BETWEEN TO_DATE ('01-FEB-1983', 'DD-MON-

YYYY')

Page 369: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 361

UNIONSELECT COUNT (*)

FROM master 3WHERE

AND

num_1 AND num_2 AND num_3 AND num_4 AND num_5

char_ANDAND

AND

AND SYSDATE

counter

BETWEEN 1 AND 98768000 BETWEEN 28 AND 291381400 >= (SELECT MIN (num_3) FROM master 3) <= (SELECT AVG (num_4)<= (SELECT MAX (num_5)1 BETWEEN 'a' AND 'z')

FROM master 3) FROM master 3)

char_2 BETWEEN

( char_3 BETWEEN 'a' OR char_3 BETWEEN 'A' OR char_3 BETWEEN '0'

AND value_1 IN(SELECT value_1

FROM master 3 WHERE value_1 LIKE

AND 'z' OR char_2 BETWEEN 'A'

AND 'z'AND 'Z'AND '9')

dA%' OR value 1 LIKE

AND value_2 IN (SELECT value_2FROM master 3

WHERE value_2 LIKE/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

r 'C%

— TIME_COST set timing onselect /*+ MASTER_ALL_JOIN_4*/SUM (counter)

FROM (SELECT COUNT (*) counter FROM master 1 a

JOIN master 2 bON (A.PK_VALUE = B.PK_VALUE)

JOIN master 3 cON (B.PK_VALUE = C.PK_VALUE)

JOIN master 1 l2 tab1 dON (d.pk value = a.pk value)

JOIN master_1_l3_tab1 eON (e.pk value = a.pk value)

JOIN master 1 l2 tab2 fON (f.pk value = a.pk value)

JOIN master_1_l3_tab2 gON (g.pk value = a.pk value)

JOIN master 1 l2 tab3 hON (h.pk value = a.pk value)

Page 370: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 362

JOIN master_1_l3_tab3 iON (i.pk value = a.pk value)

JOIN master 2 l2 tab1 jON (j.pk value = b.pk value)

JOIN master_2_l3_tab1 kON (k.pk value = j.pk value)

JOIN master 2 l2 tab2 lON (l.pk value = b.pk value)

JOIN master_2_l3_tab2 mON (m.pk value = l.pk value)

JOIN master 2 l2 tab3 nON (n.pk value = b.pk value)

JOIN master_2_l3_tab3 oON (o.pk value = n.pk value)

JOIN master 3 l2 tab1 pON (p.parent link = c.pk value)

JOIN master 3 l3 tab1 qON (q.parent link = p.pk value)

JOIN master 3 l2 tab2 rON (r.parent link = c.pk value)

JOIN master 3 l3 tab2 sON (s.parent link = r.pk value)

JOIN master 3 l2 tab3 tON (t.parent link = c.pk value)

JOIN master 3 l3 tab3 uON (u.parent link = t.pk value)

WHERE u.char_1 BETWEEN 'A' AND 'Z'AND ( u.char_2 BETWEEN 'A' AND 'Z'

OR u.char_2 BETWEEN '1' AND '9')AND a.date_1 BETWEEN TO_DATE ('01-FEB-1983', 'DD-MON-

YYYY')AND SYSDATE

UNIONSELECT COUNT (*) counter

FROM master 3 WHERE num_1 BETWEEN 1 AND 98768000

AND num_2 BETWEEN 28 AND 291381400AND num_3 >= (SELECT MIN (num_3) FROM master_3)AND num_4 <= (SELECT AVG (num_4) FROM master_3)AND num_5 <= (SELECT MAX (num_5) FROM master_3)AND (char_1 BETWEEN 'a' AND 'z')AND (char_2 BETWEEN 'a' AND 'z' OR char_2 BETWEEN 'A'

AND 'Z')AND ( char_3 BETWEEN 'a' AND 'z'

OR char_3 BETWEEN 'A' AND 'Z'OR char_3 BETWEEN '0' AND '9')

AND value_1 IN(SELECT value_1

FROM master 3 WHERE value_1 LIKE '%A%' OR value_1 LIKE

'%B%')AND value_2 IN (SELECT value_2

Page 371: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 363

FROM master 3 WHERE value_2 LIKE '%C%'))

/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%MASTER ALL JOIN 4%' and optimizer cost > 1 order by last load time desc /exit/

--INDEXESM1_L3_T1_PK_IDXM1_L3_T2_PK_IDXM1_L3_T3_PK_IDXM2_L2_T1_PK_IDXM2_L2_T3_PK_IDXM2_L2_TAB2_PK_IDXM2_L3_T1_PK_IDXM2_L3_T2_PK_IDXM3_L2_T3_PK_IDXMASTER_1_PK_IDXMASTER_2_PK_IDXMASTER_3_VALUE_1_IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for select counterfrom (SELECT COUNT (*) counter

FROM master 3 WHERE num_1 BETWEEN 1 AND 98768000

AND num_2 BETWEEN 28 AND 291381400AND num_3 >= (SELECT MIN (num_3) FROM master_3)AND num_4 <= (SELECT AVG (num_4) FROM master_3)AND num_5 <= (SELECT MAX (num_5) FROM master_3)AND (char_1 BETWEEN 'a' AND 'z')AND (char_2 BETWEEN 'a' AND 'z' OR char_2 BETWEEN 'A' AND 'Z') AND ( char_3 BETWEEN 'a' AND 'z'

OR char_3 BETWEEN 'A' AND 'Z'OR char 3 BETWEEN '0' AND '9')

Page 372: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 364

AND value_1 IN (SELECT value_1FROM master 3

WHERE value_1 LIKE '%A%' OR value_1 LIKE'%B%')

AND value_2 IN (SELECT value_2FROM master 3

WHERE value_2 LIKE '%C%')UNIONSELECT SUM (counter) counter

FROM (SELECT COUNT (*) counter FROM master 1 a

JOIN master 2 bON (A.PK_VALUE = B.PK_VALUE)

JOIN master 3 cON (B.PK_VALUE = C.PK_VALUE)

JOIN master 1 l2 tab1 dON (d.pk value = a.pk value)

JOIN master_1_l3_tab1 eON (e.pk value = a.pk value)

JOIN master 1 l2 tab2 fON (f.pk value = a.pk value)

JOIN master_1_l3_tab2 gON (g.pk value = a.pk value)

JOIN master 1 l2 tab3 hON (h.pk value = a.pk value)

JOIN master_1_l3_tab3 iON (i.pk value = a.pk value)

JOIN master 2 l2 tab1 jON (j.pk value = b.pk value)

JOIN master_2_l3_tab1 kON (k.pk value = j.pk value)

JOIN master 2 l2 tab2 lON (l.pk value = b.pk value)

JOIN master_2_l3_tab2 mON (m.pk value = l.pk value)

JOIN master 2 l2 tab3 nON (n.pk value = b.pk value)

JOIN master_2_l3_tab3 oON (o.pk value = n.pk value)

JOIN master 3 l2 tab1 pON (p.parent link = c.pk value)

JOIN master 3 l3 tab1 qON (q.parent link = p.pk value)

JOIN master 3 l2 tab2 rON (r.parent link = c.pk value)

JOIN master 3 l3 tab2 sON (s.parent link = r.pk value)

JOIN master 3 l2 tab3 tON (t.parent link = c.pk value)

JOIN master 3 l3 tab3 uON (u.parent link = t.pk value)

WHERE u.char 1 BETWEEN 'A' AND 'Z'

Page 373: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 365

AND ( u.char_2 BETWEEN 'A' OR u.char_2 BETWEEN '1'

AND a.date 1 BETWEEN TO DATE

AND 'Z'AND '9') ('01-FEB-1983' DD-MON-

YYYY'AND SYSDATE

UNIONSELECT COUNT (*)

FROM master 2counter

WHERE value_1 IN (SELECT value_1FROM master 2

WHERE value_1 LIKE '%A% AND value_2 IN (SELECT value_2

FROM master 2 WHERE value_2 LIKE '%B%

AND value_3 IN (SELECT value_3FROM master 2

WHERE value 3 LIKE '%C%AND ( value 4 LIKE 'A%

OR value 4 LIKE 'B%OR value 4 LIKE 'C%OR value 4 LIKE 'D%OR value 4 LIKE 'E%

AND ( value 5 LIKE '0%OR value 5 LIKE 'b%OR value 5 LIKE '0%OR value 5 LIKE '7%OR value 5 LIKE 'Z%

AND

ANDAND

AND

char_1char_2

BETWEENBETWEEN

a'a'

( char_3 BETWEEN ' OR char_3 BETWEEN ' OR char_3 BETWEEN '

AND date_1 IN(SELECT date_1

FROM master 2

ANDAND

a' A' 0'

z' z'

ANDANDAND

OR char_2 BETWEEN 'A'

z'Z'9'

WHERE date_1 BETWEEN TO_DATE ' 01-JAN-1970' 'DD-MON-YYYY'

AND date_2 IN(SELECT date_2

FROM master WHERE date_2

AND SYSDATE)

BETWEEN TO_DATE

AND SYSDATE)

' 01-JAN-1971' 'DD-MON-YYYY'

/select cost from plan table where statement id = 'A' and parent_id IS NULL /

Page 374: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 366

exit/

— TIME_COST set timing onselect /*+ MASTER_ALL_JOIN_5*/ counterfrom (SELECT COUNT (*) counter

FROM master 3 WHERE num_1 BETWEEN 1 AND 98768000

AND num_2 BETWEEN 28 AND 291381400AND num_3 >= (SELECT MIN (num_3) FROM master_3)AND num_4 <= (SELECT AVG (num_4) FROM master_3)AND num_5 <= (SELECT MAX (num_5) FROM master_3)AND (char_1 BETWEEN 'a' AND 'z')AND (char_2 BETWEEN 'a' AND 'z' OR char_2 BETWEEN 'A' AND 'Z') AND ( char_3 BETWEEN 'a' AND 'z'

OR char_3 BETWEEN 'A' AND 'Z'OR char_3 BETWEEN '0' AND '9')

AND value_1 IN (SELECT value_1FROM master 3

WHERE value_1 LIKE '%A%' OR value_1 LIKE'%B%')

AND value_2 IN (SELECT value_2FROM master 3

WHERE value_2 LIKE '%C%')UNIONSELECT SUM (counter) counter

FROM (SELECT COUNT (*) counter FROM master 1 a

JOIN master 2 bON (A.PK_VALUE = B.PK_VALUE)

JOIN master 3 cON (B.PK_VALUE = C.PK_VALUE)

JOIN master 1 l2 tab1 dON (d.pk value = a.pk value)

JOIN master_1_l3_tab1 eON (e.pk value = a.pk value)

JOIN master 1 l2 tab2 fON (f.pk value = a.pk value)

JOIN master_1_l3_tab2 gON (g.pk value = a.pk value)

JOIN master 1 l2 tab3 hON (h.pk value = a.pk value)

JOIN master_1_l3_tab3 iON (i.pk value = a.pk value)

JOIN master 2 l2 tab1 jON (j.pk value = b.pk value)

JOIN master_2_l3_tab1 kON (k.pk value = j.pk value)

JOIN master 2 l2 tab2 lON (l.pk value = b.pk value)

Page 375: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 367

WHERE

JOIN master_2_l3_tab2 mON (m.pk value = l.pk value)

JOIN master 2 l2 tab3 nON (n.pk value = b.pk value)

JOIN master_2_l3_tab3 oON (o.pk value = n.pk value)

JOIN master 3 l2 tab1 pON (p.parent link = c.pk value

JOIN master 3 l3 tab1 qON (q.parent link = p.pk value

JOIN master 3 l2 tab2 rON (r.parent link = c.pk value

JOIN master 3 l3 tab2 sON (s.parent link = r.pk value

JOIN master 3 l2 tab3 tON (t.parent link = c.pk value

JOIN master 3 l3 tab3 uON (u.parent link = t.pk value u.char_1 BETWEEN 'A' AND 'Z'

AND ( u.char_2 BETWEEN 'A'OR u.char_2 BETWEEN '1'

AND a.date 1 BETWEEN TO DATE

AND 'Z'AND '9') ('01-FEB-1 983

YYYY'AND SYSDATE

UNIONSELECT COUNT (*

FROM master 2 WHERE

counter

value 1 IN (SELECT value 1FROM master 2

WHERE value 1 LIKEAND value 2 IN (SELECT value_2

FROM master 2WHERE value_2 LIKE

AND value 3 IN (SELECT value_3FROM master 2

WHERE value_3 LIKE

17\QA%

L f CC%AND ( value 4 LIKE 'A%

OR value 4 LIKE 'B%OR value 4 LIKE 'C%OR value 4 LIKE 'D%OR value 4 LIKE 'E%

AND ( value 5 LIKE '0%OR value 5 LIKE 'b%OR value 5 LIKE '0%OR value 5 LIKE '7%OR value 5 LIKE 'Z%

AND

ANDAND

AND

char_1char_2

BETWEENBETWEEN

a'a'

( char_3 BETWEEN OR char_3 BETWEEN OR char_3 BETWEEN

ANDAND

a' A' 0'

z' z'

ANDANDAND

OR char_2

z'Z'' 9')

', 'DD-MON-

BETWEEN 'A'

Page 376: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 368

AND date_1 IN(SELECT date_1

FROM master 2WHERE date_1 BETWEEN TO_DATE ' 01-JAN-1970'

'DD-MON-YYYY'

AND date_2 IN(SELECT date_2

FROM master WHERE date_2

/exit/

AND SYSDATE)

BETWEEN TO_DATE

AND SYSDATE)

' 01-JAN-1971' 'DD-MON-YYYY'

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%MASTER ALL JOIN 5% and optimizer cost > 1 order by last load time desc /exit/

--INDEXESM1_L2_T1_PK_IDXM1_L2_T2_PK_IDXM1_L2_T3_PK_IDXM1_L3_T1_PK_IDXM1_L3_T2_PK_IDXM1_L3_T3_PK_IDXM2_L2_T1_PK_IDXM2_L2_T3_PK_IDXM2_L2_TAB2_PK_IDXM2_L3_T1_PK_IDXM2_L3_T2_PK_IDXM3 L2 T3 PK IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for select counter

Page 377: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 369

from (SELECT COUNT FROM master 3

WHERE num_1AND num_2 AND num_3 AND num_4 AND num 5 AND AND AND

counter

FROM master 3) FROM master 3)

char_

BETWEEN 1 AND 98768000 BETWEEN 28 AND 291381400 >= (SELECT MIN (num_3) FROM master 3 <= (SELECT AVG (num_4 <= (SELECT MAX (num_5 1 BETWEEN 'a' AND 'z'

char_2 BETWEEN 'a' AND 'z' char_3 BETWEEN 'a' AND

OR char_3 BETWEEN 'A' AND OR char_3 BETWEEN '0' AND

AND value_1 IN (SELECT value_1FROM master 3

WHERE value_1 LIKE

OR char_2 z'Z'' 9')

i . 7\ 2A%

BETWEEN 'A

OR value_1

AND value_2 IN (SELECT value_2FROM master 3

WHERE value_2 LIKE r 'C%UNION SELECT SUM counter) counter

FROM (SELECT COUNT (*) counter FROM master 1 a

JOIN master 2 bON (A.PK_VALUE = B.PK_VALUE

JOIN master 3 cON (B.PK_VALUE = C.PK_VALUE

JOIN master 1 l2 tab1 dON (d.pk value = a.pk value

JOIN master_1_l3_tab1 eON (e.pk value = a.pk value

JOIN master 1 l2 tab2 fON (f.pk value = a.pk value

JOIN master_1_l3_tab2 gON (g.pk value = a.pk value

JOIN master 1 l2 tab3 hON (h.pk value = a.pk value

JOIN master_1_l3_tab3 iON (i.pk value = a.pk value

JOIN master 2 l2 tab1 jON (j.pk value = b.pk value

JOIN master_2_l3_tab1 kON (k.pk value = j.pk value

JOIN master 2 l2 tab2 lON (l.pk value = b.pk value

JOIN master_2_l3_tab2 mON (m.pk value = l.pk value

JOIN master 2 l2 tab3 nON (n.pk value = b.pk value

JOIN master_2_l3_tab3 oON (o.pk value = n.pk value

JOIN master 3 l2 tab1 p

' AND 'Z')

LIKE

Page 378: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 370

YYYY’)

AND ’Z

WHERE

ON (p.parent link = c.pk value)JOIN master 3 13 tabl q

ON (q.parent link = p.pk value)JOIN master 3 l2 tab2 r

ON (r.parent link = c.pk value)JOIN master 3 l3 tab2 s

ON (s.parent link = r.pk value)JOIN master 3 l2 tab3 t

ON (t.parent link = c.pk value)JOIN master 3 l3 tab3 u

ON (u.parent link = t.pk value) u.char_1 BETWEEN ’A ’ AND ’Z’

AND ( u.char_2 BETWEEN ’A ’ AND ’Z’OR u.char_2 BETWEEN ’1’ AND ’9’)

AND a.date 1 BETWEEN TO DATE (’01-FEB-1983’ DD-MON-

AND SYSDATEUNIONSELECT COUNT (*)

FROM master 2counter

WHERE value 1

AND value_2

SELECT value_1FROM master 2

WHERE value 1 LIKE %A%

SELECT value_2FROM master 2

WHERE value_2 LIKE T f i - n f i -oBoSELECT value_3

FROM master 2WHERE value_3 LIKE i ap£-oCo

AND ( value 4 LIKE ’A%OR value "4 LIKE ’B%OR value "4 LIKE ’C%OR value "4 LIKE ’D%OR value "4 LIKE ’E%

AND ( value 5 LIKE ’0%OR value 5 LIKE ’b%OR value 5 LIKE ’0%OR value 5 LIKE ’7%OR value 5 LIKE ’Z%

ANDAND

char_1char_2

BETWEENBETWEEN

a ’a ’

ANDAND OR char_2 BETWEEN ’A ’

AND ( char_3 BETWEEN ’a’ AND ’z’OR char_3 BETWEEN ’A ’ AND ’Z’OR char_3 BETWEEN ’0’ AND ’9’)

AND date_1 IN(SELECT date_1

FROM master 2 WHERE date_1 BETWEEN TO_DATE

AND SYSDATE)AND date_2 IN

' 01-JAN-197 0’ 'DD-MON-YYYY'

Page 379: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 371

SELECT date_2 FROM master 2

WHERE date_2 BETWEEN TO_DATE (’01-JAN-1971’,’DD-MON-YYYY’)

AND SYSDATE)))

/select cost from plan table where statement id = ’A ’ and parent_id IS NULL /exit/

— TIME_COST set timing onselect /*+ MASTER_ALL_JOIN_6*/ counterfrom (SELECT COUNT (*) counter

FROM master 3 WHERE num_1 BETWEEN 1 AND 98768000

AND num_2 BETWEEN 28 AND 291381400AND num_3 >= (SELECT MIN (num_3) FROM master_3)AND num_4 <= (SELECT AVG (num_4) FROM master_3)AND num_5 <= (SELECT MAX (num_5) FROM master_3)AND (char_1 BETWEEN ’a ’ AND ’z’)AND (char_2 BETWEEN ’a ’ AND ’z’ OR char_2 BETWEEN ’A ’ AND ’Z’) AND ( char_3 BETWEEN ’a’ AND ’z’

OR char_3 BETWEEN ’A ’ AND ’Z’OR char_3 BETWEEN ’0’ AND ’9’)

AND value_1 IN (SELECT value_1FROM master 3

WHERE value_1 LIKE ’%A%’ OR value_1 LIKE’%B%’)

AND value_2 IN (SELECT value_2FROM master 3

WHERE value_2 LIKE ’%C%’)UNIONSELECT SUM (counter) counter

FROM (SELECT COUNT (*) counter FROM master 1 a

JOIN master 2 bON (A.PK_VALUE = B.PK_VALUE)

JOIN master 3 cON (B.PK_VALUE = C.PK_VALUE)

JOIN master 1 l2 tab1 dON (d.pk value = a.pk value)

JOIN master_1_l3_tab1 eON (e.pk value = a.pk value)

JOIN master 1 l2 tab2 fON (f.pk value = a.pk value)

Page 380: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 372

WHERE

YYYY’

JOIN master_1_l3_tab2 gON (g.pk value = a.pk value)

JOIN master 1 l2 tab3 hON (h.pk value = a.pk value)

JOIN master_1_l3_tab3 iON (i.pk value = a.pk value)

JOIN master 2 l2 tab1 jON (j.pk value = b.pk value)

JOIN master_2_l3_tab1 kON (k.pk value = j.pk value)

JOIN master 2 l2 tab2 lON (l.pk value = b.pk value)

JOIN master_2_l3_tab2 mON (m.pk value = l.pk value)

JOIN master 2 l2 tab3 nON (n.pk value = b.pk value)

JOIN master_2_l3_tab3 oON (o.pk value = n.pk value)

JOIN master 3 l2 tab1 pON (p.parent link = c.pk value)

JOIN master 3 l3 tab1 qON (q.parent link = p.pk value)

JOIN master 3 l2 tab2 rON (r.parent link = c.pk value)

JOIN master 3 l3 tab2 sON (s.parent link = r.pk value)

JOIN master 3 l2 tab3 tON (t.parent link = c.pk value)

JOIN master 3 l3 tab3 uON (u.parent link = t.pk value) u.char_1 BETWEEN ’A ’ AND ’Z’

AND ( u.char_2 BETWEEN ’A ’ AND ’Z’OR u.char_2 BETWEEN ’1’ AND ’9’)

AND a.date 1 BETWEEN TO DATE (’01-FEB-1983’ DD-MON-

AND SYSDATEUNIONSELECT COUNT (*

FROM master 2 WHERE

counter

value 1 IN (SELECT value 1FROM master 2

WHERE value 1 LIKEAND value 2 IN (SELECT value_2

FROM master 2WHERE value_2 LIKE

AND value 3 IN (SELECT value_3FROM master 2

WHERE value_3 LIKE

T fi- 7\ fi. fA%

T f i - n f i - T

C%AND ( value_4 LIKE ’A%

OR value_4 LIKE ’B%OR value_4 LIKE ’C%OR value 4 LIKE ’D%

Page 381: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 373

AND (OR value 4 LIKE ’E

value 5 LIKE ’0OR value 5 LIKE ’bOR value 5 LIKE ’0OR value 5 LIKE ’7OR value 5 LIKE ’Z

ANDAND

char_1char_2

BETWEENBETWEEN

a ’a ’

ANDAND OR char_

ANDAND ( char_3

OR char_3 OR char_3

AND date_1 IN (SELECT

FROM WHERE

BETWEEN ’a’ AND ’z’ BETWEEN ’A ’ AND ’Z’ BETWEEN ’0’ AND ’9’)

date_1 master 2date_1 BETWEEN TO_DATE

AND date_2 IN (SELECT

FROM WHERE

AND SYSDATE)

date_2 master 2date_2 BETWEEN TO_DATE

AND SYSDATE)

/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like ’%MASTER ALL JOIN 6%’ and optimizer cost > 1 order by last load time desc /exit/

--INDEXESM1_L2_T3_PK_IDXM1_L3_T1_PK_IDXM1_L3_T2_PK_IDXM1_L3_T3_PK_IDXM2_L2_T1_PK_IDXM2_L2_T3_PK_IDXM2_L2_TAB2_PK_IDXM2 L3 T1 PK IDX

2 BETWEEN ’A ’

01-JAN-1970’,DD-MON-YYYY’)

01-JAN-1971’,DD-MON-YYYY’)

Page 382: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 374

M2_L3_T2_PK_IDX M3_L2_T3_PK_IDX MASTER_1_PK_IDX MASTER 2 PK IDX

— GET_COSTdelete from plan table /explain planset statement id = ’A ’ for select counterfrom (SELECT COUNT (*) counter

FROM master 3 WHERE num_1 BETWEEN 1 AND 98768000

AND num_2 BETWEEN 28 AND 291381400AND num_3 >= (SELECT MIN (num_3) FROM master_3)AND num_4 <= (SELECT AVG (num_4) FROM master_3)AND num_5 <= (SELECT MAX (num_5) FROM master_3)AND (char_1 BETWEEN ’a ’ AND ’z’)AND (char_2 BETWEEN ’a ’ AND ’z’ OR char_2 BETWEEN ’A ’ AND ’Z’) AND ( char_3 BETWEEN ’a’ AND ’z’

OR char_3 BETWEEN ’A ’ AND ’Z’OR char_3 BETWEEN ’0’ AND ’9’)

AND value_1 IN (SELECT value_1FROM master 3

WHERE value_1 LIKE ’%A%’ OR value_1 LIKE’%B%’)

AND value_2 IN (SELECT value_2FROM master 3

WHERE value_2 LIKE ’%C%’)UNIONSELECT SUM (counter) counter

FROM (SELECT COUNT (*) counter FROM master 1 a

JOIN master 2 bON (A.PK_VALUE = B.PK_VALUE)

JOIN master 3 cON (B.PK_VALUE = C.PK_VALUE)

JOIN master 1 l2 tab1 dON (d.pk value = a.pk value)

JOIN master_1_l3_tab1 eON (e.pk value = a.pk value)

JOIN master 1 l2 tab2 fON (f.pk value = a.pk value)

JOIN master_1_l3_tab2 gON (g.pk value = a.pk value)

JOIN master 1 l2 tab3 hON (h.pk value = a.pk value)

JOIN master_1_l3_tab3 iON (i.pk value = a.pk value)

JOIN master 2 l2 tab1 j

Page 383: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 375

ON (j.pk value = b.pk value)JOIN master_2_l3_tab1 k

ON (k.pk value = j.pk value)JOIN master 2 l2 tab2 l

ON (l.pk value = b.pk value)JOIN master_2_l3_tab2 m

ON (m.pk value = l.pk value)JOIN master 2 l2 tab3 n

ON (n.pk value = b.pk value)JOIN master_2_l3_tab3 o

ON (o.pk value = n.pk value)JOIN master 3 l2 tab1 p

ON (p.parent link = c.pk value)JOIN master 3 l3 tab1 q

ON (q.parent link = p.pk value)JOIN master 3 l2 tab2 r

ON (r.parent link = c.pk value)JOIN master 3 l3 tab2 s

ON (s.parent link = r.pk value)JOIN master 3 l2 tab3 t

ON (t.parent link = c.pk value)JOIN master 3 l3 tab3 u

ON (u.parent link = t.pk value)WHERE u.char_1 BETWEEN ’A ’ AND ’Z’

AND ( u.char_2 BETWEEN ’A ’ AND ’Z’OR u.char_2 BETWEEN ’1’ AND ’9’)

AND a.date_1 BETWEEN TO_DATE (’01-FEB-1983’, ’DD-MON-YYYY’)

AND SYSDATEUNIONSELECT COUNT (*) counter

FROM master 2value 1 IN SELECT value 1

FROM master 2WHERE value 1 LIKE

AND value_2 IN SELECT value 2FROM master 2

WHERE value 2 LIKEAND value_3 IN SELECT value 3

FROM master 2WHERE value 3 LIKE

AND ( value 4 LIKE ’A%’OR value 4 LIKE ’B%’OR value 4 LIKE ’C%’OR value 4 LIKE ’D%’OR value 4 LIKE ’E%’)

AND ( value 5 LIKE ’0%’OR value 5 LIKE ’b%’OR value 5 LIKE ’0%’OR value 5 LIKE ’7%’OR value 5 LIKE ’Z%’)

AND (char 1 BETWEEN ’a ’ AND ’z’)

Page 384: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 376

ANDAND (char_2 BETWEEN ’a ’ AND

AND ( char_3 BETWEEN ’a’OR char_3 BETWEEN ’A ’OR char_3 BETWEEN ’0’

AND date_1 IN(SELECT date_1

FROM master 2 WHERE date_1 BETWEEN TO_DATE

’ OR char_2 BETWEEN ’A ’

AND ’z’AND ’Z’AND ’9’)

AND date_2 IN(SELECT date_2

FROM master WHERE date_2

AND SYSDATE)

BETWEEN TO_DATE

AND SYSDATE)

' 01-JAN-197 0’ 'DD-MON-YYYY’

' 01-JAN-1971’ 'DD-MON-YYYY’

/select cost from plan table where statement id = ’A ’ and parent_id IS NULL /exit/

— TIME_COST set timing onselect /* + MASTER_ALL_JOIN_7*/ counterfrom (SELECT COUNT (*) counter

FROM master 3 WHERE num_1 BETWEEN 1 AND 98768000

AND num_2 BETWEEN 28 AND 291381400AND num_3 >= (SELECT MIN (num_3) FROM master_3)AND num_4 <= (SELECT AVG (num_4) FROM master_3)AND num_5 <= (SELECT MAX (num_5) FROM master_3)AND (char_1 BETWEEN ’a ’ AND ’z’)AND (char_2 BETWEEN ’a ’ AND ’z’ OR char_2 BETWEEN ’A ’ AND ’Z’) AND ( char_3 BETWEEN ’a’ AND ’z’

OR char_3 BETWEEN ’A ’ AND ’Z’OR char_3 BETWEEN ’0’ AND ’9’)

AND value_1 IN (SELECT value_1FROM master 3

WHERE value_1 LIKE ’%A%’ OR value_1 LIKE’%B%’)

AND value_2 IN (SELECT value_2FROM master 3

WHERE value_2 LIKE ’%C%’)UNIONSELECT SUM (counter) counter

Page 385: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 377

FROM

YYYY’)

; SELECT COUNT (*) counter FROM master 1 a

JOIN master 2 bON (A.PK_VALUE = B.PK_VALUE

JOIN master 3 cON (B.PK_VALUE = C.PK_VALUE

JOIN master 1 l2 tab1 dON (d.pk value = a.pk value

JOIN master_1_l3_tab1 eON (e.pk value = a.pk value

JOIN master 1 l2 tab2 fON (f.pk value = a.pk value

JOIN master 1 l3 tab2 gON (g.pk value = a.pk value

JOIN master 1 l2 tab3 hON (h.pk value = a.pk value

JOIN master_1_l3_tab3 iON (i.pk value = a.pk value

JOIN master 2 l2 tab1 jON (j.pk value = b.pk value

JOIN master_2_l3_tab1 kON (k.pk value = j.pk value

JOIN master 2 l2 tab2 lON (l.pk value = b.pk value

JOIN master_2_l3_tab2 mON (m.pk value = l.pk value

JOIN master 2 l2 tab3 nON (n.pk value = b.pk value

JOIN master_2_l3_tab3 oON (o.pk value = n.pk value)

JOIN master 3 l2 tab1 pON (p.parent link = c.pk value)

JOIN master 3 l3 tab1 qON (q.parent link = p.pk value)

JOIN master 3 l2 tab2 rON (r.parent link = c.pk value)

JOIN master 3 l3 tab2 sON (s.parent link = r.pk value)

JOIN master 3 l2 tab3 tON (t.parent link = c.pk value)

JOIN master 3 l3 tab3 uON (u.parent link = t.pk value)

WHERE u.char_1 BETWEEN ’A ’ AND ’Z’AND ( u.char_2 BETWEEN ’A ’ AND ’Z’

OR u.char_2 BETWEEN ’1’ AND ’9’)AND a.date 1 BETWEEN TO DATE (’01-FEB-1983’ DD-MON-

AND SYSDATEUNIONSELECT COUNT (*) counter

FROM master 2 WHERE value 1 IN (SELECT value 1

Page 386: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 378

FROM master 2 WHERE value_1 LIKE ’%A%

AND value_2 IN (SELECT value_2FROM master 2

WHERE value_2 LIKE ’%B% AND value_3 IN (SELECT value_3

FROM master 2 WHERE value_3 LIKE ’%C%

AND (

AND (

value 4 LIKE ’A%OR value 4 LIKE ’B%OR value 4 LIKE ’C%OR value 4 LIKE ’D%OR value 4 LIKE ’E%

value 5 LIKE ’0%OR value 5 LIKE ’b%OR value 5 LIKE ’0%OR value 5 LIKE ’7%OR value 5 LIKE ’Z%

ANDAND

char_char_

BETWEENBETWEEN

a ’a ’

ANDAND OR char_

ANDAND ( char_3

OR char_3 OR char_3

AND date_1 IN (SELECT

FROM WHERE

BETWEEN ’a’ AND ’z’ BETWEEN ’A ’ AND ’Z’ BETWEEN ’0’ AND ’9’)

date_1 master 2date_1 BETWEEN TO_DATE

AND date_2 IN (SELECT

FROM WHERE

AND SYSDATE)

date_2 master 2date_2 BETWEEN TO_DATE

AND SYSDATE)

/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like ’%MASTER ALL JOIN 7%’ and optimizer cost > 1 order by last load time desc /exit

2 BETWEEN ’A ’

01-JAN-1970’,DD-MON-YYYY’)

01-JAN-1971’,DD-MON-YYYY’)

Page 387: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 379

/

— INDEXESM2_L2_T3_PK_IDXM3_L3_T3_CHAR_1_IDXM1_L2_T1_PK_IDXMASTER_1_PK_IDXMASTER_3_PK_IDXMASTER_2_CHAR_1_IDXMASTER_2_CHAR_3_IDXMASTER_2_DATE_2_IDXMASTER_2_VALUE_2_IDXMASTER_2_VALUE_4_IDXMASTER_2_VALUE_5_IDX

— GET_COSTdelete from plan table /explain planset statement id = ’A ’ for SELECT a.pk value,

b.pk value,c.pk value,d.pk value,e.pk value,f.pk value,g.pk value,h.pk value,i.pk value, j.pk value, k.pk value, l.pk value, m.pk value, n.pk value,o.pk value, p.pk value, q.pk value, r.pk value, s.pk value, t.pk value

FROM master 1 aJOIN master 2 b

ON (A.PK_VALUE = B.PK_VALUE) JOIN master 3 c

ON (B.PK_VALUE = C.PK_VALUE) JOIN master 1 l2 tab1 d

ON (d.pk value = a.pk value) JOIN master 1 l3 tab1 e

ON (e.pk value = a.pk value) JOIN master 1 l2 tab2 f

ON (f.pk value = a.pk value)

Page 388: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 380

WHERE

’9’)

UNIONSELECT

JOIN master 1 l3 tab2 gON (g.pk value = a.pk value)

JOIN master 1 l2 tab3 hON (h.pk value = a.pk value)

JOIN master 1 l3 tab3 iON (i.pk value = a.pk value)

JOIN master 2 l2 tab1 jON (j.pk value = b.pk value)

JOIN master 2 l3 tab1 kON (k.pk value = j.pk value)

JOIN master 2 l2 tab2 lON (l.pk value = b.pk value)

JOIN master 2 l3 tab2 mON (m.pk value = l.pk value)

JOIN master 2 l2 tab3 nON (n.pk value = b.pk value)

JOIN master 2 l3 tab3 oON (o.pk value = n.pk value)

JOIN master 3 l2 tab1 pON (p.parent link = c.pk value)

JOIN master 3 l3 tab1 qON (q.parent link = p.pk value)

JOIN master 3 l2 tab2 rON (r.parent link = c.pk value)

JOIN master 3 l3 tab2 sON (s.parent link = r.pk value)

JOIN master 3 l2 tab3 tON (t.parent link = c.pk value)

JOIN master 3 l3 tab3 uON (u.parent link = t.pk value) u.char_1 BETWEEN ’A ’ AND ’Z’

AND (u.char_2 BETWEEN ’A ’ AND ’Z’ OR u.char_2 BETWEEN ’1’

AND a.date_1 BETWEEN TO_DATE (’01-FEB-1983’, ’DD-MON-YYYYAND SYSDATE

NULL, pk value,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,

AND

Page 389: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 381

NULL, NULL, NULL, NULL

FROM masterWHERE value_1 IN (SELECT value_1

FROM master 2 WHERE value_1 LIKE

AND value_2 IN (SELECT value_2FROM master 2

WHERE value_2 LIKE AND value_3 IN (SELECT value_3

FROM master 2 WHERE value_3 LIKE

AND (

YYYY’

17\QA%

AND (

value _4 LIKE ’AOR value _4 LIKE ’BOR value _4 LIKE ’COR value _4 LIKE ’DOR value _4 LIKE ’E

value _5 LIKE ’0OR value _5 LIKE ’bOR value _5 LIKE ’0OR value _5 LIKE ’7OR value _5 LIKE ’Z

OR char_2 z’Z ’9’)

AND (char_1 BETWEEN ’a’ AND ’z’AND (char_2 BETWEEN ’a’ AND ’z’AND ( char_3 BETWEEN ’a ’ AND

OR char_3 BETWEEN ’A ’ AND OR char_3 BETWEEN ’0’ AND

AND date_1 IN(SELECT date_1

FROM master 2 WHERE date_1 BETWEEN TO_DATE

AND SYSDATE)AND date_2 IN

(SELECT date_2 FROM master 2

WHERE date 2 BETWEEN TO DATE

BETWEEN ’A ’ AND

01-JAN-197 0' ' DD-MON-

01-JAN-1971' ' DD-MON-YYYY’)

/select cost from plan table where statement id = ’A ’ and parent_id IS NULL /exit/

AND SYSDATE)

--TIME_COST set timing on

Page 390: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 382

select /*+ MASTER_ALL_JOIN_8*/a.pk value,b.pk value,c.pk value,d.pk value,e.pk value,f.pk value,g.pk value,h.pk value,i.pk value, j.pk value, k.pk value,l.pk value, m.pk value, n.pk value, o.pk value, p.pk value, q.pk value, r.pk value, s.pk value, t.pk value

FROM master 1 aJOIN master 2 b

ON (a .pk"VALUE = B.. PKJOIN master 3 c

ON (B.PK VALUE = C.. PKJOIN master 1 l2 tab1 d

ON (d.pk value = a.. pkJOIN master ~1 l3 tab1 e

ON (e.pk value = a.. pkJOIN master ~1 l2 tab2 f

ON (f.pk value = a.. pkJOIN master ~1 l3 tab2 g

ON (g.pk value = a.. pkJOIN master ~1 l2 tab3 h

ON (h.pk value = a.. pkJOIN master ~1 l3 tab3 i

ON (i.pk value = a.. pkJOIN master 2_l2_tab1 j

ON (j.pk value = b.. pkJOIN master 2_l3_tab1 k

ON (k.pk value = j.. pkJOIN master 2_l2_tab2 l

ON (l.pk value = b.. pkJOIN master 2_l3_tab2 m

ON (m.pk value = l.. pkJOIN master 2_l2_tab3 n

ON (n.pk value = b.. pkJOIN master 2_l3_tab3 o

ON (o.pk value = n.. pkJOIN master ~3 l2 tab1 p

ON (p.parent link == c

VALUE)

VALUE)

value)

value)

value)

value)

value)

value)

value)

value)

value)

value)

value)

value)

pk value)

Page 391: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 383

JOIN master 3 l3 tab1 qON (q.parent link = p.pk value)

JOIN master 3 l2 tab2 rON (r.parent link = c.pk value)

JOIN master 3 l3 tab2 sON (s.parent link = r.pk value)

JOIN master 3 l2 tab3 tON (t.parent link = c.pk value)

JOIN master 3 l3 tab3 uON (u.parent link = t.pk value)

WHERE u.char_1 BETWEEN ’A ’ AND ’Z’AND (u.char_2 BETWEEN ’A ’ AND ’Z’ OR u.char_2 BETWEEN ’1’

' 9’)AND a.date_1 BETWEEN TO_DATE (’01-FEB-1983’, ’DD-MON-YYYY'

AND SYSDATEUNIONSELECT NULL,

pk value,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL

FROM master 2 WHERE value_1 IN (SELECT value_1

FROM master 2 WHERE value_1 LIKE ’%A%’)

AND value_2 IN (SELECT value_2FROM master 2

WHERE value_2 LIKE ’%B%’)AND value_3 IN (SELECT value_3

FROM master 2 WHERE value_3 LIKE ’%C%’)

AND ( value_4 LIKE ’A%OR value_4 LIKE ’B%OR value_4 LIKE ’C%OR value_4 LIKE ’D%OR value_4 LIKE ’E%

AND ( value 5 LIKE ’0%

AND

Page 392: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 384

YYYY’

OR char_2 z’Z ’9’)

YYYY’

/exit/

OR value 5 LIKE ’b%’OR value_5 LIKE ’0%’OR value_5 LIKE ’7%’OR value_5 LIKE ’Z%’)

AND (char_1 BETWEEN ’a’ AND ’z’AND (char_2 BETWEEN ’a’ AND ’z’AND ( char_3 BETWEEN ’a ’ AND

OR char_3 BETWEEN ’A ’ AND OR char_3 BETWEEN ’0’ AND

AND date_1 IN(SELECT date_1

FROM master 2 WHERE date_1 BETWEEN TO_DATE

AND SYSDATE)AND date_2 IN

(SELECT date_2 FROM master 2

WHERE date_2 BETWEEN TO_DATE

AND SYSDATE)

BETWEEN ’A ’ AND

01-JAN-197 0'

01-JAN-1971'

' DD-MON-

'DD-MON-

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like ’%MASTER ALL JOIN 8%’ and optimizer cost > 1 order by last load time desc /exit/

— INDEXESMASTER_2_CHAR_1_IDXMASTER_2_CHAR_2_IDXMASTER_2_CHAR_3_IDXMASTER_2_DATE_1_IDXMASTER_2_DATE_2_IDXMASTER_2_VALUE_1_IDXMASTER_2_VALUE_2_IDXMASTER_2_VALUE_3_IDXMASTER_2_VALUE_4_IDXMASTER 2 VALUE 5 IDX

— GET COST

Page 393: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 385

delete from plan table /explain planset statement id = ’A ’ for select count(*) from master 2where value 1 in (select value 1 from master 2 where va ’%A%’) _and value 2 in (select value 2 from master 2 where va

lue 1 like

lue 2 like

and value 3 in (select value 3 from master 2 where value 3 like *C%’)

likelikelikelikelikelike

A% B% C% ' D%’ E%' 0%

orororor

or value 5 like Z%’)

b% or value 5 like ’0%

or char 2 between or char 3 between

A ’A ’

and ’Z’) and ’Z’ or

1 between

2 between

and (value 4 value 4 value 4 value 4 value 4

and (value 5 value 5 like ’7%’ or value 5 like

and (char 1 between ’a’ and ’z’ and (char 2 between ’a’ and ’z’ and (char 3 between ’a’ and ’z’

char 3 between ’0’ and ’9’)and date 1 in (select date 1 from master 2 where date

to date(’01-JAN-197 0’,’DD-MON-YYYY’) and sysdate)and date 2 in (select date 2 from master 2 where date

to date(’01-JAN-1971’,’DD-M0N-YYYY’) and sysdate)/select cost from plan table where statement id = ’A ’ and parent id IS NULL /exit/— TIME_C0ST set timing onselect /*+ MASTER_2_QUERY*/count(*)from master 2where value 1 in (select value 1 from master 2 where value 1 like ’%A%’) _and value 2 in (select value 2 from master 2 where value 2 like

’%B%’)and value 3 in (select value 3 from master 2 where value 3 like

’%C%’)and (value 4 like ’A%’ or

value 4 like ’B%’ orvalue 4 like ’C% ’ orvalue 4 like ’D%’ orvalue 4 like ’E%’)

or

Page 394: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 386

and (value 5 like ’0%’ or value 5 like ’b%’ or value 5 like ’0%’ value 5 like ’7%’ or value 5 like ’Z%’)

and (char 1 between ’a’ and ’z’)and (char 2 between ’a’ and ’z’ or char 2 between ’A ’ and ’Z’) and (char 3 between ’a’ and ’z’ or char 3 between ’A ’ and ’Z’ or

char_3 between ’0’ and ’9’)and date 1 in (select date 1 from master 2 where date 1 between

to date(’01-JAN-197 0’,’DD-M0N-YYYY’) and sysdate)and date 2 in (select date 2 from master 2 where date 2 between

to date(’01-JAN-1971’,’DD-M0N-YYYY’) and sysdate)/exit/

— CR0SS_CHECK_C0ST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like ’%MASTER 2 QUERY%’ and optimizer cost > 1 order by last load time desc /exit/

— INDEXESMASTER_3_CHAR_1_IDXMASTER_3_CHAR_2_IDXMASTER_3_CHAR_3_IDXMASTER_3_NUM_1_IDXMASTER_3_NUM_2_IDXMASTER_3_NUM_3_IDXMASTER_3_NUM_4_IDXMASTER_3_NUM_5_IDXMASTER_3_VALUE_1_IDXMASTER_3_VALUE_2_IDX

— GET_C0STdelete from plan table /explain planset statement id = ’A ’ for select count(*) from master 3where num 1 between 1 and 987 68000

and num 2 between 28 and 291381400 and num 3 >= (select min(num 3) from master 3) and num 4 <= (select avg(num 4) from master 3) and num 5 <= (select max(num 5) from master 3)

or

Page 395: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 387

and (char 1 between ’a’ and ’z’)and (char 2 between ’a’ and ’z’ or char 2 between ’A ’ and and (char 3 between ’a’ and ’z’ or char 3 between ’A ’ and

char_3 between ’0’ and ’9’)and value 1 in (select value 1 from master 3 where value 1

’%A%’ or value_1 like ’%B%’) - - -and value 2 in (select value 2 from master 3 where value 2

’%C%’)/select cost from plan table where statement id = ’A ’ and parent_id IS NULL /exit/--TIME_C0ST set timing onselect /*+ MASTER_3_QUERY*/count(*)from master 3where num 1 between 1 and 987 68000

and num 2 between 28 and 291381400 and num 3 >= (select min(num 3) from master 3) and num 4 <= (select avg(num 4) from master 3) and num 5 <= (select max(num 5) from master 3) and (char 1 between ’a’ and ’z’)and (char 2 between ’a’ and ’z’ or char 2 between ’A ’ and and (char 3 between ’a’ and ’z’ or char 3 between ’A ’ and

char_3 between ’0’ and ’9’)and value 1 in (select value 1 from master 3 where value 1

’%A%’ or value_1 like ’%B%’) - - -and value 2 in (select value 2 from master 3 where value 2

’%C%’)/exit/

— CR0SS_CHECK_C0ST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like ’%MASTER 3 QUERY%’ and optimizer cost > 1 order by last load time desc /exit/

’Z’)’Z’ or

like

like

’Z’)’Z’ or

like

like

Page 396: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 388

--INDEXESMASTER 1 CHAR_1 IDX

_1T2L1M CHAR_1 IDX

_1T3L3M CHAR_1 IDX

_2T2L1M VALUE 1_IDX

_3T_3L_1M VALUE 2_IDXMASTER 2 DATE_1 IDX

_1T2L2M DATE_2 IDX

_3T_3L_2M CHAR_1 IDXMASTER 3 NUM 1 IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for SELECT MAX (counter)

FROM (SELECT COUNT (*) counterFROM master_1

WHERE char_1 BETWEEN 'A' ANDUNIONSELECT COUNT (*) counter

FROM master_1_l2_tab1WHERE char_1 BETWEEN 'A' AND

UNIONSELECT COUNT (*) counter

FROM master_1_l3_tab1WHERE char_1 BETWEEN 'A' AND

UNIONSELECT COUNT (value 1) counter

FROM master_1_l2_tab2WHERE value 1 IN

('8vI57wmjS','HQyF3 6601','wYSrlb3EB','x91rimHk4','nFN1A0s9l','gx513eSJH','e5lCRBSpr','1mV9SIBJp','TJ95Q2j87','phl2Jg5Q3')

UNIONSELECT COUNT (value_2)

FROM master 1 l3 tab3 WHERE value_2 LIKE '%a%' OR value_2 LIKE '%b%'

UNIONSELECT COUNT (date_1)

FROM master 2WHERE date_1 BETWEEN TO_DATE ('14-JUL-2010', 'DD-MON-YYYY')

AND TO_DATE ('13-AUG-2 011', 'DD-MON-YYYY')UNION

Page 397: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 389

SELECT COUNT (date_2)FROM master 2 l2 tab1

WHERE date_2 BETWEEN TO_DATE ('14-JAN-2010', 'DD-MON-YYYY')AND TO_DATE ('13-FEB-2011', 'DD-MON-YYYY')

UNIONSELECT COUNT (*)

FROM master 2 l3 tab3 WHERE char_1 IN ('A', '1', '2', '3')

UNIONSELECT COUNT (*)

FROM master 3 a JOIN

master 3 l2 tab3 b ON (a.pk value = b.parent link)

WHERE a.num_1 BETWEEN 1123 AND 3829193 OR b.comp_1 BETWEEN 'A' AND 'Z')

/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_COST set timing onselect /*+ GENERAL_JOIN_1*/MAX (counter)

FROM (SELECT COUNT (*) counterFROM master_1

WHERE char_1 BETWEEN 'A' ANDUNIONSELECT COUNT (*) counter

FROM master_1_l2_tab1WHERE char_1 BETWEEN 'A' AND

UNIONSELECT COUNT (*) counter

FROM master_1_l3_tab1WHERE char_1 BETWEEN 'A' AND

UNIONSELECT COUNT (value 1) counter

FROM master_1_l2_tab2WHERE value 1 IN

('8vI57wmjS', 'HQyF3 6601', 'wYSrlb3EB', 'x91rimHk4', 'nFN1A0s9l', 'gx513eSJH', 'e5lCRBSpr', '1mV9SIBJp',

Page 398: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 390

/exit/

UNIONSELECT

FROMWHERE

UNIONSELECT

FROMWHERE

UNIONSELECT

FROMWHERE

UNIONSELECT

FROMWHERE

UNIONSELECT

FROM

WHERE

'TJ95Q2j87','phl2Jg5Q3')

COUNT (value_2) master 1 l3 tab3 value 2 LIKE '%a% OR value 2 LIKE I k Cb%

14-JUL-2 010' 13-AUG-2011'

14-JAN-2 010' 13-FEB-2011'

COUNT (date_1) master 2date_1 BETWEEN TO_DATE

AND TO_DATE

COUNT (date_2) master 2 l2 tab1 date_2 BETWEEN TO_DATE

AND TO_DATE

COUNT (*)master 2 l3 tab3char 1_IN ('a ', '1', '2

COUNT (*)master 3 a

JOINmaster 3 l2 tab3 b

ON (a.pk value = b.parent link)a.num_1 BETWEEN 1123 AND 3829193

OR b.comp 1 BETWEEN 'A' AND 'Z')

'DD-MON-YYYY''DD-MON-YYYY'

'DD-MON-YYYY''DD-MON-YYYY'

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%GENERAL JOIN 1%' and optimizer cost > 1 order by last load time desc /exit/

--INDEXESMASTER_1_VALUE_1_IDX MASTER_1_CHAR_1_IDX MASTER_1_DATE_1_IDX MASTER_1_DATE_2_IDX MASTER 2 VALUE 1 IDX

Page 399: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 391

MASTER_3_PK_IDXM3_L3_T1_CHAR_1_IDXM3_L2_T2_PK_IDXM3_L3_T3_PK_IDXMASTER_3_NUM_1_IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for SELECT MAX (counter)

FROM (SELECT COUNT (*) counterFROM master 1 a JOIN master 2 b ON (a.master 2 link =

b.pk value)WHERE a.date_1 IN

(SELECT date_1 FROM master 1

WHERE date_1 BETWEEN TO_DATE ('01-JAN-197 0','DD-MON-YYYY')

AND SYSDATE)AND a.date_2 IN

(SELECT date_2 FROM master 1

WHERE date_2 BETWEEN TO_DATE ('01-JAN-1971','DD-MON-YYYY')

AND SYSDATE)AND a.char_1 IN (SELECT char_1

FROM master 1 WHERE char_1 BETWEEN 'A' AND 'Z')

AND (a.value_1 LIKE 'a%' OR a.value_1 LIKE 'b%')AND (B.VALUE_1 LIKE '%A%' OR B.VALUE_1 LIKE '%b%')

UNIONSELECT COUNT (*) counter

FROM master 3 l2 tab1 a JOIN

master 3 l3 tab1 b ON (b.parent link = a.pk value)

WHERE a.parent_link NOT IN (SELECT pk_value FROMmaster 3)

AND B.CHAR_1 = 'a'UNIONSELECT COUNT (*) counter

FROM master 3 l2 tab2 a JOIN

master 3 l3 tab2 b ON (b.parent link = a.pk value)

WHERE a.pk_value NOT IN (SELECT pk_valueFROM master 3 l2 tab2

WHERE MOD (pk_value, 2) = 1)UNIONSELECT COUNT (*) COUNTER

Page 400: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 392

FROM master 3 l2 tab3 a JOIN master 3 b

ON (a.parent link = b.pk value)JOIN master 3 l3 tab3 c

ON (C.PARENT_LINK = b.pk_value)WHERE a.pk_value NOT IN (SELECT pk_value

FROM master 3 l3 tab3 WHERE MOD (pk_value, 2) = 4)

AND b.num_1 BETWEEN 2355 AND 234445)/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_COST set timing onselect /*+ GENERAL_JOIN_2*/MAX (counter)

FROM (SELECT COUNT (*) counterFROM master 1 a JOIN master 2 b ON (a.master 2 link =

b.pk value)WHERE a.date_1 IN

(SELECT date_1 FROM master 1

WHERE date_1 BETWEEN TO_DATE ('01-JAN-197 0','DD-MON-YYYY')

AND SYSDATE)AND a.date_2 IN

(SELECT date_2 FROM master 1

WHERE date_2 BETWEEN TO_DATE ('01-JAN-1971','DD-MON-YYYY')

AND SYSDATE)AND a.char_1 IN (SELECT char_1

FROM master 1 WHERE char_1 BETWEEN 'A' AND 'Z')

AND (a.value_1 LIKE 'a%' OR a.value_1 LIKE 'b%')AND (B.VALUE_1 LIKE '%A%' OR B.VALUE_1 LIKE '%b%')

UNIONSELECT COUNT (*) counter

FROM master 3 l2 tab1 a JOIN

master 3 l3 tab1 b ON (b.parent link = a.pk value)

WHERE a.parent~link NOT IN_ (SELECT pk_value FROMmaster 3)

AND B.CHAR_1 = 'a'UNION

Page 401: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 393

SELECT COUNT (*) counterFROM master 3 l2 tab2 a

JOINmaster 3 l3 tab2 b

ON (b.parent link = a.pk value)WHERE a.pk_value NOT IN (SELECT pk_value

FROM master 3 l2 tab2 WHERE MOD (pk_value, 2) = 1)

UNIONSELECT COUNT (*) COUNTER

FROM master 3 l2 tab3 a JOIN master 3 b

ON (a.parent link = b.pk value)JOIN master 3 l3 tab3 c

ON (C.PARENT_LINK = b.pk_value)WHERE a.pk_value NOT IN (SELECT pk_value

FROM master 3 l3 tab3 WHERE MOD (pk_value, 2) = 4)

AND b.num_1 BETWEEN 2355 AND 234445)/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%GENERAL JOIN 2%' and optimizer cost > 1 order by last load time desc /exit/

--INDEXESM1_L2_T3 DATE_1_IDXM1_L3_T3 CHAR_1_IDXM1_L2_T3 DATE_1_IDXMASTER_1_PK_IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for SELECT COUNT (*) counter

FROM master 1 aJOIN master 1 l2 tab3 b

ON (a.pk value = b.parent link)

Page 402: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 394

JOIN master 1 l3 tab3 cON (b.pk value = c.parent link)

where C.PK_VALUE NOT IN (SELECT DISTINCT master_2_link FROM master_1) and c.char 1 between 'A' and 'B'AND b.date_1 = to_date('JAN-01-2 012','MON-DD-YYYY') and mod(A.PK_VALUE, 2) = 6/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_COST set timing onselect /*+ GENERAL_JOIN_3*/COUNT (*) counter

FROM master 1 aJOIN master 1 l2 tab3 b

ON (a.pk value = b.parent link)JOIN master_1_l3_tab3 c

ON (b.pk value = c.parent link) where C.PK_VALUE NOT IN (SELECT DISTINCT master_2_link FROM master_1) and c.char 1 between 'A' and 'B'AND b.date_1 = to_date('JAN-01-2 012','MON-DD-YYYY') and mod(A.PK_VALUE, 2) = 6/exit/— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%GENERAL JOIN 3%' and optimizer cost > 1 order by last load time desc /exit/

--INDEXESM1_L2_T1 CHAR_1 IDXM1_L3_T1 DATE_1 IDXM2_L2_T1 DATE_7 IDXM2_L3_T1 CHAR_2 IDXM3_L2_T1 NUM COMP 1M3_L3_T1 VALUE 1_IDX

Page 403: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 395

M3_L3_T2_VALUE_1_IDX M3_L3_T2_VALUE_2_IDX MASTER_3_NUM_1_IDX MASTER_3_NUM_2_IDX MASTER 3 NUM 3 IDX

— GET_COSTdelete from plan table /explain plan set statement id = 'A' SELECT MAX (counter)

FROM (SELECT COUNT (*) FROM master

JOIN

for

counter 1 l2 tab1 a

ONmaster_1_l3_tab1 b (a.pk value = b.parent link)

WHERE A.CHAR_1 AND B.DATE 1

YYYY'

BETWEEN 'a' AND BETWEEN TO_DATE

AND SYSDATE

x'31-MAR-2012 DD-MON-

UNIONSELECT COUNT (*) counter

FROM master 2 l2 tab1 a JOIN

master_2_l3_tab1 b ON (a.pk value = b.parent link)

A.DATE 7 BETWEEN TO DATE ('WHERE 31-MAR-2012 DD-MON-YYYY'

C'AND B.CHAR 2 IN

AND SYSDATE ( 'a', 'b', 'c' A'

D'UNIONSELECT COUNT (*) counter

FROM master 3 l2 tab1 a JOIN

master 3 l3 tab1 b ON (a.pk value = b.parent link)

WHERE A.NUM_COMP_1 BETWEEN 39283 AND 283914AND b.value_1 IN

('3K713 9V6ai''9JUPS61wI0''7vS97etdUD''xd5Insf25s''5 60 6Y4QVT7''g3fwyao83f''jTnCRknVIl''IjjIc1dnkP''5EE969PSdh''QTjGnmN2Qt''6f318Xnytf''Edpf5S3ql8'

Page 404: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 396

'Hm1I3 0DT8f','uR25h2u03F','tV3nDnUuUu')

UNIONSELECT COUNT (*) counter

FROM master 3 l2 tab2 a JOIN

master 3 l3 tab2 b ON (a.pk value = b.parent link)

WHERE b.value_1 IN('IY9UaY1N98','6cHk2mN8L5','UbrrO55FUW','9WVAyW2y6u','k4VG9uAmJ5','2 0otsii38m','RNQ9irc26R','l7VdgWe22R','KI382JQ1kP','jMcGoxWuGM','tlM3g02MTu','7iImx0h2b5','3ywB17VLhl','iq1eAID9HI','30A1p977M3')

AND b.value_2 IN('NRqr6oSh4E','Sc1p45Hyh1','nHl3k615G7','rFLvlqBfWp','5TFBekA13m','xb7leIyAqn','BJ5iG187FE','dC837 0aL5K','bO3TRLK0Bq','107R65vFJd','sXeIi9pyHg','X5BXSEA6A1','We5SWDd5pW','5g5A0F71e4','3CQvfkhIe6','xbatnyv0IR')

UNIONSELECT COUNT (*) counter

FROM master 3 aJOIN master 3 l2 tab3 b

ON (a.pk value = b.parent link) JOIN master 3 l3 tab3 c

ON (b.pk value = c.parent link) WHERE ( A.NUM_1 BETWEEN 6000 AND 7000

OR A.NUM_2 BETWEEN 7 0 00 AND 8 00 0 OR A.NUM 3 BETWEEN 8000 AND 9000))

Page 405: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 397

/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_COST set timing onselect /*+ GENERAL_JOIN_4*/MAX (counter)

FROM (SELECT COUNT (*) counterFROM master 1 l2 tab1 a

JOINmaster_1_l3_tab1 b

ON (a.pk value = b.parent link)WHERE A.CHAR_1

AND B.DATE 1YYYY'

BETWEEN 'a' AND BETWEEN TO_DATE

AND SYSDATE

x'31-MAR-2012 DD-MON-

UNIONSELECT COUNT (*) counter

FROM master 2 l2 tab1 a JOIN

master_2_l3_tab1 b ON (a.pk value = b.parent link)

A.DATE 7 BETWEEN TO DATE ('WHERE 31-MAR-2012 DD-MON-YYYY'

C'AND B.CHAR 2 IN

AND SYSDATE ( 'a', 'b', 'c' A'

D'UNIONSELECT COUNT (*) counter

FROM master 3 l2 tab1 a JOIN

master 3 l3 tab1 b ON (a.pk value = b.parent link)

WHERE A.NUM_COMP_1 BETWEEN 39283 AND 283914AND b.value_1 IN

('3K713 9V6ai''9JUPS61wI0''7vS97etdUD''xd5Insf25s''5 60 6Y4QVT7''g3fwyao83f''jTnCRknVIl''IjjIc1dnkP''5EE969PSdh''QTjGnmN2Qt''6f318Xnytf'

Page 406: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 398

'Edpf5S3ql8','Hm1I3 0DT8f','uR25h2u03F','tV3nDnUuUu')

UNIONSELECT COUNT (*) counter

FROM master 3 l2 tab2 a JOIN

master 3 l3 tab2 b ON (a.pk value = b.parent link)

WHERE b.value_1 IN _('IY9UaY1N98','6cHk2mN8L5','UbrrO55FUW','9WVAyW2y6u','k4VG9uAmJ5','2 0otsii38m','RNQ9irc26R','l7VdgWe22R','KI382JQ1kP','jMcGoxWuGM','tlM3g02MTu','7iImx0h2b5','3ywB17VLhl','iq1eAID9HI','30A1p977M3')

AND b.value_2 IN('NRqr6oSh4E','Sc1p45Hyh1','nHl3k615G7','rFLvlqBfWp','5TFBekA13m','xb7leIyAqn','BJ5iG187FE','dC837 0aL5K','bO3TRLK0Bq','107R65vFJd','sXeIi9pyHg','X5BXSEA6A1','We5SWDd5pW','5g5A0F71e4','3CQvfkhIe6','xbatnyv0IR')

UNIONSELECT COUNT (*) counter

FROM master 3 aJOIN master 3 l2 tab3 b

ON (a.pk value = b.parent link) JOIN master 3 l3 tab3 c

ON (b.pk value = c.parent link) WHERE ( A.NUM_1 BETWEEN 6000 AND 7000

OR A.NUM 2 BETWEEN 7000 AND 8000

Page 407: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 399

OR A.NUM_3 BETWEEN 8000 AND 9000))/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%GENERAL JOIN 4%' and optimizer cost > 1 order by last load time desc /exit/

--INDEXESMASTER_1_CHAR_3_IDXMASTER_1_DATE_1_IDXMASTER_1_DATE_3_IDXMASTER_1_DATE_4_IDXMASTER_1_VALUE_1_IDXMASTER_1_VALUE_2_IDXMASTER_3_NUM_1_IDXMASTER_3_NUM_2_IDXMASTER_3_NUM_3_IDXMASTER_3_NUM_4_IDXMASTER_3_NUM_5_IDXMASTER 3 CHAR 3 IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for SELECT SUM (counter),

AVG (counter),MAX (counter),MIN (counter)

FROM (SELECT COUNT (*) counter FROM master 3

WHERE ( num_1 BETWEEN 1 AND 100OR num_2 BETWEEN 1 AND 1000OR num_3 BETWEEN 1 AND 10000OR num_4 BETWEEN 1 AND 100000OR num_5 BETWEEN 1 AND 1000000

AND (OROR

char_char_char_

1 BETWEEN2 BETWEEN3 BETWEEN

A'A'A'

AND 'D' AND 'Y' AND 'M'

Page 408: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 400

UNIONSELECT COUNT (*

FROM master 2 WHERE

counter

value 1 IN (SELECT value 1FROM master 2

WHERE value 1 LIKEAND value 2 IN (SELECT value_2

FROM master 2WHERE value_2 LIKE

AND value 3 IN (SELECT value_3FROM master 2

WHERE value_3 LIKE

AND

i. 7\ £A%

C%AND

AND

value 4 LIKE 'A%OR value 4 LIKE 'B%OR value 4 LIKE 'C%OR value 4 LIKE 'D%OR value 4 LIKE 'E%

value 5 LIKE '0%OR value 5 LIKE 'b%OR value 5 LIKE '0%OR value 5 LIKE '7%OR value 5 LIKE 'Z%

ANDAND

AND

char_1char_2

BETWEENBETWEEN

a'a'

ANDAND OR char_

( char_3 BETWEEN 'a' AND 'z'OR char_3 BETWEEN 'A' AND 'Z'OR char_3 BETWEEN '0' AND '9')

AND date_1 IN(SELECT date_1

FROM master 2 WHERE date_1 BETWEEN TO_DATE

AND SYSDATE)AND date_2 IN

(SELECT date_2 FROM master 2

WHERE date_2 BETWEEN TO_DATE

AND SYSDATE)/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

— TIME_COST set timing onselect /*+ GENERAL QUERY 5*/

2 BETWEEN 'A'

01-JAN-1970',DD-MON-YYYY')

01-JAN-1971',DD-MON-YYYY')

Page 409: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 401

SUMAVGMAXMIN

counter)counter)counter)counter)

FROM (SELECT COUNT (*) FROM master 3

counter

WHERE ( num_1 BETWEEN 1 AND 10 0OR num_2 BETWEEN 1 AND 1000 OR num_3 BETWEEN 1 AND 10000 OR num_4 BETWEEN 1 AND 100000 OR num_5 BETWEEN 1 AND 1000000)

AND ( char_1 BETWEEN 'A'OR char_2 BETWEEN OR char_3 BETWEEN

A'A'

ANDANDAND

D'Y'M'

UNIONSELECT COUNT (*)

FROM master 2counter

WHERE value_1 IN (SELECT value_1FROM master 2

WHERE value_1 LIKE '%A% AND value_2 IN (SELECT value_2

FROM master 2 WHERE value_2 LIKE '%B%

AND value_3 IN (SELECT value_3FROM master 2

WHERE value 3 LIKE '%C%AND ( value 4 LIKE 'A%

OR value 4 LIKE 'B%OR value 4 LIKE 'C%OR value 4 LIKE 'D%OR value 4 LIKE 'E%

AND ( value 5 LIKE '0%OR value 5 LIKE 'b%OR value 5 LIKE '0%OR value 5 LIKE '7%OR value 5 LIKE 'Z%

AND

ANDAND

AND

char_1char_2

BETWEENBETWEEN

a'a'

ANDAND OR char_

( char_3 BETWEEN 'a' AND 'z'OR char_3 BETWEEN 'A' AND 'Z'OR char_3 BETWEEN '0' AND '9')

AND date_1 IN(SELECT date_1

FROM master 2 WHERE date_1 BETWEEN TO_DATE

AND SYSDATE)AND date_2 IN

(SELECT date_2 FROM master 2

WHERE date_2 BETWEEN TO_DATE

2 BETWEEN 'A'

01-JAN-1970',DD-MON-YYYY')

01-JAN-1971',

Page 410: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 402

'DD-MON-YYYY')AND SYSDATE))

/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%GENERAL QUERY 5%' and optimizer cost > 1 order by last load time desc /exit/

--INDEXESMASTER_2_PK_IDXMASTER_3_PK_IDXM3_L2_T1_NUM_COMP_1_IDXMASTER_3_NUM_1_IDXMASTER_2_CHAR_1_IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for SELECT count(*)

FROM master 3 l2 tab1 a, master 3 b, master 2 c WHERE A.PARENT_LINK = b.pk_value

AND B.MASTER_2_LINK = c.pk_value AND A.NUM_COMP_1 BETWEEN 90 AND 95 00 0 AND B.NUM_1 IN

(155449580,643538844,267005443,149103222,134317259,226229117,975327780,811720886,73512047)

AND C.CHAR_1 IN ('L','i','5','9',

Page 411: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 403

'm','W','J','i','l','A','B','C','D','E','F','G')

/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_COST set timing onselect /*+ GENERAL_QUERY_6*/ count(*)

FROM master 3 l2 tab1 a, master 3 b, master 2 c WHERE A.PARENT_LINK = b.pk_value

AND B.MASTER_2_LINK = c.pk_value AND A.NUM_COMP_1 BETWEEN 90 AND 95 00 0 AND B.NUM_1 IN

(155449580,643538844,267005443,149103222,134317259,226229117,975327780,811720886,73512047)

AND C.CHAR_1 IN ('L','i','5','9','m','W','J','i','l','A','B','C',

Page 412: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 404

'D','E','F','G')

/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%GENERAL QUERY 6%' and optimizer cost > 1 order by last load time desc /exit/

--INDEXESMASTER_2_DATE_2_IDXMASTER_3_CHAR_1_IDXM1_L3_T1_VALUE_1_IDXMASTER_3_VALUE_2_IDXMASTER_3_PK_IDXMASTER_2_PK_IDXMASTER_1_DATE_2_IDXMASTER_1_DATE_1_IDXMASTER_3_LINKER

— GET_COSTdelete from plan table /explain planset statement id = 'A' for SELECT COUNT (*)

FROM master 1 d JOIN master 3 e ON (d.pk value = e.pk value) WHERE (d.date_1) = TO_DATE ('27-JUN-2010', 'DD-MON-YYYY')

AND (d.date_2) = TO_DATE ('22-DEC-1993', 'DD-MON-YYYY')AND EXISTS

(SELECT *FROM master 2

WHERE (date_2) = TO_DATE ('25-JAN-2009', 'DD-MON-YYYY'))

AND EXISTS(SELECT *

FROM master 3 WHERE char_1 = 'B')

AND EXISTS

Page 413: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 405

(SELECT *FROM master 1 l2 tab1 a

JOINmaster 1 l3 tab1 b

ON (a.pk value = b.parent link)WHERE B.VALUE_1 IN

('WvNR99AULn''R7 5Bv2TRef''4cEThl2Mm6''7u3X162vjl''1NoqnQaYXe''uU43uKAUUL''0T63MKf8 5 8''4MG191Y3TC''6Lww0T7NRo''O1w6WkXDU5'))

AND EXISTS(SELECT value_2

FROM master 3 WHERE value_2 IN

('e2Qcse48Gp','6e8nTb1FyH','BA15ACOxO0','24Fg07idnW','5D91o0M1U9','twWaKStLGh','UY8u5 4Pu0P','ScUTql3w8 8'))

AND d.pk value IN (SELECT pk value FROM master 2)AND E.MASTER_1_LINK IN (SELECT master_2_link FROM master_

/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_COST set timing onselect /*+ GENERAL_QUERY_7*/COUNT (*)

FROM master 1 d JOIN master 3 e ON (d.pk value = e.pk value) WHERE (d.date_1) = TO_DATE ('27-JUN-2010', 'DD-MON-YYYY')

AND (d.date_2) = TO_DATE ('22-DEC-1993', 'DD-MON-YYYY')AND EXISTS

(SELECT *FROM master 2

WHERE (date_2) = TO_DATE ('25-JAN-2009', 'DD-MON-YYYY'))

AND EXISTS

Page 414: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 406

(SELECT *FROM master 3

WHERE char_1 = 'B')AND EXISTS

(SELECT *FROM master 1 l2 tab1 a

JOINmaster 1 l3 tab1 b

ON (a.pk value = b.parent link)WHERE B.VALUE_1 IN

('WvNR99AULn','R7 5Bv2TRef','4cEThl2Mm6','7u3X162vjl','1NoqnQaYXe','uU43uKAUUL','0T63MKf858','4MG191Y3TC','6Lww0T7NRo','O1w6WkXDU5'))

AND EXISTS(SELECT value_2

FROM master 3 WHERE value_2 IN

('e2Qcse48Gp','6e8nTb1FyH','BA15ACOxO0','24Fg07idnW','5D91o0M1U9','twWaKStLGh','UY8u5 4Pu0P','ScUTql3w8 8'))

AND d.pk value IN (SELECT pk value FROM master 2)AND E.MASTER_1_LINK IN (SELECT master_2_link FROM master_3)

/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%GENERAL QUERY 7%' and optimizer cost > 1 order by last load time desc /exit/

Page 415: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 407

— INDEXESMASTER_3_PK_IDXMASTER_2_PK_IDXMASTER_1_PK_IDXMASTER_3_LINKERMASTER_3_CHAR_1_IDXM3 L2 T1 NUM COMP 1 IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for SELECT COUNT (*)

FROM master 3 d join master 3 l2 tab1 e on (d.pk value = e.parent link)WHERE d.pk value >=

(SELECT AVG (C.MASTER_2_LINK)FROM master 1 c

WHERE c.pk value <=(SELECT AVG (B.MASTER_1_LINK)

FROM master 2 b WHERE b.pk_value >= (SELECT AVG (a.pk_value)

FROM master 3 a WHERE a.pk value / 2 >

5000)))and D.MASTER 2 LINK between 5000 and 5098 and d.char 1 between '1' and '9'

and e.num comp 1 between 343144008 and 343144015/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_COST set timing onselect /*+ GENERAL_QUERY_8*/COUNT (*)

FROM master 3 d join master 3 l2 tab1 e on (d.pk value = e.parent link)WHERE d.pk value >=

(SELECT AVG (C.MASTER_2_LINK)FROM master 1 c

WHERE c.pk value <=(SELECT AVG (B.MASTER_1_LINK)

FROM master 2 b WHERE b.pk_value >= (SELECT AVG (a.pk_value)

FROM master 3 a

Page 416: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 408

WHERE5000)))

and D.MASTER 2 LINK between 5000 and 5098 and d.char 1 between '1' and '9'

and e.num comp 1 between 343144008 and 343144015/exit/— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%GENERAL QUERY 8%' and optimizer cost > 1 order by last load time desc /exit/

--INDEXESMASTER_3_PK_IDXMASTER_2_PK_IDXMASTER_1_PK_IDXMASTER_3_LINKERMASTER_3_CHAR_1_IDXM3 L2 T1 NUM COMP 1 IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for SELECT COUNT (*)

FROM master 3 d join master 3 l2 tab1 e on (d.pk e.parent link)WHERE d.pk value >=

(SELECT AVG (C.MASTER_2_LINK)FROM master 1 c

WHERE c.pk value <=(SELECT AVG (B.MASTER_1_LINK)

FROM master 2 b WHERE b.pk_value >= (SELECT

FROMWHERE

5000)))and D.MASTER 2 LINK between 5000 and 5098 and d.char 1 between '1' and '9'

and e.num comp 1 between 343144008 and 343144015/

a.pk value / 2 >

value =

AVG (a.pk value) master 3 a a.pk value / 2 >

Page 417: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 409

select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_COST set timing onselect /*+ GENERAL_QUERY_8*/COUNT (*)

FROM master 3 d join master 3 l2 tab1 e on (d.pk value = e.parent link)WHERE d.pk value >=

(SELECT AVG (C.MASTER_2_LINK)FROM master 1 c

WHERE c.pk value <=(SELECT AVG (B.MASTER_1_LINK)

FROM master 2 b WHERE b.pk_value >= (SELECT AVG (a.pk_value)

FROM master 3 a WHERE a.pk value / 2 >

5000)))and D.MASTER 2 LINK between 5000 and 5098 and d.char 1 between '1' and '9'

and e.num comp 1 between 343144008 and 343144015/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%GENERAL QUERY 8%' and optimizer cost > 1 order by last load time desc /exit/

--INDEXESMASTER_4_CHAR_1_IDXMASTER_4_CHAR_2_IDXMASTER_4_CHAR_3_IDX

— GET_COSTdelete from plan table

Page 418: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 410

/explain plan set statement id = select sum(counter) from

A' for

AND 90)

AND 90)

'SELECT count(*) counter FROM master 4

WHERE char_1 IN (SELECT char_1FROM master 4

WHERE ASCII (char_3) BETWEEN 85

UNIONSELECT count(*) counter

FROM master 4 WHERE char_1 IN (SELECT char_2

FROM master 4 WHERE ASCII (char_1) BETWEEN 85

UNIONSELECT count(*) counter

FROM master 4 WHERE char_1 IN (SELECT char_3

FROM master 4 WHERE ASCII (char 2) BETWEEN 85

AND 90))/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_COSTset timing onselect /*+ MASTER_4_QUERYsum(counter)from

1*/

AND 90)

AND 90)

'SELECT count(*) counter FROM master 4

WHERE char_1 IN (SELECT char_1FROM master

WHERE ASCII (char 3) BETWEEN 85

UNIONSELECT count(*) counter

FROM master 4 WHERE char_1 IN (SELECT char_2

FROM master 4 WHERE ASCII (char BETWEEN 85

Page 419: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 411

UNIONSELECT count(*) counter

FROM master 4 WHERE char_1 IN (SELECT char_3

FROM master 4 WHERE ASCII (char_2) BETWEEN 85

AND 90))/exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%MASTER 4 QUERY 1%' and optimizer cost > 1 order by last load time desc /exit/

— INDEXESMASTER_4_CHAR_1_IDXMASTER_4_CHAR_2_IDXMASTER_4_CHAR_3_IDXMASTER_4_DATE_1_IDXMASTER_4_DATE_2_IDXMASTER_4_DATE_3_IDXMASTER_4_VALUE_1_IDXMASTER_4_VALUE_2_IDXMASTER_4_VALUE_3_IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for SELECT SUM (counter)

FROM (SELECT COUNT (*) counter FROM master 4

WHERE char_1 IN (SELECT char_1FROM master 4

WHERE ASCII (char_3) BETWEEN 85 AND 90)UNIONSELECT COUNT (*) counter

FROM master 4 WHERE char_1 IN (SELECT char_2

FROM master 4

Page 420: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 412

UNIONSELECT

FROMWHERE

UNIONSELECT

FROMWHERE

UNIONSELECT

FROMWHERE

WHERE ASCII (char_1) BETWEEN 85 AND 90)

COUNT (*) counter master 4char_1 IN (SELECT char_3

FROM master 4 WHERE ASCII (char_2) BETWEEN 85 AND 90)

COUNT (*) counter master 4 value 1 IN

(SELECT value_1 FROM master 4

WHERE value_1 IN('Waneta','Queenie','Shante','Barbera','Thalia','Kasie','Courtney','Pearlene','Hattie','Darrin','Marcellus','Kandi','Jenifer','Chanel','Aurelio',

'Felicia'))

COUNT (*) counter master 4 value_3 IN

(SELECT value_2 FROM master 4

WHERE value_2 IN('Waneta','Queenie','Shante','Barbera','Thalia','Kasie','Courtney','Pearlene','Hattie','Darrin','Marcellus','Kandi','Jenifer','Chanel','Aurelio',

Page 421: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 413

'Felicia'))UNIONSELECT COUNT (*) counter

FROM master 4 WHERE (value 1, value 2) IN

(SELECT value 3, value 3 FROM master 4

WHERE value_3 IN('Waneta','Queenie','Shante','Barbera','Thalia','Kasie','Courtney','Pearlene','Hattie','Darrin','Marcellus','Kandi','Jenifer','Chanel','Aurelio','Felicia'))

UNIONSELECT COUNT (*) counter

FROM master 4 WHERE date_2 BETWEEN (SELECT MIN (date_2)

AND (SELECT MIN (date_2)UNIONSELECT COUNT (*) counter

FROM master 4 WHERE date_2 NOT BETWEEN (SELECT MIN (date

AND (SELECT MIN (datemaster 4)

UNIONSELECT COUNT (

FROM master WHERE date_3

*) counter 4BETWEEN TO_DATE

AND SYSDATE'01-01­25)

■2000'

/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

— TIME_COST set timing onSELECT /*+ MASTER 4 QUERY 2*/

FROM master 4)+ 35 FROM master 4)

2) FROM master 4) 2) + 50 FROM

, 'DD-MM-YYYY')

Page 422: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 414

SUM (counter)FROM (SELECT COUNT (*) counter

FROM master 4 WHERE char_1 IN (SELECT char_1

FROM master 4 WHERE ASCII (char_3) BETWEEN 85 AND 90)

UNIONSELECT COUNT (*) counter

FROM master 4 WHERE char_1 IN (SELECT char_2

FROM master 4 WHERE ASCII (char_1) BETWEEN 85 AND 90)

UNIONSELECT COUNT (*) counter

FROM master 4 WHERE char_1 IN (SELECT char_3

FROM master 4 WHERE ASCII (char_2) BETWEEN 85 AND 90)

UNIONSELECT COUNT (*) counter

FROM master 4 WHERE value_1 IN

(SELECT value_1 FROM master 4

WHERE value_1 IN('Waneta','Queenie','Shante','Barbera','Thalia','Kasie','Courtney','Pearlene','Hattie','Darrin','Marcellus','Kandi','Jenifer','Chanel','Aurelio','Felicia'))

UNIONSELECT COUNT (*) counter

FROM master 4 WHERE value_3 IN

(SELECT value_2 FROM master 4

WHERE value_2 IN('Waneta','Queenie','Shante','Barbera',

Page 423: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 415

'Thalia','Kasie','Courtney','Pearlene','Hattie','Darrin','Marcellus','Kandi','Jenifer','Chanel','Aurelio','Felicia'))

UNIONSELECT COUNT (*) counter

FROM master 4 WHERE (value 1, value 2) IN

(SELECT value 3, value 3 FROM master 4

WHERE value_3 IN('Waneta','Queenie','Shante','Barbera','Thalia','Kasie','Courtney','Pearlene','Hattie','Darrin','Marcellus','Kandi','Jenifer','Chanel','Aurelio','Felicia'))

UNIONSELECT COUNT (*) counter

FROM master 4 WHERE date_2 BETWEEN (SELECT MIN (date_2)

AND (SELECT MIN (date_2)UNIONSELECT COUNT (*) counter

FROM master 4 WHERE date_2 NOT BETWEEN (SELECT MIN (date

AND (SELECT MIN (datemaster 4)

UNIONSELECT COUNT (*) counter

FROM master 4 WHERE date_3 BETWEEN TO_DATE ('01-01-2000'

AND SYSDATE - 25)/

FROM master 4)+ 35 FROM master 4)

2) FROM master 4) 2) + 50 FROM

, 'DD-MM-YYYY')

Page 424: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 416

exit/

— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%MASTER 4 QUERY 2%' and optimizer cost > 1 order by last load time desc /exit/

— INDEXESMASTER_4_CHAR_1_IDXMASTER_4_CHAR_2_IDXMASTER_4_CHAR_3_IDXMASTER_4_DATE_1_IDXMASTER_4_DATE_2_IDXMASTER_4_DATE_3_IDXMASTER_4_VALUE_1_IDXMASTER_4_VALUE_2_IDXMASTER_4_VALUE_3_IDX

— GET_COSTdelete from plan table /explain planset statement id = 'A' for SELECT COUNT (*)

FROM Master 4 WHERE value_1 IN

(SELECT value_1 FROM master 4

WHERE value_1 IN('Jenee','Hassie','Andrea','Danyell','Laree','Juliette','Eliene','Marie','Terry','Susie','Tina','Kareem','Amie',

Page 425: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 417

'C'))

YYYY')

YYYY')

master

'Levi','Eddie','Fleta'))

AND value_2 IN(SELECT value_2

FROM MASTER_4 WHERE VALUE_2 NOT IN

('Jenee','Hassie','Andrea','Danyell','Laree','Juliette','Eliene','Marie','Terry','Susie','Tina','Kareem','Amie','Levi','Eddie','Fleta'))

AND value_3 IN (SELECT value_3FROM master 4

WHERE SUBSTR (value 3, 1, 1) IN A'

AND date_1 IN(SELECT date_1

FROM master 4WHERE date_1 BETWEEN TO_DATE ('01-JAN-2001', 'DD-MON-

AND TO DATE ('02-MAR-2002', 'DD-MON-

UNIONSELECT date_2

FROM master WHERE date_2 NOT BETWEEN TO_DATE

AND TO_DATE

'01-JAN-2001' 'DD-MON-YYYY' ' 02-MAR-2002' 'DD-MON-YYYY'

UNIONSELECT date_3

FROM master 4 WHERE date_3 =

_4))AND char_1 IN ('A', 'B'AND char_2 IN ('1', '2'AND char_3 NOT IN

(SELECT char_3 FROM master 4

WHERE char_3 NOT IN

SELECT MIN (date 3) + 35 FROM

C'3'

A' C'

Page 426: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 418

/select cost from plan table where statement id = 'A' and parent_id IS NULL /exit/

--TIME_COST set timing onSELECT /*+ MASTER_4_QUERY_3*/COUNT (*)

FROM Master 4 WHERE value_1 IN

(SELECT value_1 FROM master 4

WHERE value_1 IN('Jenee','Hassie','Andrea','Danyell','Laree','Juliette','Eliene','Marie','Terry','Susie','Tina','Kareem','Amie','Levi','Eddie','Fleta'))

AND value_2 IN(SELECT value_2

FROM MASTER_4 WHERE VALUE_2 NOT IN

('Jenee', 'Hassie', 'Andrea', 'Danyell', 'Laree', 'Juliette', 'Eliene', 'Marie', 'Terry', 'Susie', 'Tina', 'Kareem', 'Amie', 'Levi',

Page 427: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 419

'Eddie','Fleta'))

AND value_3 IN (SELECT value_3FROM master 4

WHERE SUBSTR (value 3, 1, 1) IN A'C'

AND

YYYY'

YYYY'

date_1 IN(SELECT date_1

FROM master WHERE date_1

UNIONSELECT date_2

FROM master WHERE date_2

BETWEEN TO_DATE

AND TO_DATE

01-JAN-2001'

02-MAR-2002'

' DD-MON-

' DD-MON-

NOT BETWEEN TO DATE

AND TO_DATE

' 01-JAN-2001' 'DD-MON-YYYY' '02-MAR-2002' 'DD-MON-YYYY'

UNIONSELECT date_3

FROM master 4 WHERE date_3 = [ SELECT MIN (date 3) + 35 FROM

master 4)) AND char_1 IN ('A', 'B', 'C')AND char_2 IN ('1', '2', '3', '4' AND char_3 NOT IN

(SELECT char_3 FROM master 4

WHERE char_3 NOT IN ('A'/exit/— CROSS_CHECK_COST set heading off set feedback off set pagesize 0 select optimizer cost from v$sqlwhere sql text like '%MASTER 4 QUERY 3%' and optimizer cost > 1 order by last load time desc /exit/

C'

alter index M2_L2_TAB2_PK_IDX invisible;alter index M1_L2_T2 NUM_1_IDX invisible;alter index M1_L2_T2 NUM_2_IDX invisible;alter index M1_L2_T2 NUM_3_IDX invisible;

Page 428: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 420

alter index M1_L2_T2 NUM 4_IDX invisible;alter index M1_L2_T2 NUM_5_IDX invisible;alter index M1_L2_T2 NUM 6_IDX invisible;alter index M1_L2_T2 NUM 7_IDX invisible;alter index M1_L2_T2 NUM 8_IDX invisible;alter index M1_L2_T2 NUM 9_IDX invisible;alter index M1_L2_T2 NUM 10 IDX invisible;alter index M2_L2_T1 DATE_5_IDX invisible;alter index M2_L2_T1 DATE_6_IDX invisible;alter index M2_L2_T1 DATE_7_IDX invisible;alter index M2_L2_T1 DATE_8_IDX invisible;alter index M2_L2_T1 DATE_9_IDX invisible;alter index M2_L2_T1 DATE_10_IDX invisible;alter index M2_L2_T1 PK IDX invisible;alter index M2_L2_T1 DATE_1_IDX invisible;alter index M2_L2_T1 DATE_2_IDX invisible;alter index M2_L2_T1 DATE_3_IDX invisible;alter index M2_L2_T1 DATE_4_IDX invisible;alter index M1_L3_T3 CHAR_1_IDX invisible;alter index M1_L3_T3 CHAR_2_IDX invisible;alter index M1_L3_T3 DATE_1_IDX invisible;alter index M1_L3_T3 DATE_2_IDX invisible;alter index M1_L3_T3 DATE_3_IDX invisible;alter index M1_L3_T3 DATE_4_IDX invisible;alter index M1_L3_T3 DATE_5_IDX invisible;alter index M1_L3_T3 PK IDX invisible;alter index M1_L3_T3 VALUE_1_IDX invisible;alter index M1_L3_T3 VALUE_2_IDX invisible;alter index M1_L3_T3 VALUE_3_IDX invisible;alter index M1_L3_T2 CHAR_1_IDX invisible;alter index M1_L3_T2 CHAR_2_IDX invisible;alter index M1_L3_T2 DATE_1_IDX invisible;alter index M1_L3_T2 DATE_2_IDX invisible;alter index M1_L3_T2 DATE_3_IDX invisible;alter index M1_L3_T2 DATE_4_IDX invisible;alter index M1_L3_T2 DATE_5_IDX invisible;alter index M1_L3_T2 PK IDX invisible;alter index M1_L3_T2 VALUE_1_IDX invisible;alter index M1_L3_T2 VALUE_2_IDX invisible;alter index M1_L3_T2 VALUE_3_IDX invisible;alter index M1_L3_T1 PK IDX invisible;alter index M1_L3_T1 DATE_1_IDX invisible;alter index M1_L3_T1 DATE_2_IDX invisible;alter index M1_L3_T1 DATE_3_IDX invisible;alter index M1_L3_T1 DATE_4_IDX invisible;alter index M1_L3_T1 DATE_5_IDX invisible;alter index M1_L3_T1 VALUE_1_IDX invisible;alter index M1_L3_T1 VALUE_2_IDX invisible;alter index M1_L3_T1 VALUE_3_IDX invisible;alter index M1_L3_T1 CHAR_1_IDX invisible;alter index M1_L3_T1 CHAR_2_IDX invisible;alter index M1_L2_T3 CHAR_1_IDX invisible;

Page 429: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 421

alter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter indexalter index

M1_L2_T3_CHAR_2_IDX invisible M1_L2_T3_CHAR_3_IDX invisible M1_L2_T3_DATE_1_IDX invisible M1_L2_T3_DATE_2_IDX invisible M1_L2_T3_DATE_3_IDX invisible M1_L2_T3_PK_IDX invisible; M1_L2_T3_VALUE_1_IDX invisibl M1_L2_T3_VALUE_2_IDX invisibl M1_L2_T3_VALUE_3_IDX invisibl M1_L2_T2_CHAR_1_IDX invisible M1_L2_T2_CHAR_2_IDX invisible M1_L2_T2_CHAR_3_IDX invisible M1_L2_T2_DATE_1_IDX invisible M1_L2_T2_DATE_2_IDX invisible M1_L2_T2_DATE_3_IDX invisible M1_L2_T2_PK_IDX invisible; M1_L2_T2_VALUE_1_IDX invisibl M1_L2_T2_VALUE_2_IDX invisibl M1_L2_T2_VALUE_3_IDX invisibl M1_L2_T1_PK_IDX invisible; M1_L2_T1_DATE_1_IDX invisible M1_L2_T1_DATE_2_IDX invisible M1_L2_T1_DATE_3_IDX invisible M1_L2_T1_CHAR_1_IDX invisible M1_L2_T1_CHAR_2_IDX invisible M1_L2_T1_CHAR_3_IDX invisible M1_L2_T1_VALUE_1_IDX invisibl M1_L2_T1_VALUE_2_IDX invisibl M1_L2_T1_VALUE_3_IDX invisibl MASTER_3_PK_IDX invisible; MASTER_3_NUM_1_IDX invisible; MASTER_3_NUM_2_IDX invisible; MASTER_3_NUM_3_IDX invisible; MASTER_3_NUM_4_IDX invisible; MASTER_3_NUM_5_IDX invisible; MASTER_3_CHAR_2_IDX invisible MASTER_3_CHAR_1_IDX invisible MASTER_3_CHAR_3_IDX invisible MASTER_3_VALUE_1_IDX invisibl MASTER_3_VALUE_2_IDX invisibl MASTER_3_LINKER invisible; MASTER_2_PK_IDX invisible; MASTER_2_VALUE_1_IDX invisibl MASTER_2_VALUE_2_IDX invisibl MASTER_2_VALUE_3_IDX invisibl MASTER_2_VALUE_4_IDX invisibl MASTER_2_VALUE_5_IDX invisibl MASTER_2_CHAR_1_IDX invisible MASTER_2_CHAR_2_IDX invisible MASTER_2_CHAR_3_IDX invisible MASTER_2_DATE_1_IDX invisible MASTER 2 DATE 2 IDX invisible

Page 430: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 422

alter index MASTER 2 LINKER invisible;alter index MASTER 1 PK IDX invisible;alter index MASTER 1 DATE_2 IDX invisible;alter index MASTER 1 DATE_3 IDX invisible;alter index MASTER 1 DATE 4 IDX invisible;alter index MASTER 1 DATE_5 IDX invisible;alter index MASTER 1 DATE 1 IDX invisible;alter index MASTER 1 CHAR_1 IDX invisible;alter index MASTER 1 CHAR_2 IDX invisible;alter index MASTER 1 CHAR_3 IDX invisible;alter index MASTER 1 VALUE_1_IDX invisible;alter index MASTER 1 VALUE_2_IDX invisible;alter index MASTER 1 LINKER invisible;alter index M3_L3_T3 CHAR_1 IDX invisible;alter index M3_L3_T3 CHAR_2 IDX invisible;alter index M3_L3_T3 CHAR_3 IDX invisible;alter index M3_L3_T3 DATE 1 IDX invisible;alter index M3_L3_T3 DATE_2 IDX invisible;alter index M3_L3_T3 DATE_3 IDX invisible;alter index M3_L3_T3 DATE 4 IDX invisible;alter index M3_L3_T3 PK IDX invisible;alter index M3_L3_T3~ VALUE_1_IDX invisible;alter index M3_L3_T3~ VALUE_2_IDX invisible;alter index M3_L3_T3~ VALUE_3_IDX invisible;alter index M3_L3_T2 CHAR_1 IDX invisible;alter index M3_L3_T2 CHAR_2 IDX invisible;alter index M3_L3_T2 CHAR_3 IDX invisible;alter index M3_L3_T2 DATE 1 IDX invisible;alter index M3_L3_T2 DATE_2 IDX invisible;alter index M3_L3_T2 DATE_3 IDX invisible;alter index M3_L3_T2 DATE 4 IDX invisible;alter index M3_L3_T2 PK IDX invisible;alter index M3_L3_T2 VALUE_1_IDX invisible;alter index M3_L3_T2 VALUE_2_IDX invisible;alter index M3_L3_T2 VALUE_3_IDX invisible;alter index M3_L3_T1~ PK IDX invisible;alter index M3_L3_T1 CHAR_1 IDX invisible;alter index M3_L3_T1 CHAR_2 IDX invisible;alter index M3_L3_T1 CHAR_3 IDX invisible;alter index M3_L3_T1 VALUE_1_IDX invisible;alter index M3_L3_T1 VALUE_2_IDX invisible;alter index M3_L3_T1 VALUE_3_IDX invisible;alter index M3_L3_T1 DATE 1 IDX invisible;alter index M3_L3_T1 DATE_2 IDX invisible;alter index M3_L3_T1 DATE_3 IDX invisible;alter index M3_L3_T1 DATE 4 IDX invisible;alter index M3_L2_T3 COMP_1 IDX invisible;alter index M3_L2_T3 DATE COMP 1_IDX invisible;alter index M3_L2_T3~ NUM COMP 1 IDX invisible;alter index M3_L2_T3 PK IDX invisible;alter index M3_L2_T2 COMP_1 IDX invisible;alter index M3_L2_T2 DATE COMP 1_IDX invisible;

Page 431: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 423

alter index M3 L2 T2 NUM COMP 1 IDX invisible;alter index M3 L2 T2 PK IDX invisible;alter index M3 L2" TB PK IDX invisible;alter index M3 L2" T1 COMP 1 IDX invisible;alter index M3 L2 T1 NUM COMP 1 IDX invisible;alter index M3 L2 T1 DATE COMP 1_IDX invisible;alter index M2 L3" T3~ PK IDX invisible;alter index M2 L3" T3~ CHAR_1_IDX invisible;alter index M2 L3 T3 CHAR 2 IDX invisible;alter index M2 L3 T3 CHAR_3_IDX invisible;alter index M2 L3 T3 DATE 1 IDX invisible;alter index M2 L3 T3 DATE 2 IDX invisible;alter index M2 L3 T3 DATE 3 IDX invisible;alter index M2 L3 T3 VALUE_1_IDX invisible;alter index M2 L3" T3~ VALUE_2_IDX invisible;alter index M2 L3" T3~ VALUE_3_IDX invisible;alter index M2 L3" T3~ VALUE_4_IDX invisible;alter index M2 L3" T2 PK IDX invisible;alter index M2 L3" T2 CHAR_1_IDX invisible;alter index M2 L3 T2 CHAR 2 IDX invisible;alter index M2 L3 T2 CHAR_3_IDX invisible;alter index M2 L3 T2 DATE 1 IDX invisible;alter index M2 L3 T2 DATE 2 IDX invisible;alter index M2 L3 T2 DATE 3 IDX invisible;alter index M2 L3 T2 VALUE_1_IDX invisible;alter index M2 L3" T2 VALUE_2_IDX invisible;alter index M2 L3" T2 VALUE_3_IDX invisible;alter index M2 L3" T2 VALUE_4_IDX invisible;alter index M2 L3" T1 PK IDX invisible;alter index M2 L3" T1 CHAR_1_IDX invisible;alter index M2 L3 T1 CHAR 2 IDX invisible;alter index M2 L3 T1 CHAR_3_IDX invisible;alter index M2 L3 T1 DATE 1 IDX invisible;alter index M2 L3 T1 DATE 2 IDX invisible;alter index M2 L3 T1 DATE 3 IDX invisible;alter index M2 L3 T1 VALUE_1_IDX invisible;alter index M2 L3" T1 VALUE_2_IDX invisible;alter index M2 L3" T1 VALUE_3_IDX invisible;alter index M2 L3" T1 VALUE_4_IDX invisible;alter index M2 L2" T3~ PK IDX invisible;alter index M2 L2" T3~ VALUE_1_IDX invisible;alter index M2 L2" T3~ VALUE_2_IDX invisible;alter index M2 L2" T3~ VALUE_3_IDX invisible;alter index M2 L2" T3~ VALUE_4_IDX invisible;alter index M2 L2" T3~ VALUE_5_IDX invisible;alter index M2 L2" T3~ VALUE 6_IDX invisible;alter index M2 L2" T3~ VALUE_7_IDX invisible;alter index M2 L2" T3~ VALUE_8_IDX invisible;alter index M2 L2" T3~ VALUE 9_IDX invisible;alter index M2 L2" T3~ VALUE 10 IDX invisible;alter index MASTER 4 CHAR_1_IDX invisible;alter index MASTER 4 CHAR 2 IDX invisible;

Page 432: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 424

alter indexalter indexalter indexalter indexalter indexalter indexalter indexexit/

MASTER_4_CHAR_3_IDX invisible; MASTER_4_DATE_1_IDX invisible; MASTER_4_DATE_2_IDX invisible; MASTER_4_DATE_3_IDX invisible; MASTER_4_VALUE_1_IDX invisible; MASTER_4_VALUE_2_IDX invisible; MASTER 4 VALUE 3 IDX invisible;

Page 433: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 425

Appendix 4

#!/usr/bin/perl # Set Global Values------------------------------- #

$command file ="\/export\/home\/oracle\/perl scripts\/command1.sql”;$cost capture dir = "\/export\/home\/oracle\/perl scripts\/"; $output_file ="\/export\/home\/oracle\/perl scripts\/stat data.txt";@query_names = ('GENERAL_JOIN_2.sql', ’GENERAL_JOIN_1.sql’, ’GENERAL_JOIN_3.sql’,

’MASTER_1_JOIN_3.sql’, ’MASTER_1_QUERY.sql’, ’MASTER_2_QUERY.sql’, ’MASTER_3_QUERY.sql’,

’MASTER_ALL_JOIN_4.sql’, ’MASTER_ALL_JOIN_5.sql’, ’MASTER_ALL_JOIN_6.sql’, ’MASTER_ALL_JOIN_7.sql’,

’GENERAL_JOIN_4.sql’, ’GENERAL_JOIN_5.sql’, ’GENERAL_JOIN_6.sql’, ’GENERAL_JOIN_7.sql’,

’GENERAL_JOIN_8.sql’, ’GENERAL_JOIN_9.sql’, ’MASTER_1_JOIN_1.sql’, ’MASTER_1_JOIN_2.sql’,

’MASTER_3_QUERY_2.sql’, ’MASTER_ALL_JOIN_1.sql’, ’MASTER_ALL_JOIN_2.sql’, ’MASTER_ALL_JOIN_3.sql’,

’MASTER_1_QUERY.sql’,’MASTER_ALL_JOIN_8.sql’,’MASTER_4_QUERY.sql’,’MASTER_4_QUERY_1.sql’,

’MASTER_4_QUERY_2.sql’,’MASTER_4_QUERY_3.sql’);

# SUB ROUTINES---------------------------------- # sub initialize nonfixed globals {

$index count = 12;$total combinations = 2 ** $index count;@cost array = ();

$unique cost values = 1;@index names = ();$get cost query = "";$time cost query = "";$cross check query = "";

#--reset indexes$temp = sql("$cost capture dir" . "SQL FILES\/RESET INDEXES.sql");

}

sub sql {

Page 434: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 426

my $execute_file = shift;

my $output = 'sqlplus -S test user\/test\@SANDBOX \@$execute file'; return $output;

}

sub parse sql file {

my $query name = shift; my $index flag = "false"; my $get_cost_flag = "false"; my $time cost flag = "false"; my $cross check flag = "false";

open (FILE,"\/export\/home\/oracle\/perl scripts\/SQL FILES\/$query name");

my @file = <FILE>; close FILE;

LOOP: foreach $line (@file){

chomp($line);

if ($line =~ /.*INDEXES.*/){

$index_flag = "true";$get cost flag = "false";$time cost flag = "false";$cross_check_flag = "false"; next LOOP;

}elsif ($line =~ /.*GET_COST.*/){

$index_flag = "false";$get cost flag = "true";$time cost flag = "false";$cross_check_flag = "false"; next LOOP;

}elsif ($line =~ /.*TIME_COST.*/){

$index_flag = "false";$get cost flag = "false";$time cost flag = "true";$cross_check_flag = "false"; next LOOP;

}elsif ($line =~ /.*CROSS_CHECK_COST.*/){

$index_flag = "false";

Page 435: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 427

$get cost flag = "false";$time cost flag = "false"; $cross_check_flag = "true"; next LOOP;

}

#--tank up some variablesif ($index flag eq "true"){

push (@index names, $line)

}elsif ($get cost flag eq "true"){

$get cost query .= "$line\n";

}elsif ($time cost flag eq "true"){

$time cost query .= "$line\n";

}elsif ($cross check flag eq "true"){

$cross check query .= "$line\n";}

}

}

sub check if new cost {

my $test cost = shift;my $new value flag = "TRUE";

foreach $cost value (@cost array){

if ($cost value == $test cost){$new value flag = "FALSE";

}}

if ($new value flag eq "TRUE"){

push (@cost array, $test cost);}

return $new value flag;}

Page 436: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 428

sub set index values and process query {

my $query name = shift;

#--This will set the indexes on and off according to how many wewant to work with,...

#--and according to how many there are in the table.

if (($#index names) < $index count){

$index count = $#index names;$total combinations = 2 ** $index count;

}

for ($combinations = 0; $combinations < $total combinations; $combinations++){

open (EXE, ">$command file"); print EXE "set heading off\n"; print EXE "set feedback off\n"; print EXE "set pagesize 0\n";

for ($bit index check = 0; $bit index check < $index count; $bit index check++){

$test value = 2 ** $bit index check;

if (($combinations & $test value) != 0) {

$command = qq{alter index $index names[$bit index check]invisible;};

print EXE $command , "\n";

}else{

$command = qq{alter index $index names[$bit index check]visible;};

print EXE $command , "\n";

}}

#--put the query on the end of the index changes print EXE "\n$get cost query\n"; close EXE;

chomp($cost = sql($command file));

Page 437: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 429

$new value = check if new cost($cost);

if ($new value eq "TRUE"){

#— Is a new cost, so need to run and find elapsed time.

open (EXE, ">$command file"); print EXE "$time cost query"; close EXE;

$time = sql("$command file");$time =~ /.*Elapsed: (.*:.*:.*.*).*/; chomp($time = $1);

#--now, need to see if this was the same cost that was used during execution.

open (EXE, ">$command file"); print EXE $cross check query; close EXE;chomp($run cost = sql("$command file"));$~ = COST_OUTPUT;

#------------------------------------------------------write();

open (OUTPUT, ">>$output file"); print OUTPUT

"$unique cost values!~!$query name!~!$combinations!~!$cost!~!$run cost !~!$time\n";

close OUTPUT;

$unique cost values++;

}}

}

#----------MAIN SECTION----------------------------------

foreach $query name (@query names){

initialize nonfixed globals();

parse sql file($query name);

system ("cls");print "Unique Number Query Name

Combination Cost Value Run Cost Elapsed Time\n";

Page 438: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 430

set index values and process query($query name);

}

format COST_OUTPUT =@<<<<<<@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<< 0<<<<<<<<<<<<<< 0<<<<<<<<<<<<<<< $unique cost values, $query name,$combinations, $cost, $run cost, $time

0<<<<<<<<

Page 439: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 431

Appendix 5

GENERAL JOIN 1

■c£oo0)£C0)O

0.00 5000.00 10000.00 15000.00 20000.00COST

(Correl = 0.59, Sample Size = 256)

Page 440: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 432

Page 441: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 433

Page 442: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 434

GENEAL JOIN 7

0)■c£OoIDW£a)O

40

35

30

25

20

15

10

5

0

1 £ i n flat fcfr ML t ±t ? £♦

^ --- -- ---- ---- ---- '

t m — r *— > % *0.00 2000.00 4000.00 6000.00 8000.00 10000.00 12000.00 14000.00 16000.00

COST(Correl = 0.12, Sample Size = 382)

GENERAL JOIN 8

0)■c£OoIDwC0)

C

COST(Correl= 0.23, Sample Size=16)

Page 443: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 435

GENERAL JOIN 9

COST(Correl=0.78, Sample Size=16)

Page 444: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 436

MASTER ALL JOIN 2

700

600

500

400

t i 300£eC200

100

0.00

♦♦

10000.00 20000.00 30000.00 40000.00 50000.00

COST(Correl = -0.33, Sample Size = 256)

MASTER ALL JOIN 3

6000

5000

4000

3000

in ■c £oo e

Sit 2 0 0 0a>

C1000

0.-1000

♦ ♦

D0 5000.00 10000.00 15000.00 20000.00 25000.00 30000.00 35000.00 40000.00

COST(Correl = -0.36, Sample Size = 160)

0

0

Page 445: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 437

1400

1200

in■c£oo eS

1000

800

t i 600£eC 400

200

029000.00

MASTER ALL JOIN 4

30000.00 31000.00 32000.00 33000.00 34000.00

COST(Correl = -0.38, Sample Size = 9)

MASTER ALL JOIN 5

900

800

700

in 600 ■cno500a)

it S400

O 300

200

100

0.00 10000.00 20000.00 30000.00 40000.00 50000.00 60000.00

COST(Correl = -0.01, Sample Size = 402)

0

Page 446: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 438

MASTER ALL JOIN 6

500

450

400

s 350

! 300ec 250

iSI 200

eC150

100

------ ----

500

52000.0(52500.0(53000.0(53500.0(54000.0($4500.0($5000.0($5500.0(56000.0($6500.0(57000.00

COST(Correl = 0.04, Sample Size = 127)

MASTER ALL JOIN 7

500

450

400

3500)c 300 oec 250iS

I 200e° 150

100

50

049000.00 50000.00 51000.00 52000.00 53000.00 54000.00 55000.00 56000.00 57000.00

COST(Correl = 0.41, Sample Size = 310)

Page 447: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 439

Page 448: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 440

MASTER 1 JOIN 3

0)■c

S

eC

COST(Correl = -0.60, Sample Size = 119)

Page 449: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 441

MASTER 2 QUERY

COST(Correl = -0.21, Sample Size = 174)

MASTER 3 QUERY

COST(Correl = -0.27, Sample Size = 80)

Page 450: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 442

Page 451: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 443

Appendix 6

FLUSH GENERAL JOIN 1

COST(Correl = 0.57, Sample Size = 256)

Page 452: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 444

Page 453: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 445

Page 454: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 446

FLUSH GENERAL JOIN 8

COST(Correl= 0.07, Sample Size=16)

Page 455: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 447

FLUSH GENERAL JOIN 9

COST(Correl=0.74, Sample Size=16)

FLUSH MASTER ALL JOIN 1

160

140

1200)1 100o o e

SCe

C

80

60

40

0

20

------ -------- ---- --♦ ♦

0.00 2000.00 4000.00 6000.00 8000.00 10000.00 12000.00 14000.00 16000.00

COST(Correl = -0.19, Sample Size = 64)

Page 456: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 448

FLUSH MASTER ALL JOIN 2

1000900800

„ 700

! 600aj 500 iSI 400

eO 300

200

100

0.00 10000.00 20000.00 30000.00 40000.00 50000.00

COST(Correl = -0.21, Sample Size = 256)

FLUSH MASTER ALL JOIN 3

3500

3000

2500s■c

n o 2000 tjeSit 1 5 0 0a)C

1000

500

0.00 5000.00 10000.00 15000.00 2000ST0 25000.00 30000.00 35000.00 40000.00(Correl = -0.21, Sample Size = 160)

0

0

Page 457: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 449

FLUSH MASTER ALL JOIN 4

COST(Correl = -0.38, Sample Size = 9)

Page 458: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 450

FLUSH MASTER ALL JOIN 6

COST (Correl = 0.74, Sample Size = 127)

FLUSH MASTER ALL JOIN 7

2500

2000

s=1500oo e

iS11000e

C

500

♦ *♦ ♦ ♦♦ ♦

----------- *

♦J v l t V ♦ ♦ « v > w________________

_______________

-----------------

♦ — ♦ ♦* ^ ♦♦ 4$ £ ♦♦ ♦

049000.00 50000.00 51000.00 52000.00 53000.00 54000.00 55000.00 56000.00 57000.00

COST(Correl = -0.06, Sample Size = 310)

Page 459: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 451

Page 460: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 452

FLUSH MASTER 1 JOIN 3

s■c£oo eiS£e

C

500

450

400

350

300

250

200

150

100

50

00.00 2000.00 4000.00 6000.00 8000.00 10000.00 12000.00 14000.00 16000.00

COST (Correl = -0.50, Sample Size = 119)

FLUSH MASTER 1 QUERY

500

450

400

350s£ 300 o® 250 iSI 200e° 150

100

50

0

-----------

.00 5000.00 10000.00 15000.00 20000.00 25000.00 30000.00 35000.00COST

(Correl = 0.06, Sample Size = 311)

Page 461: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 453

Page 462: Oracle Cost Based Optimizer Correlations

ORACLE CBO CORRELATIONS 454