select  count(*) from "KLZ_CPU";28253125运行上面一句话用了01:17分钟
在这张表里,我想用对Server_Name这个字段进行统计,要求不重复
问题是:
1.select distinct count("server_name") from "KLZ_CPU";
这样写不可以2.如果可以,那怎么缩短这句话的统计时间?

解决方案 »

  1.   


    select count(distinct "server_name") from "KLZ_CPU";
      

  2.   

    你这个SQL没办法缩短时间,只会全表扫描!
      

  3.   


    select count(distinct "server_name") from "KLZ_CPU";
      

  4.   

    SELECT COUNT(主键) from "KLZ_CPU"
    不知道会不会快点
      

  5.   

    你这样子用distinct是不行的,没有什么作用,因为它是先执行了count,所以查出来的件数不会改变的,可以用下子查询:   
    select count(*) from (select distinct server_name from KLZ_CPU) TAB
      

  6.   

    或者这样子:select count(distinct "server_name") from "KLZ_CPU"; 但是时间不会短
      

  7.   


    select  count(distinct "server_name") from "KLZ_CPU";
      

  8.   

    楼主,那你改成这个试下
    select count(1) from KLZ_CPU
      

  9.   

    另一个方法就是给你的表建立一个索引,然后用索引count
      

  10.   

    你测试这个的时间了吗?是不是一样?
    SELECT COUNT(DISTINCT server_name) FROM KLZ_CPU
      

  11.   

    这个时间也是01:17分钟SELECT COUNT(DISTINCT server_name) FROM KLZ_CPU
    是01:24分钟
      

  12.   

    你的表有索引吗?或者你用主key去count,时间应该短点