弱弱地问:这样的查询速度有问题吗? view并不能加快查询速度,在表上关键列加索引 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 差不多,我用SQLLOADER 导数据也就是每秒三千多条记录!! Could you please post your query? Maybe I can tune it for you. 基于索引的查询和没有索引的查询速度是两种概念,同样sql中书写表的连接顺序也有关系,具体的看看相关的书,搜一下原来的帖子吧。 谢谢大家,小弟就献丑了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要让我等一分多钟之久,好郁闷啊.请各位高手指点了,有何改良之策 w_tsinghua()俺不是科班出身的,你能说详细吗,索引在查询中是不是就是在Where子句中起作用? 如何写一个存储过程,它调用其他带参数的存储过程。 这个触发器该怎么写,高手请进 求助关于审计的用法!! 如何操作动太sql返回 的游标 数据库设计的难题 【请大家来讨论一下Oracle的锁表机制】--- EXCLUSIVE&SHARE(共享和独占方式)在实际使用时都有些什么区别 求教一个查询过程中排序影响效率的问题 触发器的问题 奇怪,oracle中的from子句不支持嵌套语句吗? 求助(ORACLE入门的问题) 创建存储过程! 数据库开发版大斑竹IronPromises已经同意我辞去oracle版斑竹了,离别前散分!
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要让我等一分多钟之久,好郁闷啊.请各位高手指点了,有何改良之策