一个SQL Server 的效率问题?(200分)

  • 主题发起人 主题发起人 lingxin
  • 开始时间 开始时间
L

lingxin

Unregistered / Unconfirmed
GUEST, unregistred user!
select count(*) as counts from table
select count(myid) as counts from table
myid 为主键
上面两句哪一句运行效率更高,
我认为是一样的,但没有依据。
你认为了?重要的是依据
 
IE有问题发了好多次才发出来
 
SQL HELP:Count(«Set»[, ExcludeEmpty | IncludeEmpty])
--返回集合中的单元数。该语法允许分别使用 ExcludeEmpty 或 IncludeEmpty 标志来排除或包含空单元。
"*"的计算在这里比"MYID"集合的计算要花长的时间。因为"*"集合一定不会小于"MYI",即便是只有一个字段"MYID"
的情况下,"*"也该是用运算的方式取出数据集合,而没有"MYID"来的直接
 
既然有主健当然第二句号
 
和主键没有关系啊,naughtboy误导
 
快给分吧,我再教你个更快的方法,一定不骗你
 
对,是一样的,
>>>select count(myid) as counts from table
是统计myid is not null的记录条数,但myid是主键,就不用判断了,
如果myid在表中可以为空,系统会判断当前记录会判断myid是否为null,
这样会导致速度慢一点
>>>select count(*) as counts from table
就不需要了,
 
Count 的效率应该和括号中的内容无关。
 
还有一个更快的方法!我忘了,就是不用统计,直接读表的[:D]
 
jsxjd你得给我个理由!!
 
count(*)是个固定的方法:(,以前理解错了。这个比什么都不慢。
我叛变了
 
select count(*) as counts from table
select count(myid) as counts from table
myid 为主键
当然是第二条语句速度要快,myid为主键,值都不能为空,使用COUNT(*),会向服务器取得字段名,会降低速度,这在很多书上都提到过。
 
count(*)是在SQL中特定的方法,不是COUNT(),和*的组合,我以前就错在这里。
所以我现在认为在它处理的时候该不会有*的运算,而是直接取的COUNT。有人同意么??
 
效率是一样的:
select count('x') from X
select count(Field) from X
select count(*) from X
 

Similar threads

S
回复
0
查看
835
SUNSTONE的Delphi笔记
S
S
回复
0
查看
765
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部