用count(*)用时太长,如果数据量大的话,
有没有什么方法快速的判断出表中有无数据

解决方案 »

  1.   

    select count(*) from table where rownum = 1
      

  2.   


    这个对。select 1 from your_table where rownum = 1;
    if sql%notfound then
       dbms_output.put_line('not data');
    else
       dmbs_output.put_line('yes');
    end if;
      

  3.   

    只是判断为空的话就可以
    select count(*) from table where rownum = 1如果要知道具体行数SELECT T.NUM_ROWS FROM USER_TABLES T WHERE T.TABLE_NAME ='TABLE'
      

  4.   

    如果数据表较多的话,可以现在user_table里面筛选一下,不过这里面的行数需要分析后才能准确。
      

  5.   

    我的DATA0095的记录数为百万级
    SELECT T.NUM_ROWS FROM USER_TABLES T WHERE T.TABLE_NAME ='DATA0095' 所用时间为0.07050236SECONDS
    SELECT COUNT(*) FROM DATA0095所用时间为2.8536senconds.看来第一条SQL执行时间比第二条要有效率好多.
      

  6.   

    我的DATA0095的记录数为百万级
    SELECT T.NUM_ROWS FROM USER_TABLES T WHERE T.TABLE_NAME ='DATA0095' 所用时间为0.07050236SECONDS
    SELECT COUNT(*) FROM DATA0095所用时间为2.8536senconds.看来第一条SQL执行时间比第二条要有效率好多.