那个要多次调用才需要物化的。
只调用一次,物化没用

MATERIALIZE 

语法:MATERIALIZE 

描述:指示优化器将内联视图实体化————执行过程中会创建基于视图的临时表。

with dd as (select  object_type,owner,object_Id    from dba_objects)
select OBJECT_TYPE, count(*)
from dd
group by OBJECT_TYPE
union all
select owner, count(*) from dd group by owner; with dd as (select /*+materialize */object_type,owner,object_Id from dba_objects)
select OBJECT_TYPE, count(*)
from dd
group by OBJECT_TYPE
union all
select owner, count(*) from dd group by owner;

下面有文章介绍其好处

http://www.itpub.net/thread-1443086-1-1.html

WITH子句与未公开HINT MATERIALIZE联合使用, 取代临时表

运行环境:

   
ORACLE,  Release 11.2.0.1.0.

描述:

在SQL-99中,查询语句增加了WITH子句,可以使相同的子查询在一个sql中只执行一次,另外也可以把复杂的查询简化、增加可读性。

另外,我们知道利用ORACLE的GTT(GLOBAL TEMPORARY)全局临时表、MATERIALIZE VIEW物化视图来提高查询的效率。

其实我们可以通过WITH与未公开的提示(HINT)MATERIALIZE联合使用,在子查询结果记录数不是太多的情况下,取代GTT和物化视图。

,,,,,,,,

执行结果,花费时间减少一半。

materialize这个hint是oracle没有公开的提示,它指示ORACLE CBO在with子句内物化临时表。这在oracle10g之后是没有必要的,但是实际使用with时,如果发现没有被物化,可以用此hint来强制oracle作此处理,使此子查询(临时表)只被处理一次。

结论:

    在一定的情况下,我们可以用with与hint materialize结合的方式取代全局临时表和物化视图来提高查询效率,使用情况如下。

1.      当次查询的结果记录数不是太多的情况下,如果结果记录集比较庞大,还是推荐使用GTT,因为那里面可以指定索引等。

2.      查询值和查询过滤条件中如果含有重复执行的表达式,可以用此方式减少一次计算。

3.      相同子查询被多次使用。

参考page:

http://www.remote-dba.net/oracle ... with_sql_clause.htm

http://www.dba-oracle.com/t_materialize_sql_hint.htm

我看了下 感觉不是加了物化提示才减少时间 或许是 SELECT /*+ NO_MERGE(V_TMP) FULL(V_TMP) */  * 这提示减少时间吧

深圳-道道(726442711)  17:25:53

加提示之后,就是临时表的形式了

那个要多次调用才需要物化的。

只调用一次,物化没用

MATERIALIZE 

语法:MATERIALIZE 

描述:指示优化器将内联视图实体化————执行过程中会创建基于视图的临时表。 

可以防止 外层谓词内推和内联视图展开.

WITH 语句本身可以共享结果 在同一条语句内  增加物化提示 是否是多余之举 而且是官方非公开的

