SQL> select count(*) from (select id from t group by id); COUNT(*)
----------
2000已用时间: 00: 00: 00.20Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 VIEW
3 2 SORT (GROUP BY)
4 3 TABLE ACCESS (FULL) OF 'T'SQL> select count(*) from (select distinct id from t); COUNT(*)
----------
2000已用时间: 00: 00: 00.20Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 VIEW
3 2 SORT (UNIQUE)
4 3 TABLE ACCESS (FULL) OF 'T'差别不大,都是进行全表扫描 然后排序
----------
2000已用时间: 00: 00: 00.20Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 VIEW
3 2 SORT (GROUP BY)
4 3 TABLE ACCESS (FULL) OF 'T'SQL> select count(*) from (select distinct id from t); COUNT(*)
----------
2000已用时间: 00: 00: 00.20Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 VIEW
3 2 SORT (UNIQUE)
4 3 TABLE ACCESS (FULL) OF 'T'差别不大,都是进行全表扫描 然后排序
解决方案 »
- plsql中的不等于符号是否既可以用<>也可以用!=
- 求oracle数据库下载链接,只下载数据库就可以了
- powerdesigner 生成的sql脚本 不能执行
- 怎么取得Oracle中所有执行过的SQL语句
- 小弟想考OCP, 请问广州哪里有专业的OCP培训,请了解情况的朋友告知,谢谢
- 在ORACLE中怎么实现每隔一定时间,将表A的数据统计并存储到表B中
- Oracle可以处理所谓的“分布式事务”吗?了解这方面的高手请赐教!
- 急救,SYS账号是不是只能用于服务器端本身?
- 想串行排队执行任务,应该怎么做?
- oracle不定行列统计
- 新手求教:在有自动递增的表中如何用SQL语句插入数据?
- 指定的索引不存在?why?
----------
2391165已用时间: 00: 00: 46.06Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 TABLE ACCESS (FULL) OF 'test_table'
SQL> select count(*) from ( select distinct col1 from test_table); COUNT(*)
----------
2391066已用时间: 00: 00: 13.00Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 VIEW
3 2 SORT (UNIQUE)
4 3 TABLE ACCESS (FULL) OF 'test_table'
SQL> select count(*) from ( select col1 from test_table group by col1); COUNT(*)
----------
2391066已用时间: 00: 00: 12.07Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 VIEW
3 2 SORT (GROUP BY)
4 3 TABLE ACCESS (FULL) OF 'test_table'
SQL> select count(*) from ( select distinct col2 from test_table); COUNT(*)
----------
5已用时间: 00: 00: 02.06Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 VIEW
3 2 SORT (UNIQUE)
4 3 TABLE ACCESS (FULL) OF 'test_table'SQL> select count(*) from ( select col2 from test_table group by col1); COUNT(*)
----------
2391066已用时间: 00: 00: 12.07Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 VIEW
3 2 SORT (GROUP BY)
4 3 TABLE ACCESS (FULL) OF 'test_table'
SQL> select count(*) from ( select distinct col2 from test_table); COUNT(*)
----------
5已用时间: 00: 00: 02.07Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 VIEW
3 2 SORT (UNIQUE)
4 3 TABLE ACCESS (FULL) OF 'test_table'
SQL> select count(*) from ( select col2 from test_table group by col2); COUNT(*)
----------
5已用时间: 00: 00: 02.07Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 VIEW
3 2 SORT (GROUP BY)
4 3 TABLE ACCESS (FULL) OF 'test_table'
所以简单的表面测试看不出任何差别.