Beier hints

13
Presented By www.orienit.c om

Transcript of Beier hints

Page 1: Beier hints

Presented By

www.orienit.com

Page 2: Beier hints

Hints give specific information that we know about our data and application.

A way to override the default query optimization in the DBMS

Influence the execution plan of query

www.orienit.com

Page 3: Beier hints

Oracle optimizer may not always choose the best execution plan

Using hints may improve the performance by changing the execution plan oracle takes.

www.orienit.com

Page 4: Beier hints

Hints can be used in the Select, Delete, and Update clauses.

In each statement, the hint goes directly after the Select, Delete, or Update keyword. A few hints use Insert.

Hints are placed in the /*+ */ tag, where the hint goes after the + sign

Ex: SELECT /*+ ALL_ROWS */ From…

www.orienit.com

Page 5: Beier hints

Approach hints Access hints Join hints Misc. hints

www.orienit.com

Page 6: Beier hints

ALL_ROWS: Minimizes total resource consumption. Results will be returned only after all processing has been completed

FIRST_ROWS(n): Minimized response time, or minimal resource usage to return the first n rows.

www.orienit.com

Page 7: Beier hints

FULL(table): Chooses a full table scan for the table, even if there is an index available.

INDEX(table [index [index]...]): Chooses an Index scan for the table.

www.orienit.com

Page 8: Beier hints

CIS Department has far more males than females

SELECT /*+ FULL(s) */ id, name FROM Student sWHERE sex = ‘m’;

SELECT /*+ Index(s sex_index) */ id, name

FROM Student sWHERE sex = ‘f’;

www.orienit.com

Page 9: Beier hints

ORDERED: tables are joined in the order in which they appear in the FROM clause.

LEADING(table): specified table is the first table used in the join order.

USE_HASH(table [table] …): Tables are joined using a hash join. Smaller table is used to make a hash table on join key. The larger table is scanned using hash table to find joined rows.

www.orienit.com

Page 10: Beier hints

USE_NL(table [table]…): Joins tables using nested loops join, using specified table as inner join. For every row in outer table, oracle accesses every row in inner table.

USE_MERGE(table [table]…): Joins tables using a sort-merge join. Sorted list are made and then merged together. Best if tables are already sorted.

www.orienit.com

Page 11: Beier hints

APPEND: Data is appended to the end of table, rather then using existing space.

CACHE(table): Blocks received are placed at the most recently used end of the LRU list in the buffer cache when a full table scan is preformed.

NOCACHE(table): Blocks received are placed at the least recently used end of the LRU list in the buffer cache.

www.orienit.com

Page 12: Beier hints

Oracle documentation at: http://oracle.cis.ksu.edu/oradocs/index.htm

www.orienit.com

Page 13: Beier hints