WITH+HInt MATERIALIZE 不见得有效的更多相关文章

  1. ORACLE使用WITH AS和HINT MATERIALIZE优化SQL解决FILTER效率低下

     在做项目的过程中,一个页面使用类似例如以下的SQL查询数据.为了保密和使用方便,我把项目中有关的表名和字段替换使用ORACLE数据库中的系统表和字段. 在我所做的项目中.类似ALL_TABLES ...

  2. oracle hint inline materialize

    当我们使用with的时候,oracle可能会把with里面的结果转换为暂时表.这是仅仅是可能,由于CBO会推断. inline是不转换成暂时表.materialize是强制转换成暂时表. 制造数据 d ...

  3. with as 加上 materialize hint 生成实质临时表

    WITH AS: 就是将一个子查询部分独立出来,有时候是为了提高SQL语句的可读性,有时候是为了提高SQL语句性能. 如果一个SQL语句中,某个表会被访问多次,而且每次访问的限制条件一样的话,就可以使 ...

  4. WITH AS and materialize hints

    WITH AS: 就是将一个子查询部分独立出来,有时候是为了提高SQL语句的可读性,有时候是为了提高SQL语句性能. 如果一个SQL语句中,某个表会被访问多次,而且每次访问的限制条件一样的话,就可以使 ...

  5. 转://WITH AS and materialize hints

    WITH AS: 就是将一个子查询部分独立出来,有时候是为了提高SQL语句的可读性,有时候是为了提高SQL语句性能. 如果一个SQL语句中,某个表会被访问多次,而且每次访问的限制条件一样的话,就可以使 ...

  6. oracle优化-leading提示和ordered提示以及materialize提示

    以下内容适用于oracle 10.2.0.5及其以上版本 一个查询很慢,原始SQL如下: select a.* from (select ssi.ID, 'small_station_info' TB ...

  7. mongodb之使用explain和hint性能分析和优化

    当你第一眼看到explain和hint的时候,第一个反应就是mysql中所谓的这两个关键词,确实可以看出,这个就是在mysql中借鉴过来的,既然是借鉴 过来的,我想大家都知道这两个关键字的用处,话不多 ...

  8. {"errcode":40097,"errmsg":"invalid args hint: [vjNe7xxxxxx8vr19]"}——记录一次微信错误处理

    错误情况概述: 启动应用之后,微信调用 相机拍照 等接口是可以正常使用的, 但是过了一段时间(2个小时左右--token/jsapi_ticket的过期时间),微信调用相机拍照的功能失效,启用debu ...

  9. 【转】Oracle索引HINT的使用

    转自:Oracle索引HINT的使用       存储在数据库中数据的分布情况开发人员或管理员比Oracle优化器更加的清楚,在优化器不能作出最有查询路径选择的情况下,使用HINT(提示)人为的固定查 ...

随机推荐

  1. Best Component for Bitmap Image

    The best is to purchase ImageEn and use the latest version. Coz nothing compares to ImageEn.... But ...

  2. Flask web开发 处理Session

    本文我们在上篇文章<Flask web开发  处理POST请求(登录案例)>的基础上,来讲述Flask对session的支持. 在上面案例上,我们需要修改和新增如下功能 1.登录成功后的 ...

  3. linux下find命令-atime,-ctime,-mtime真正含义

    linux下的-atime,-ctime,-mtime含义我们经常会在论坛或者群里面被问到,在linux或者unix下如何查看某文件的创建日期?经常又会有人说用find命令加选项-ctime,其实这里 ...

  4. 基于visual Studio2013解决C语言竞赛题之0517矩阵

     题目

  5. 正态分布(Normal distribution)又名高斯分布(Gaussian distribution)

    正态分布(Normal distribution)又名高斯分布(Gaussian distribution),是一个在数学.物理及project等领域都很重要的概率分布,在统计学的很多方面有着重大的影 ...

  6. 再造 “手机QQ” 侧滑菜单(二)——高仿左视图

    代码示例:https://github.com/johnlui/SwiftSideslipLikeQQ 本篇文章中,我们将一起使用 Auto Layout 高仿手Q的左侧视图,力争达成从布局到动画的全 ...

  7. Android中如何查看内存(下)

    实例1 int cnt=0; final static int kBufferMinSize=1000; final static int kBufferMaxSize=2000; StringBuf ...

  8. Bootstrap技术: 模式对话框的使用

    一.概述 说到模式对话框,大家肯定都会想到windows下GUI程序,在gui程序中,有大量的对话框. 在web程序中,随着页面交互式功能的增多,有很多场景下也会用到对话框.在html原生的支持下,有 ...

  9. [置顶] CopyU!v2插件合集 [2013年7月18日更新]

    这里提供了所有可供CopyU!v2使用的功能插件,您可以根据自己的需要下载安装使用,需要提醒您的是,安装过多的插件会影响CopyU!的运行性能,请合理的安装使用! 1.打包插件 版本:1.0.12.1 ...

  10. Java基础06 组合

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经尝试去定义类.定义类,就是新建了一种类型(type).有了类,我们接着构造 ...