difference between count(*) and count(col) in the query
difference between count(*) and count(col) in the query
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各列2