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

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. Oracle EBS - Form DEV Env

    1. 创建文件夹resource与forms, 以便存放pll与forms(主要用到APSTAND.fmb, APPSTAND.fmb, TEMPLATE.fmb)文件; 2. 修改注册表 HKEY_ ...

  2. 关于jsp利用EL和struts2标签来遍历ValueStack的东东 ------> List<Map<K,V>> 以及 Map<K,<List<xxx>>> 的结构遍历

    //第一种结构Map<K,<List<xxx>>> <body> <% //显示map<String,List<Object>& ...

  3. Tomcat8 配置NIO

    conf/server.xml 打开:<Executor name="tomcatThreadPool" namePrefix="catalina-exec-&qu ...

  4. openstack debugs

  5. 三大框架之hibernate

    在DB Browser视图里新建一个数据库连接 Connection URL可填  jdbc:oracle:thin:@localhost:1521:orcl 或  jdbc:oracle:thin: ...

  6. 再起航,我的学习笔记之JavaScript设计模式21(命令模式)

    命令模式 概念描述 命令模式(Command): 将请求与实现解耦并封装成独立的对象,从而使不同的请求对客户端的实现参数化 示例代码 命令模式我们可以看成是将创建模块的逻辑封装在一个对象里,这个对象提 ...

  7. 深入浅出多线程——ReentrantLock (二)

    深入浅出多线程——ReentrantLock (一)文章中介绍了该类的基本使用,以及在源码的角度分析lock().unlock()方法.这次打算在此基础上介绍另一个极为重要的方法newConditio ...

  8. python django的ManyToMany简述

    Django的多对多关系 在Django的关系中,有一对一,一对多,多对多的关系 我们这里谈的是多对多的关系 ==我们首先来设计一个用于示例的表结构== # -*- coding: utf-8 -*- ...

  9. Linux和Shell教程

    文档资料参考: 参考:http://www.runoob.com/linux/linux-tutorial.html 软件下载参考: centos 下载地址:https://www.centos.or ...

  10. 豆瓣读书爬虫(requests + re)

    前面整理了一些爬虫的内容,今天写一个小小的栗子,内容不深,大佬请忽略.内容包括对豆瓣读书网站中的书籍的基本信息进行爬取,并整理,便于我们快速了解每本书的中心. 一.爬取信息 每当爬取某个网页的信息时, ...