<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FSQL_PLUS_Session_Environment%2FOPTIMIZER_MODE</id>
		<title>Oracle PL/SQL Tutorial/SQL PLUS Session Environment/OPTIMIZER MODE - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FSQL_PLUS_Session_Environment%2FOPTIMIZER_MODE"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/SQL_PLUS_Session_Environment/OPTIMIZER_MODE&amp;action=history"/>
		<updated>2026-04-04T13:48:14Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/SQL_PLUS_Session_Environment/OPTIMIZER_MODE&amp;diff=2857&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/SQL_PLUS_Session_Environment/OPTIMIZER_MODE&amp;diff=2857&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:46Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/SQL_PLUS_Session_Environment/OPTIMIZER_MODE&amp;diff=2858&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/SQL_PLUS_Session_Environment/OPTIMIZER_MODE&amp;diff=2858&amp;oldid=prev"/>
				<updated>2010-05-26T10:04:10Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== alter session set optimizer_index_cost_adj, alter session set optimizer_index_caching==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table  myTable1&lt;br /&gt;
  2  as&lt;br /&gt;
  3  select mod(rownum,1000) id, rpad(&amp;quot;x&amp;quot;,300,&amp;quot;x&amp;quot;) data&lt;br /&gt;
  4    from all_objects&lt;br /&gt;
  5   where rownum &amp;lt;= 5000;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table  myTable2&lt;br /&gt;
  2  as&lt;br /&gt;
  3  select rownum id, rpad(&amp;quot;x&amp;quot;,300,&amp;quot;x&amp;quot;) data&lt;br /&gt;
  4    from all_objects&lt;br /&gt;
  5   where rownum &amp;lt;= 1000;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create index myTable1_idx on myTable1(id);&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create index myTable2_idx on myTable2(id);&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; begin&lt;br /&gt;
  2     dbms_stats.gather_table_stats( user, &amp;quot;myTable1&amp;quot;, method_opt =&amp;gt; &amp;quot;for all indexed columns&amp;quot;,cascade=&amp;gt;true );&lt;br /&gt;
  3     dbms_stats.gather_table_stats( user, &amp;quot;myTable2&amp;quot;, method_opt =&amp;gt; &amp;quot;for all indexed columns&amp;quot;,cascade=&amp;gt;true );&lt;br /&gt;
  4  end;&lt;br /&gt;
  5  /&lt;br /&gt;
SQL&amp;gt; set autotrace traceonly  explain&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select *&lt;br /&gt;
  2    from myTable1, myTable2&lt;br /&gt;
  3   where myTable1.id = myTable2.id&lt;br /&gt;
  4     and myTable2.id between 5 and 55;&lt;br /&gt;
Execution Plan&lt;br /&gt;
----------------------------------------------------------&lt;br /&gt;
Plan hash value: 3784280921&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
| Id  | Operation                     | Name         | Rows  | Bytes | Cost  |&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
|   0 | SELECT STATEMENT              |              |    56 | 20664 |   260 |&lt;br /&gt;
|   1 |  TABLE ACCESS BY INDEX ROWID  | MYTABLE1     |     1 |   178 |     5 |&lt;br /&gt;
|   2 |   NESTED LOOPS                |              |    56 | 20664 |   260 |&lt;br /&gt;
|   3 |    TABLE ACCESS BY INDEX ROWID| MYTABLE2     |    51 |  9741 |     5 |&lt;br /&gt;
|*  4 |     INDEX RANGE SCAN          | MYTABLE2_IDX |    51 |       |     2 |&lt;br /&gt;
|*  5 |    INDEX RANGE SCAN           | MYTABLE1_IDX |     1 |       |       |&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
Predicate Information (identified by operation id):&lt;br /&gt;
---------------------------------------------------&lt;br /&gt;
   4 - access(&amp;quot;MYTABLE2&amp;quot;.&amp;quot;ID&amp;quot;&amp;gt;=5 AND &amp;quot;MYTABLE2&amp;quot;.&amp;quot;ID&amp;quot;&amp;lt;=55)&lt;br /&gt;
   5 - access(&amp;quot;MYTABLE1&amp;quot;.&amp;quot;ID&amp;quot;=&amp;quot;MYTABLE2&amp;quot;.&amp;quot;ID&amp;quot;)&lt;br /&gt;
       filter(&amp;quot;MYTABLE1&amp;quot;.&amp;quot;ID&amp;quot;&amp;gt;=5 AND &amp;quot;MYTABLE1&amp;quot;.&amp;quot;ID&amp;quot;&amp;lt;=55)&lt;br /&gt;
