Oracle SAMPLE语句学习(四)SAMPLE扫描和HINT的关系

Oracle的文档上描述,当不包含SAMPLE语句的时候,可以使用HINT来指定执行计划,实际上即使包含SAMPLE语句,HINT也是生效的。

SQL> SELECT OBJECT_ID FROM T SAMPLE (1) WHERE WNER = USER;

OBJECT_ID

----------

60607

70958

执行计划

----------------------------------------------------------

Plan hash value: 3630032853

-------------------------------------------------------------------------------------------

| Id  | Operation                   | Name        | Rows  | Bytes | Cost (%CPU)| Time     |

-------------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT            |             |    22 |   506 |     6   (0)| 00:00:01 |

|   1 |  TABLE ACCESS BY INDEX ROWID| T           |    22 |   506 |     6   (0)| 00:00:01 |

|*  2 |   INDEX RANGE SCAN          | IND_T_OWNER |    22 |       |     5   (0)| 00:00:01 |

-------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

2 - access("OWNER"=USER@!)

filter(ORA_HASH(ROWID,0,2211694651,'SYS_SAMPLE',0)<42949673)

统计信息

----------------------------------------------------------

0  recursive calls

0  db block gets

6  consistent gets

4  physical reads

0  redo size

452  bytes sent via SQL*Net to client

385  bytes received via SQL*Net from client

2  SQL*Net roundtrips to/from client

0  sorts (memory)

0  sorts (disk)

2  rows processed

SQL> SELECT /*+ FULL(T) */ OBJECT_ID FROM T SAMPLE (1) WHERE WNER = USER;

未选定行

执行计划

----------------------------------------------------------

Plan hash value: 2767392432

本栏目更多精彩内容:http://www.bianceng.cn/database/Oracle/

----------------------------------------------------------------------------

| Id  | Operation           | Name | Rows  | Bytes | Cost (%CPU)| Time     |

----------------------------------------------------------------------------

|   0 | SELECT STATEMENT    |      |    22 |   506 |   158   (2)| 00:00:02 |

|*  1 |  TABLE ACCESS SAMPLE| T    |    22 |   506 |   158   (2)| 00:00:02 |

----------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

1 - filter("OWNER"=USER@!)

统计信息

----------------------------------------------------------

1  recursive calls

0  db block gets

517  consistent gets

430  physical reads

0  redo size

时间: 2025-01-30 13:51:12

Oracle SAMPLE语句学习(四)SAMPLE扫描和HINT的关系的相关文章

Oracle SAMPLE语句学习(三)INDEX扫描的SAMPLE语句

接着上一篇的例子,在表上建立两个索引: SQL> CREATE INDEX IND_T_OWNER ON T (OWNER); 索引已创建. SQL> CREATE INDEX IND_T_ID ON T (OBJECT_ID); 索引已创建. 对于全表扫描使用SAMPLE语句,从执行计划中可以直接看出来: SQL> SELECT OWNER, OBJECT_ID FROM T SAMPLE (0.01); OWNER                           OBJECT_I

Oracle SAMPLE语句学习(二)SEED语句简介

对于普通的SAMPLE语句,Oracle每次返回的结果是不固定的: SQL> SELECT OBJECT_ID FROM T SAMPLE (0.01); OBJECT_ID ---------- 35199 执行计划 ---------------------------------------------------------- Plan hash value: 2767392432 -----------------------------------------------------

Oracle SAMPLE语句学习(一) 介绍SAMPLE用法

看一个简单的例子: SQL> CREATE TABLE T AS 2  SELECT * FROM DBA_OBJECTS; 表已创建. SQL> SET AUTOT ON SQL> SELECT COUNT(*) FROM T; COUNT(*) ---------- 49611 执行计划 ---------------------------------------------------------- Plan hash value: 2966233522 ------------

ORACLE性能诊断―学习statspack笔记(四)[扩展statspack收集服务器统计]

oracle|笔记|服务器|统计|性能 ORACLE性能诊断―学习statspack笔记(四)[扩展statspack收集服务器统计]   作者:刘颖博 时间:2004-3-22 mail:liuyingbo@126.com,请指正   转载请注明出处及作者   说明:由于STATSPACK并不能获取全面分析性能问题所需要的所有信息,所以需要扩展其收集服务器的统计信息.(本文环境REDHAT Linux7.2)   VMSTAT介绍 通过STATSPACK收集服务器信息,主要通过收集VMSTAT

艾伟:C#多线程学习(四) 多线程的自动管理(线程池)

本系列文章导航 C#多线程学习(一) 多线程的相关概念 C#多线程学习(二) 如何操纵一个线程 C#多线程学习(三) 生产者和消费者 C#多线程学习(四) 多线程的自动管理(线程池) C#多线程学习(五) 多线程的自动管理(定时器) C#多线程学习(六) 互斥对象 在多线程的程序中,经常会出现两种情况: 一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应 这一般使用ThreadPool(线程池)来解决: 另一种情况:线程平时都处于休眠状态,只是周期性地被

Oracle SQL语句处理过程

oracle|过程|语句 07年开始,换了一家公司,数据库使用的是ORACLE10G,以前一直使用的是INFORMIX和MSSERVER,感觉ORACLE功能还真强大,比Informi和msserver都好用多啦,体系结构和管理方式都有了许多变化,但使用两个月下来,其实数据库的基本原理是一样的,现结合以前的工作经验和学习的资料,总结ORACLE数据库的一些知识,今天先写Oracle SQL语句处理过程:            一般来说,数据库处理SQL都会经过三个过程:分析.执行.返回结果,比如

ORACLE性能诊断―学习statspack笔记(二)[概述]

oracle|笔记|性能 ORACLE性能诊断―学习statspack笔记(二)[概述]   作者:刘颖博 时间:2004-3-3 mail:liuyingbo@126.com,请指正   转载请注明出处及作者   ORACLE性能诊断涉及对象   A.      服务器.网络以及磁盘(外部的环境) B.      实例(SGA,后台进程) C.      对象(表,索引,段--) D.     SQL E.      设计(指的是应用的设计,这部分一般说来是很难改变了)   ORACLE性能诊

ORACLE性能诊断―学习statspack笔记(三)[表的分类]

oracle|笔记|性能 ORACLE性能诊断―学习statspack笔记(三)[表的分类]   作者:刘颖博 时间:2004-3-10 mail:liuyingbo@126.com,请指正   转载请注明出处及作者   说明:STATSPACK并不能获取全面分析性能问题所需要的所有信息.特别是问题出在DISK,RAM,CPU以及NETWORK等数据库外部.   STATSPACK表的分类 A:控制表:stats$database_instance ,stats$snapshot B:参数表:s

oracle sql语句统计数据写法

问题描述 oracle sql语句统计数据写法 有3张表,A表活动B表活动地区C表地区商家 A表关联B表,B表关联C表都是一对多,现在需返回活动名称,活动地区数,地区商家数 解决方案 SELECT A.活动名称COUNT(1)SUM(SELECT COUNT(1) FROM C WHERE A=B AND B=C) FROM A INNER JOIN B ON A=B GROUP BY A.活动名称 解决方案二: SELECT T1.活动 AS 活动名称 COUNT(T2.地区) AS 活动地区