如何得到SQL查询返回的记录数?(50分)

  • 主题发起人 主题发起人 tqz
  • 开始时间 开始时间
用Select Count(XX) from XXX得到纪录数, 效率如何? 我想它比
SELECT * FROM XXX肯定要快,但到底它还是要查找一遍的.请有实
际试验过的大侠们谈谈.
 
对于有PrimeryKey的数据表, 如果在 XX上有索引,
Select count(XX) from XXX 在server 处只要
读取这个索引的记录数, 根本就不用一条条的数,( Null 值不记录索引),
同理Select Count(*) from XXX 就只要读主键的索引纪录数。

Select * From XXX 就更简单,先从前数200条发送到客户端,然后等着客户段的
下一次请求。

最终要点, 每个数据表都应该有一个主键,这一提高数据库性能的首要条件,
 
呵呵,seasky的话我爱听:)
这样就用Select count...吧。
大家没意见的话,我就要分赃了...
 
多人接受答案了。
 
有时用RecordCount会出现问题,但不可否认,该方法仍旧是一个相当有用的方法。
有时可以用select count(XX) from (XXX) where (XXX)解决问题,或者采用笨办法:
var
i : integer;
begin
i:=0;
if not Query1.Active then
Query1.Open;
Query1.first;
while not Query1.EOF do
begin
i := i + 1;
Query1.Next;
end;
end;
 
后退
顶部