Note&lt;br /&gt;
-----&lt;br /&gt;
   - cpu costing is off (consider enabling it)&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter session set optimizer_index_cost_adj = 50;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter session set optimizer_index_caching = 0;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select *&lt;br /&gt;
  2    from myTable1, myTable2&lt;br /&gt;
  3   where myTable1.id = myTable2.id&lt;br /&gt;
  4     and myTable2.id between 5 and 55;&lt;br /&gt;
Execution Plan&lt;br /&gt;
----------------------------------------------------------&lt;br /&gt;
Plan hash value: 3784280921&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
| Id  | Operation                     | Name         | Rows  | Bytes | Cost  |&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
|   0 | SELECT STATEMENT              |              |    56 | 20664 |   156 |&lt;br /&gt;
|   1 |  TABLE ACCESS BY INDEX ROWID  | MYTABLE1     |     1 |   178 |     3 |&lt;br /&gt;
|   2 |   NESTED LOOPS                |              |    56 | 20664 |   156 |&lt;br /&gt;
|   3 |    TABLE ACCESS BY INDEX ROWID| MYTABLE2     |    51 |  9741 |     3 |&lt;br /&gt;
|*  4 |     INDEX RANGE SCAN          | MYTABLE2_IDX |    51 |       |     1 |&lt;br /&gt;
|*  5 |    INDEX RANGE SCAN           | MYTABLE1_IDX |     1 |       |     1 |&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
Predicate Information (identified by operation id):&lt;br /&gt;
---------------------------------------------------&lt;br /&gt;
   4 - access(&amp;quot;MYTABLE2&amp;quot;.&amp;quot;ID&amp;quot;&amp;gt;=5 AND &amp;quot;MYTABLE2&amp;quot;.&amp;quot;ID&amp;quot;&amp;lt;=55)&lt;br /&gt;
   5 - access(&amp;quot;MYTABLE1&amp;quot;.&amp;quot;ID&amp;quot;=&amp;quot;MYTABLE2&amp;quot;.&amp;quot;ID&amp;quot;)&lt;br /&gt;
       filter(&amp;quot;MYTABLE1&amp;quot;.&amp;quot;ID&amp;quot;&amp;gt;=5 AND &amp;quot;MYTABLE1&amp;quot;.&amp;quot;ID&amp;quot;&amp;lt;=55)&lt;br /&gt;
Note&lt;br /&gt;
-----&lt;br /&gt;
   - cpu costing is off (consider enabling it)&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set autotrace off&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable1;&lt;br /&gt;
SQL&amp;gt; drop table myTable2;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== alter session set optimizer_max_permutations=80000==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table t as select mod(object_id,10) id, a.* from all_objects a;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; analyze table t compute statistics&lt;br /&gt;
  2  for table&lt;br /&gt;
  3  for columns id;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter session set optimizer_max_permutations=80000;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; explain plan for&lt;br /&gt;
  2  select count(*)&lt;br /&gt;
  3    from t t1, t t2, t t3, t t4, t t5, t t6&lt;br /&gt;
  4   where t1.id = t2.id&lt;br /&gt;
  5     and t1.id = t3.id&lt;br /&gt;
  6     and t1.id = t4.id&lt;br /&gt;
  7     and t1.id = t5.id&lt;br /&gt;
  8     and t1.id = t6.id;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set autotrace off&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table t;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== alter session set optimizer_mode=all_rows==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table myTable&lt;br /&gt;
  2  as&lt;br /&gt;
  3  select rownum id, a.*&lt;br /&gt;
  4    from all_objects a&lt;br /&gt;
  5   where 1=0&lt;br /&gt;
  6  /&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set autotrace traceonly explain&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter session set optimizer_mode=all_rows;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select t1.object_name, t2.object_name&lt;br /&gt;
  2    from myTable t1, myTable t2&lt;br /&gt;
  3   where t1.object_id = t2.object_id&lt;br /&gt;
  4     and t1.owner = &amp;quot;WMSYS&amp;quot;&lt;br /&gt;
  5  /&lt;br /&gt;
Execution Plan&lt;br /&gt;
----------------------------------------------------------&lt;br /&gt;
Plan hash value: 2666611345&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
| Id  | Operation          | Name    | Rows  | Bytes | Cost  |&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
|   0 | SELECT STATEMENT   |         |     1 |    77 |     3 |&lt;br /&gt;
|*  1 |  HASH JOIN         |         |     1 |    77 |     3 |&lt;br /&gt;
|*  2 |   TABLE ACCESS FULL| MYTABLE |     1 |    47 |     1 |&lt;br /&gt;
|   3 |   TABLE ACCESS FULL| MYTABLE |    82 |  2460 |     1 |&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
Predicate Information (identified by operation id):&lt;br /&gt;
---------------------------------------------------&lt;br /&gt;
   1 - access(&amp;quot;T1&amp;quot;.&amp;quot;OBJECT_ID&amp;quot;=&amp;quot;T2&amp;quot;.&amp;quot;OBJECT_ID&amp;quot;)&lt;br /&gt;
   2 - filter(&amp;quot;T1&amp;quot;.&amp;quot;OWNER&amp;quot;=&amp;quot;WMSYS&amp;quot;)&lt;br /&gt;
