标题: 请教高手一个SQL调优的问题
卧床睡觉
LU新生
Rank: 1



UID 92389
精华 0
积分 1
帖子 1
活跃指数 1
LU金币 2 个
LU金条 0 个
阅读权限 10
注册 2007-7-3
 
发表于 2007-7-3 16:53  资料  个人空间  短消息  加为好友 
请教高手一个SQL调优的问题

SQL> desc SRT_TMP_QUIZ_ANSWER_INFO
Name                Type         Nullable Default Comments
------------------- ------------ -------- ------- --------
SUBJECTIVE_TEST_ID  FLOAT                                 
SUBJECTIVE_PAPER_ID FLOAT                                 
QUIZ_NO             NUMBER(15)   Y                        
QUIZ_ID             NUMBER(15)                             
EXTERNAL_QUIZ_COUNT FLOAT                                 
EXTERNAL_QUIZ_MARK  FLOAT                                 
QUESTION_DIFFICULTY NUMBER(15,2) Y                        
QUESTION_DEGREE     NUMBER(15)   Y                        
QUESTION_ANSWER     VARCHAR2(64) Y                        
STUDENT_ID          NUMBER(15)                             
STUDENT_ANSWER      VARCHAR2(10) Y                        
STUDENT_NAME        VARCHAR2(32)                           
STUDENT_NUMBER      VARCHAR2(32)                           
CLASS_ID            NUMBER(15)   Y                        
CLASS_GRADE         NUMBER(15)   Y                        
CLASS_ORG           NUMBER(15)   Y                        
CLASS_DISTRICT      NUMBER(15)   Y                        
GOT_MARK            FLOAT           

SQL> desc S_SUBJECTIVE_TEST_MARK
Name                       Type        Nullable Default Comments     
-------------------------- ----------- -------- ------- ------------
STUDENT_ID                 NUMBER                       学生id      
SUBJECTIVE_TEST_ID         NUMBER                       主观题考试id
SUBJECTIVE_PAPER_ID        NUMBER                       主观题试卷id
SUBJECTIVE_QUIZ_TOTAL_MARK FLOAT                        主观题总得分
EXTERNAL_QUIZ_TOTAL_MARK   FLOAT                        客观题总得分
FLAG                       VARCHAR2(2)                              
SQL> desc S_SUBJECTIVE_TEST
Name               Type        Nullable Default Comments
------------------ ----------- -------- ------- --------
SUBJECTIVE_TEST_ID INTEGER                              
FLAG               VARCHAR2(6)          'I'              
现在想通过这三张表生成一张新的表a,是通过三个表的select生成
SELECT  
   T1.SUBJECTIVE_TEST_ID ,  
   T1.SUBJECTIVE_PAPER_ID ,  
   T1.CLASS_DISTRICT ,  
   T2.STUDENT_ID ,  
   T2.SUBJECTIVE_QUIZ_TOTAL_MARK +T2.EXTERNAL_QUIZ_TOTAL_MARK  AS PAPER_MARK ,  
   T1.QUIZ_ID ,  
   T1.QUIZ_NO ,  
   T1.GOT_MARK *T1.EXTERNAL_QUIZ_COUNT /T1.EXTERNAL_QUIZ_MARK  AS MARK_RATE  
FROM  
   ((SRT_TMP_QUIZ_ANSWER_INFO T1  INNER JOIN S_SUBJECTIVE_TEST_MARK T2  
       ON  
      T1.SUBJECTIVE_TEST_ID  = T2.SUBJECTIVE_TEST_ID  AND  
      T1.SUBJECTIVE_PAPER_ID  = T2.SUBJECTIVE_PAPER_ID  AND  
      T1.STUDENT_ID  = T2.STUDENT_ID ) INNER JOIN S_SUBJECTIVE_TEST T3  
       ON  
      T1.SUBJECTIVE_TEST_ID  = T3.SUBJECTIVE_TEST_ID )
WHERE  
   T3.FLAG  = 'U'  OR T3.FLAG  = 'I'
因为生成的a表,大概会有几百万的数据,可否调优一下这条select语句,生成速度加快一些。
谢谢!!!

顶部
rwq_
技术专家
Rank: 14Rank: 14Rank: 14Rank: 14
笨笨


UID 77742
精华 2
积分 100
帖子 177
活跃指数 29
LU金币 394 个
LU金条 0 个
阅读权限 200
注册 2007-2-10
 
发表于 2007-7-3 20:50  资料  个人空间  短消息  加为好友 
关键是这个A表,你想怎么用?如果SELECT语句没有所谓性能问题的话,这个A表数据量已这么大了,这就决定了本身的性能问题。

顶部
 



当前时区 GMT+8, 现在时间是 2008-9-7 16:06
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.051839 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver