difference between count(*) and count(col) in the query

来源:互联网 发布:c语言中temp 编辑:程序博客网 时间:2024/06/02 15:43
1.建立测试表
declare
 l_sql varchar2(32767);
begin
  l_sql:='create table t(';
  for i in 1..999
  loop 
  l_sql:=l_sql||'n'||i|| ' number, ';
  end loop;
  l_sql:=l_sql||'pad varchar2(50)) pctfree 10';
  execute immediate l_sql;
end;
/
这里是建议一张999个字段的表
2.插入数据
declare
 l_sql varchar2(32767);
begin
 l_sql:='insert into t select ';
 for i in 1..999
 loop
  l_sql:=l_sql|| '0,';
 end loop;
 l_sql:=l_sql|| 'null from dual connect by level<=10000';
 execute immediate l_sql;
 commit;
end;
/
插入10000条数据
3.查看执行的时间
DECLARE
  l_dummy PLS_INTEGER;
  l_start PLS_INTEGER;
  l_stop PLS_INTEGER;
  l_sql VARCHAR2(100);
BEGIN
  l_start := dbms_utility.get_time;
  FOR j IN 1..20
  LOOP
    EXECUTE IMMEDIATE 'SELECT count(*) FROM t' INTO l_dummy;
  END LOOP;
  l_stop := dbms_utility.get_time;
  dbms_output.put_line('COUNT星20次的时间是:'||to_char((l_stop-l_start)/100,'0.99'));

  FOR i IN 1..250
  LOOP
    l_sql := 'SELECT count(n' || i || ') FROM t';
    l_start := dbms_utility.get_time;
    FOR j IN 1..20
    LOOP
      EXECUTE IMMEDIATE l_sql INTO l_dummy;
    END LOOP;
    l_stop := dbms_utility.get_time;
    dbms_output.put_line('COUNT各列20次的时间是:'||to_char((l_stop-l_start)/100,'0.99'));
  END LOOP;
END;
/