Note&lt;br /&gt;
-----&lt;br /&gt;
   - cpu costing is off (consider enabling it)&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set autotrace off&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== alter session set OPTIMIZER_MODE = choose==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- create demo table&lt;br /&gt;
SQL&amp;gt; create table Employee(&lt;br /&gt;
  2    ID                 VARCHAR2(4 BYTE)         NOT NULL primary key,&lt;br /&gt;
  3    First_Name         VARCHAR2(10 BYTE),&lt;br /&gt;
  4    Last_Name          VARCHAR2(10 BYTE),&lt;br /&gt;
  5    Start_Date         DATE,&lt;br /&gt;
  6    End_Date           DATE,&lt;br /&gt;
  7    Salary             Number(8,2),&lt;br /&gt;
  8    City               VARCHAR2(10 BYTE),&lt;br /&gt;
  9    Description        VARCHAR2(15 BYTE)&lt;br /&gt;
 10  )&lt;br /&gt;
 11  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- prepare data&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2               values (&amp;quot;01&amp;quot;,&amp;quot;Jason&amp;quot;,    &amp;quot;Martin&amp;quot;,  to_date(&amp;quot;19960725&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;20060725&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 1234.56, &amp;quot;Toronto&amp;quot;,  &amp;quot;Programmer&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;02&amp;quot;,&amp;quot;Alison&amp;quot;,   &amp;quot;Mathews&amp;quot;, to_date(&amp;quot;19760321&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19860221&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 6661.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;03&amp;quot;,&amp;quot;James&amp;quot;,    &amp;quot;Smith&amp;quot;,   to_date(&amp;quot;19781212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19900315&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 6544.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;04&amp;quot;,&amp;quot;Celia&amp;quot;,    &amp;quot;Rice&amp;quot;,    to_date(&amp;quot;19821024&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19990421&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 2344.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Manager&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;05&amp;quot;,&amp;quot;Robert&amp;quot;,   &amp;quot;Black&amp;quot;,   to_date(&amp;quot;19840115&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19980808&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 2334.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary, City,        Description)&lt;br /&gt;
  2                values(&amp;quot;06&amp;quot;,&amp;quot;Linda&amp;quot;,    &amp;quot;Green&amp;quot;,   to_date(&amp;quot;19870730&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19960104&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 4322.78,&amp;quot;New York&amp;quot;,  &amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary, City,        Description)&lt;br /&gt;
  2                values(&amp;quot;07&amp;quot;,&amp;quot;David&amp;quot;,    &amp;quot;Larry&amp;quot;,   to_date(&amp;quot;19901231&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19980212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 7897.78,&amp;quot;New York&amp;quot;,  &amp;quot;Manager&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary, City,        Description)&lt;br /&gt;
  2                values(&amp;quot;08&amp;quot;,&amp;quot;James&amp;quot;,    &amp;quot;Cat&amp;quot;,     to_date(&amp;quot;19960917&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;20020415&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 1232.78,&amp;quot;Vancouver&amp;quot;, &amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- display data in the table&lt;br /&gt;
SQL&amp;gt; select * from Employee&lt;br /&gt;
  2  /&lt;br /&gt;
&lt;br /&gt;
ID   FIRST_NAME           LAST_NAME            START_DAT END_DATE      SALARY CITY       DESCRIPTION&lt;br /&gt;
---- -------------------- -------------------- --------- --------- ---------- ---------- ---------------&lt;br /&gt;
01   Jason                Martin               25-JUL-96 25-JUL-06    1234.56 Toronto    Programmer&lt;br /&gt;
02   Alison               Mathews              21-MAR-76 21-FEB-86    6661.78 Vancouver  Tester&lt;br /&gt;
03   James                Smith                12-DEC-78 15-MAR-90    6544.78 Vancouver  Tester&lt;br /&gt;
04   Celia                Rice                 24-OCT-82 21-APR-99    2344.78 Vancouver  Manager&lt;br /&gt;
05   Robert               Black                15-JAN-84 08-AUG-98    2334.78 Vancouver  Tester&lt;br /&gt;
06   Linda                Green                30-JUL-87 04-JAN-96    4322.78 New York   Tester&lt;br /&gt;
07   David                Larry                31-DEC-90 12-FEB-98    7897.78 New York   Manager&lt;br /&gt;
&lt;br /&gt;
ID   FIRST_NAME           LAST_NAME            START_DAT END_DATE      SALARY CITY       DESCRIPTION&lt;br /&gt;
---- -------------------- -------------------- --------- --------- ---------- ---------- ---------------&lt;br /&gt;
08   James                Cat                  17-SEP-96 15-APR-02    1232.78 Vancouver  Tester&lt;br /&gt;
8 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; begin&lt;br /&gt;
  2           dbms_stats.set_table_stats&lt;br /&gt;
  3           ( user, &amp;quot;EMPLOYEE&amp;quot;, numrows =&amp;gt; 10000000, numblks =&amp;gt; 1000000 );&lt;br /&gt;
  4      end;&lt;br /&gt;
  5      /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; select * from employee;&lt;br /&gt;
&lt;br /&gt;
ID   FIRST_NAME           LAST_NAME            START_DAT END_DATE      SALARY CITY       DESCRIPTION&lt;br /&gt;
---- -------------------- -------------------- --------- --------- ---------- ---------- ---------------&lt;br /&gt;
01   Jason                Martin               25-JUL-96 25-JUL-06    1234.56 Toronto    Programmer&lt;br /&gt;
02   Alison               Mathews              21-MAR-76 21-FEB-86    6661.78 Vancouver  Tester&lt;br /&gt;
03   James                Smith                12-DEC-78 15-MAR-90    6544.78 Vancouver  Tester&lt;br /&gt;
04   Celia                Rice                 24-OCT-82 21-APR-99    2344.78 Vancouver  Manager&lt;br /&gt;
05   Robert               Black                15-JAN-84 08-AUG-98    2334.78 Vancouver  Tester&lt;br /&gt;
06   Linda                Green                30-JUL-87 04-JAN-96    4322.78 New York   Tester&lt;br /&gt;
07   David                Larry                31-DEC-90 12-FEB-98    7897.78 New York   Manager&lt;br /&gt;
 alter session set OPTIMIZER_MODE = RULE;&lt;br /&gt;
ID   FIRST_NAME           LAST_NAME            START_DAT END_DATE      SALARY CITY       DESCRIPTION&lt;br /&gt;
---- -------------------- -------------------- --------- --------- ---------- ---------- ---------------&lt;br /&gt;
08   James                Cat                  17-SEP-96 15-APR-02    1232.78 Vancouver  Tester&lt;br /&gt;
8 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from employee;&lt;br /&gt;
&lt;br /&gt;
ID   FIRST_NAME           LAST_NAME            START_DAT END_DATE      SALARY CITY       DESCRIPTION&lt;br /&gt;
---- -------------------- -------------------- --------- --------- ---------- ---------- ---------------&lt;br /&gt;
01   Jason                Martin               25-JUL-96 25-JUL-06    1234.56 Toronto    Programmer&lt;br /&gt;
02   Alison               Mathews              21-MAR-76 21-FEB-86    6661.78 Vancouver  Tester&lt;br /&gt;
03   James                Smith                12-DEC-78 15-MAR-90    6544.78 Vancouver  Tester&lt;br /&gt;
04   Celia                Rice                 24-OCT-82 21-APR-99    2344.78 Vancouver  Manager&lt;br /&gt;
05   Robert               Black                15-JAN-84 08-AUG-98    2334.78 Vancouver  Tester&lt;br /&gt;
06   Linda                Green                30-JUL-87 04-JAN-96    4322.78 New York   Tester&lt;br /&gt;
07   David                Larry                31-DEC-90 12-FEB-98    7897.78 New York   Manager&lt;br /&gt;
&lt;br /&gt;
ID   FIRST_NAME           LAST_NAME            START_DAT END_DATE      SALARY CITY       DESCRIPTION&lt;br /&gt;
---- -------------------- -------------------- --------- --------- ---------- ---------- ---------------&lt;br /&gt;
08   James                Cat                  17-SEP-96 15-APR-02    1232.78 Vancouver  Tester&lt;br /&gt;
8 rows selected.&lt;br /&gt;
SQL&amp;gt; alter session set OPTIMIZER_MODE = choose;&lt;br /&gt;
Session altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- clean the table&lt;br /&gt;
SQL&amp;gt; drop table Employee&lt;br /&gt;
  2  /&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== alter session set optimizer_mode=first_rows==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table myTable&lt;br /&gt;
  2  as&lt;br /&gt;
  3  select rownum id, a.*&lt;br /&gt;
  4    from all_objects a&lt;br /&gt;
  5   where 1=0&lt;br /&gt;
  6  /&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter session set optimizer_mode=first_rows;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select t1.object_name, t2.object_name&lt;br /&gt;
  2    from myTable t1, myTable t2&lt;br /&gt;
  3   where t1.object_id = t2.object_id&lt;br /&gt;
  4     and t1.owner = &amp;quot;WMSYS&amp;quot;&lt;br /&gt;
  5  /&lt;br /&gt;
SQL&amp;gt; alter session set sql_trace=true;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>