view并不能加快查询速度,在表上关键列加索引

解决方案 »

  1.   

    差不多,我用SQLLOADER 导数据也就是每秒三千多条记录!!
      

  2.   

    Could you please post your query?  Maybe I can tune it for you.
      

  3.   

    基于索引的查询和没有索引的查询速度是两种概念,同样sql中书写表的连接顺序也有关系,具体的看看相关的书,搜一下原来的帖子吧。
      

  4.   

    谢谢大家,小弟就献丑了
    CREATE TABLE EMP ( 
      FAC_NO    CHAR (1)      NOT NULL,  PK      indexA    IindexB    厂别
      NO        CHAR (4)      NOT NULL,  PK      indexA     indexB    工号
      NAME      VARCHAR2 (6),                                         姓名
      PAY_TYPE  CHAR (1),                                             薪资别
      DEP_NO    CHAR (3)                        indexA)               部门别 
    员工档---2087笔资料CREATE TABLE DEPT ( 
      FAC_NO    CHAR (1)      NOT NULL,   PK     indexA               厂别
      NO        CHAR (3)      NOT NULL,   PK     indexA               部门别
      NAME      VARCHAR2 (10),                                        部门名称
      DEP_FUNC  CHAR (10)                                             所属绩效部门
    部门档---54笔资料CREATE TABLE PRODQ ( 
      PROD_DATE  DATE          NOT NULL, PK      indexA        生产日期
      FAC_NO     CHAR (1)      NOT NULL, PK      indexA        厂别
      EMP_NO     CHAR (4)      NOT NULL, PK      indexA        工号
      MFG_NO     CHAR (6)      NOT NULL, PK      indexA        工单号码
      SEC_NO     CHAR (3)      NOT NULL, PK      indexA        工序代号
      PCS        NUMBER (5),                                   件数 
      RJT_PCS    NUMBER (5),                                   退件数
    员工产量档-215476笔资料CREATE TABLE SPRICE ( 
      START_DT    DATE          NOT NULL,  PK    indexA        核定日期
      MFG_NO      CHAR (6)      NOT NULL,  PK    indexA        工单号码
      SEC_NO      CHAR (3)      NOT NULL,  PK    indexA        工序代号 
      BOOK_PRI    NUMBER (7,4),                                预估单价
      PROD_PRI    NUMBER (7,4),                                主管批价 
      ACTUAL_PRI  NUMBER (7,4),                                实际单价
    工单单价档-10829笔资料需求如下---员工生产的每张工单每个工序依照核定日期不同可能有N个主管批价,取最小一个舆件数相乘得出员工当日薪资.然后再和员工档和部门档结合计算出当月绩效部门的总薪资CREATE OR REPLACE VIEW RPT_EMP ( FAC_NO, 
    NO, PAY_TYPE, DEP_NO, DEP_FUNC
     ) AS SELECT emp.fac_no, emp.no, emp.pay_type, emp.dep_no, dept.dep_func
      FROM emp emp, dept dept
     WHERE (    (emp.fac_no = dept.fac_no)
            AND (emp.dep_no = dept.no)
           )
    *********************************************
    CREATE OR REPLACE VIEW RPT_EMP_PRI ( MN, 
    FAC_NO, EMP_NO, PCS_PRI, DEP_FUNC
     ) AS SELECT to_char(prodq.prod_date,'YYYY/MM') as MN, prodq.fac_no as fac_no, prodq.emp_no as EMP_NO,
           sum(prodq.pcs * MIN_Val.min_pri)  as pcs_pri ,emp.dep_func
      FROM prodq prodq,(SELECT  sprice.mfg_no as mfg_no, sprice.sec_no sec_no, Min(sprice.prod_pri) as min_pri
                       FROM sprice sprice
                       GROUP BY  sprice.mfg_no, sprice.sec_no)  MIN_VAL,
           rpt_emp emp
      Where ((prodq.sec_no=min_val.sec_no) and
             (prodq.mfg_no=min_val.mfg_no) and
             (prodq.fac_no=emp.fac_no) and
             (prodq.emp_no=emp.no))
      Group by to_char(prodq.prod_date,'YYYY/MM'),prodq.fac_no,prodq.emp_no,emp.dep_func
    ******************************************************
    就是这样RPT_EMP_PRI要让我等一分多钟之久,好郁闷啊.请各位高手指点了,有何改良之策
      

  5.   

    w_tsinghua()俺不是科班出身的,你能说详细吗,索引在查询中是不是就是在Where子句中起作用?