输出结果:
COUNT星20次的时间是: 0.14
COUNT各列20次的时间是: 0.14
COUNT各列20次的时间是: 0.15
COUNT各列20次的时间是: 0.16
COUNT各列20次的时间是: 0.15
COUNT各列20次的时间是: 0.15
COUNT各列20次的时间是: 0.16
COUNT各列20次的时间是: 0.16
COUNT各列20次的时间是: 0.15
COUNT各列20次的时间是: 0.16
COUNT各列20次的时间是: 0.16
COUNT各列20次的时间是: 0.16
COUNT各列20次的时间是: 0.16
COUNT各列20次的时间是: 0.16
COUNT各列20次的时间是: 0.16
COUNT各列20次的时间是: 0.16
COUNT各列20次的时间是: 0.17
COUNT各列20次的时间是: 0.17
COUNT各列20次的时间是: 0.17
COUNT各列20次的时间是: 0.17
COUNT各列20次的时间是: 0.17
COUNT各列20次的时间是: 0.18
COUNT各列20次的时间是: 0.17
COUNT各列20次的时间是: 0.18
COUNT各列20次的时间是: 0.17
COUNT各列20次的时间是: 0.18
COUNT各列20次的时间是: 0.18
COUNT各列20次的时间是: 0.18
COUNT各列20次的时间是: 0.17
COUNT各列20次的时间是: 0.18
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.18
COUNT各列20次的时间是: 0.18
COUNT各列20次的时间是: 0.18
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.18
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.18
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.20
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.20
COUNT各列20次的时间是: 0.20
COUNT各列20次的时间是: 0.19
COUNT各列20次的时间是: 0.20
COUNT各列20次的时间是: 0.20
COUNT各列20次的时间是: 0.20
COUNT各列20次的时间是: 0.20
COUNT各列20次的时间是: 0.21
COUNT各列20次的时间是: 0.20
COUNT各列20次的时间是: 0.20
COUNT各列20次的时间是: 0.20
COUNT各列20次的时间是: 0.21
COUNT各列20次的时间是: 0.20
COUNT各列20次的时间是: 0.21
COUNT各列20次的时间是: 0.21
COUNT各列20次的时间是: 0.21
COUNT各列20次的时间是: 0.21
COUNT各列20次的时间是: 0.21
COUNT各列20次的时间是: 0.21
COUNT各列20次的时间是: 0.21
COUNT各列20次的时间是: 0.22
COUNT各列20次的时间是: 0.21
COUNT各列20次的时间是: 0.22
COUNT各列20次的时间是: 0.21
COUNT各列20次的时间是: 0.22
COUNT各列20次的时间是: 0.22
COUNT各列20次的时间是: 0.22
COUNT各列20次的时间是: 0.22
COUNT各列20次的时间是: 0.22
COUNT各列20次的时间是: 0.22
COUNT各列20次的时间是: 0.22
COUNT各列20次的时间是: 0.22
COUNT各列20次的时间是: 0.23
COUNT各列20次的时间是: 0.23
COUNT各列20次的时间是: 0.23
COUNT各列20次的时间是: 0.22
COUNT各列20次的时间是: 0.23
COUNT各列20次的时间是: 0.23
COUNT各列20次的时间是: 0.23
COUNT各列20次的时间是: 0.23
COUNT各列20次的时间是: 0.23
COUNT各列20次的时间是: 0.23
COUNT各列20次的时间是: 0.24
COUNT各列20次的时间是: 0.23
COUNT各列20次的时间是: 0.23
COUNT各列20次的时间是: 0.24
COUNT各列20次的时间是: 0.23
COUNT各列20次的时间是: 0.24
COUNT各列20次的时间是: 0.24
COUNT各列20次的时间是: 0.24
COUNT各列20次的时间是: 0.23
COUNT各列20次的时间是: 0.24
COUNT各列20次的时间是: 0.24
COUNT各列20次的时间是: 0.24
COUNT各列20次的时间是: 0.25
COUNT各列20次的时间是: 0.24
COUNT各列20次的时间是: 0.24
COUNT各列20次的时间是: 0.25
COUNT各列20次的时间是: 0.24
COUNT各列20次的时间是: 0.25
COUNT各列20次的时间是: 0.24
COUNT各列20次的时间是: 0.25
COUNT各列20次的时间是: 0.25
COUNT各列20次的时间是: 0.25
COUNT各列20次的时间是: 0.25
COUNT各列20次的时间是: 0.25
COUNT各列20次的时间是: 0.25
COUNT各列20次的时间是: 0.25
COUNT各列20次的时间是: 0.26
COUNT各列20次的时间是: 0.25
COUNT各列20次的时间是: 0.26
COUNT各列20次的时间是: 0.25
COUNT各列20次的时间是: 0.26
COUNT各列20次的时间是: 0.25
COUNT各列20次的时间是: 0.26
COUNT各列20次的时间是: 0.26
COUNT各列20次的时间是: 0.26
COUNT各列20次的时间是: 0.26
COUNT各列20次的时间是: 0.26
COUNT各列20次的时间是: 0.26
COUNT各列20次的时间是: 0.27
COUNT各列20次的时间是: 0.26
COUNT各列20次的时间是: 0.26
COUNT各列20次的时间是: 0.27
COUNT各列20次的时间是: 0.26
COUNT各列20次的时间是: 0.27
COUNT各列20次的时间是: 0.26
COUNT各列20次的时间是: 0.27
COUNT各列20次的时间是: 0.27
COUNT各列20次的时间是: 0.27
COUNT各列20次的时间是: 0.27
COUNT各列20次的时间是: 0.27
COUNT各列20次的时间是: 0.27
COUNT各列20次的时间是: 0.27
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.27
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.27
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.28
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.34
COUNT各列20次的时间是: 0.33
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.29
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.30
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.32
COUNT各列20次的时间是: 0.31
COUNT各列20次的时间是: 0.32
可见越是在后面的列需要的时间越久,但是和count(1)和count(*)是一样的,因为1是数据不是列,不需要定位。