select count(1) from 一个视图名 效率很低,求解决办法!

解决方案 »

  1.   

    CREATE OR REPLACE FORCE VIEW sipo2.vbmtg (usuid,
                                              epid,
                                              epcode,
                                              YEAR,
                                              epname,
                                              euname,
                                              certtypetext,
                                              certno,
                                              hometel,
                                              unitname,
                                              homepname,
                                              homecname,
                                              homeadd,
                                              sex,
                                              age,
                                              signupmodetext,
                                              certcheckmodetext,
                                              username,
                                              checkre,
                                              certtypecode,
                                              signupmode,
                                              networkno,
                                              percheckmode,
                                              qualcheckmode,
                                              isfee,
                                              certcheckmode,
                                              isga,
                                              checkdate,
                                              joinsubject1,
                                              joinsubject2,
                                              joinsubject3,
                                              isassiprinted,
                                              isexamcardprinted,
                                              isupload,
                                              datecreated,
                                              qualchecktime,
                                              perchecktime,
                                              feetime
                                             )
    AS
       SELECT a.usuid, a.epid, epcode, a.YEAR, epname, euname, certtypetext,
              certno, hometel, unitname, homepname, homecname, homeadd, a.sex,
              ROUND ((SYSDATE - born) / 365) age, signupmodetext,
              certcheckmodetext, b2.username, b1.checkre, certtypecode,
              signupmode, networkno, percheckmode, qualcheckmode, isfee,
              certcheckmode, isga, b1.checkdate, joinsubject1, joinsubject2,
              joinsubject3, isassiprinted, isexamcardprinted, isupload,
              datecreated, qualchecktime, perchecktime, feetime
         FROM vexamuser01 a
              LEFT JOIN
              (SELECT *
                 FROM tbchecklog k
                WHERE clid IN (SELECT MAX (clid)
                                 FROM tbchecklog
                                WHERE usuid = k.usuid)) b1 ON a.usuid = b1.usuid
              LEFT JOIN tbuser b2 ON b1.checkuserid = b2.userid
        WHERE (    signupmode = 0
               AND certcheckmode = 0
               AND qualcheckmode = 1
               AND isfee = 1
              )
           OR (    signupmode = 0
               AND certcheckmode = 1
               AND percheckmode = 1
               AND isfee = 1
              )
           OR (signupmode = 1 AND percheckmode = 1 AND isfee = 1)
           OR (a.epid = 31 AND isga = 1 AND percheckmode = 1)
           OR (a.epid = 26 AND isga = 2 AND percheckmode = 1)
           OR signupmode = 2;
    求赐教!