首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

【求解】distinct与group by效率求解,该如何处理

2012-01-28 
【求解】distinct与group by效率求解当语句中没有使用聚合函数的时候使用distinct与group by都能达到去除重

【求解】distinct与group by效率求解
当语句中没有使用聚合函数的时候使用distinct与group by都能达到去除重复的效果
例:

SQL code
--1select distinct col from tb--2select col from tb group by col

这两种情况那个效率会更好点呢?
效率差别大吗?
如果是多列有区别吗?
SQL code
 select distinct col,col2,col3,col4........from tb


[解决办法]
帮顶,学习
[解决办法]
没发言权 

回去研究下 我始终认为是group by的效率高

对于distinct需要慎用

研究结果 回去再贴上
[解决办法]

来听课的!
[解决办法]
从执行计划上看是一样的
[解决办法]
DISTINCT和GROUP BY的区别
[解决办法]
个人觉得如果单是去重效率应该是一样的
[解决办法]
看了 楼上的 连接 还是不慎了解
[解决办法]
做了一个简单的测试,感觉两者效率很接近,不晓得这个测试能不能说明问题
SQL code
------------------------------Version--------------------------------------------Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) --    Nov 24 2008 13:01:59 --    Copyright (c) 1988-2005 Microsoft Corporation--    Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)----------------------------------------> 测试数据:[tb]if object_id('[tb]') is not null drop table [tb]create table [tb]([id] int,[date] datetime)insert [tb] select rand()*10000,getdate()go 1000000select distinct id from tb/*(10000 行受影响)SQL Server 执行时间:   CPU 时间 = 780 毫秒,占用时间 = 634 毫秒。*/select id from tb group by id/*(10000 行受影响)SQL Server 执行时间:   CPU 时间 = 796 毫秒,占用时间 = 641 毫秒。*/--建立聚集索引create  clustered index idtbID ON tb(id)select distinct id from tb/*(10000 行受影响)SQL Server 执行时间:   CPU 时间 = 172 毫秒,占用时间 = 1495 毫秒。*/select id from tb group by id/*(10000 行受影响)SQL Server 执行时间:   CPU 时间 = 172 毫秒,占用时间 = 1489 毫秒。*/
[解决办法]
帖子不见了
[解决办法]
我是来学习的

热点排行