在之前的工作中,我曾经遇到过表特别大的情况,这个时候我想到了使用with来降低查询的消耗,前文中已经有了描述:http://www.cnblogs.com/wingsless/archive/2012/01/15/2323060.html。今天我突然想到,其实用with和from (select)应该没有本质的差别。所以做了个小实验。

我的表大概7W行,使用with的SQL语句如下:

WITH A AS (SELECT T.OWNER,               T.OBJECT_NAME,               T.OBJECT_ID,               T.DATA_OBJECT_ID,               T.OBJECT_TYPE,               T.LAST_DDL_TIME,               T.EDITION_NAME,               T.NAMESPACEFROM TEST1 TWHERE T.OBJECT_NAME = 'I_USER1')SELECT * FROM A;

SELECT *FROM (SELECT T.OWNER,               T.OBJECT_NAME,               T.OBJECT_ID,               T.DATA_OBJECT_ID,               T.OBJECT_TYPE,               T.LAST_DDL_TIME,               T.EDITION_NAME,               T.NAMESPACEFROM TEST1 TWHERE T.OBJECT_NAME = 'I_USER1');

这个表的索引在OBJECT_NAME上。

这两个语句的执行计划:

可以看到两者的执行计划没有任何区别。也就是说,在表的数据量十分巨大的情况下,不管是使用with还是from (select ...)这种形式,可以通过选择需要的列来降低bytes,从而达到提高效率的目的,但是两者孰优孰劣,应该说是没有太大的区别的。

对WITH和from(select ...)的一点比较相关推荐

  1. epoll(eventpoll)是干嘛的?IO多路转接技术(相较select、poll的优点)

    首先我们要知道epoll是用来干什么的(定义):epoll是一种IO多路转接技术,在LINUX网络编程中,经常用来做事件触发,即当有特定事件到来时,能够检测到,而不必阻塞进行监听,基于事件驱动的IO多 ...

  2. IO复用之select、poll、epoll模型

    因为select.poll.epoll都是IO复用模型的解决方案,它们最终的目标都是为了解决单个应用进程(从应用的角度来看这里也可以理解为单个线程,从系统的角度来看这里面向的就是应用进程)能同时处理多 ...

  3. 有关T-SQL的10个好习惯

    1.在生产环境中不要出现Select * 这一点我想大家已经是比较熟知了,这样的错误相信会犯的人不会太多.但我这里还是要说一下. 不使用Select *的原因主要不是坊间所流传的将*解析成具体的列需要 ...

  4. python io多路复用_python实现IO多路复用 --- selector

    IO多路复用 O多路复用技术是使用一个可以同时监视多个IO阻塞的中间人去监视这些不同的IO对象,这些被监视的任何一个或多个IO对象有消息返回,都将会触发这个中间人将这些有消息IO对象返回,以供获取他们 ...

  5. hibernate fetch属性

    2019独角兽企业重金招聘Python工程师标准>>> Hibernate的fetch="join"和fetch="select" 的一点分析 ...

  6. 写个自己用的jdbc 简单框架

    2019独角兽企业重金招聘Python工程师标准>>> 1.通过xml配置查询条件 <select><select_web value="select * ...

  7. 在ubuntu上搭建IC数模混合环境

    在ubuntu上搭建IC数模混合环境 仅以这篇博客来纪念一下当年因搭环境而掉的头发 文章目录 在ubuntu上搭建IC数模混合环境 对linux新手的一些搭环境常识补充 尽信书不如无书 没有基础的劝退 ...

  8. 数据库高手(DBA专家 ,SSIS,replacation ,tourble shooting)

    http://www.cnblogs.com/qanholas/category/266780.html 随笔分类 - mssql SQL Server 2008 Datetime Cast 成 Da ...

  9. jeee的基础知识(转载)

    Servlet: 1)servlet : servlet是一个特殊的java程序,需要在web服务器上运行,并接收和响应客户端的请求,遵循http协议. 2)Servlet;作用: 主要用于控制层. ...

最新文章

  1. 如何评价英伟达9月2日凌晨发布的最强消费级显卡RTX 3090?
  2. JavaScript数据结构与算法——列表详解(上)
  3. c语言程序设计常用语句格式,全国计算机考试二级C语言程序设计要求
  4. 这个深度学习工业质检工具,效率提升30%,质量提高80%
  5. PKI与证书服务应用-要点总结
  6. cmd 命令行方式执行 matlab 脚本
  7. 关于 Swift 单例的例子
  8. ibatis 直接升格为 apache 一级项目了
  9. 科创人·黑湖科技CEO周宇翔:To B产品不应忽视产品体验,制造业的未来是需求定义生产
  10. layui框架实战案例(9):layPage 静态数据分页组件
  11. 关于内存条的知识要点⑴
  12. 前阿里P10赵海平被打3.25后离职,加入字节跳动,职级或为4+
  13. 客户想要 VS 客户预算
  14. Codeforces-868C - Qualification Rounds - 思维
  15. WIN10计算机用户怎么改名,win10怎么改名字_win10怎么改用户名字
  16. FST构图可视化详解
  17. throw 和 throws 的区别
  18. 转《魏炜的举世无双大博客》
  19. 【云原生Docker系列第三篇】Docker网络模式(在失去的所有人里,我最怀念自己 )
  20. svn更新代码提示“系统找不到指定路径”

热门文章

  1. 第二十三届高交会闭幕 奇安信三项产品获评“优秀产品奖”
  2. Linux 之 hugepage 大页内存理论
  3. DockerFile最佳实践:
  4. 运维监控利器Nagios之:Nagios的日常维护和管理
  5. [Java] 蓝桥杯 BASIC-3 基础练习 字母图形
  6. 蓝桥杯 ALGO-96 算法训练 Hello World!
  7. 蓝桥杯 ALGO-67 算法训练 最大值与最小值的计算
  8. python拆分字符串函数_Python字符串操作-拆分,切片,从HEX转换为DEC
  9. Eclipse 安装 Fatjar.jar失败的解决方法
  10. 在 Linux 上配置一个 syslog 服务器