select ename from emp select ename from emp;select * from ( select ename from emp);请教各位大虾,上面两痛苦语句在执行效率上有多大差距?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 从下面的执行计划上看没什么区别,SQL> explain plan for select ename from emp;已解释。SQL> select 2 SQL> SQL> SELECT plan_table_output 2 FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE')); PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------Plan hash value: 2872589290--------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 14 | 84 | 3 (0)| 00:00:01 || 1 | TABLE ACCESS FULL| EMP | 14 | 84 | 3 (0)| 00:00:01 |--------------------------------------------------------------------------已选择8行。SQL> explain plan for select * from (select ename from emp);已解释。SQL> SELECT plan_table_output 2 FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE')); PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------Plan hash value: 2872589290--------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 14 | 84 | 3 (0)| 00:00:01 || 1 | TABLE ACCESS FULL| EMP | 14 | 84 | 3 (0)| 00:00:01 |--------------------------------------------------------------------------已选择8行。 我的意思是,有较长的一个查询语句sSQL,语句不固定,在程序中,想这样做:select * from ( sSql)where XXXX='xxxx';包面套一层SELECT,对查询效率有多大影响? CSDN还在升级吗?为什么回帖这么困难? 2楼和3楼,访问CSDN是不是很蜗牛啊,简直没法忍受了。系统升级了,咋这么慢呢。 1. 如果内层sql返回的结果集完全可以放在内存里,几乎没什么影响2. 如果结果集很大,需要磁盘缓存,那会降低性能的 项目中药实现个需求,在线等(可能会用到行列转换)在线等 加一oracle群遇到的难题!!!! 急急、oracle优化、在线结贴!!! 为什么从表中查询字段不为空的数据查不到记录呢? SQL语句问题 有谁能搞定吗,参与有分!!!!! 请教一个问题,关于数据库分页查询。 狂晕,300分,为什么改变条件的顺序会影响查询结果??? 老大帮忙看看jb连接oracle9i的问题? SQLSERVER同ORACLE的区别? 存储过程的问题 关于oracle下载的问题
2
SQL>
SQL> SELECT plan_table_output
2 FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE')); PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 2872589290--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 14 | 84 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 14 | 84 | 3 (0)| 00:00:01 |
--------------------------------------------------------------------------已选择8行。SQL> explain plan for select * from (select ename from emp);已解释。SQL> SELECT plan_table_output
2 FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE')); PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 2872589290--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 14 | 84 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 14 | 84 | 3 (0)| 00:00:01 |
--------------------------------------------------------------------------已选择8行。
select * from (
sSql
)
where XXXX='xxxx';
包面套一层SELECT,对查询效率有多大影响?
为什么回帖这么困难?
1. 如果内层sql返回的结果集完全可以放在内存里,几乎没什么影响
2. 如果结果集很大,需要磁盘缓存,那会降低性能的