如何增加SORT_AREA_SIZE(how to sort_area_size increase)

2019-10-18 14:58发布

如何在Oracle 10g SORT_AREA_SIZE设置,应该是什么样的大小,因为我有一个表超过2.2米行。 并且请告诉我SORT_AREA_RETAINED_SIZE的建议的大小

我的疑问是太缓慢,他们需要1个多小时才能完成。 (大部分)请建议我用,我可以优化我的查询和调整数据库Oracle 10g中的方法

谢谢


与查询更新

该查询

SELECT   A.TITLE,C.TOWN_VILL U_R,F.CODE TOWN_CODE,F.CITY_TOWN_MAKE,A.FRM,A.PRD_CODE,A.BR_CODE,A.SIZE_CODE ,B.PRICES, 
       A.PROJECT_YY,A.PROJECT_MM,d.province ,D.BR_CODE  BRANCH_CODE,D.STRATUM,L.LSM_GRP LSM, 
         SUM(GET_FRAC_FACTOR_ALL_PR_NEW(A.FRM,A.PRD_CODE,A.BR_CODE,A.SIZE_CODE,A.PROJECT_YY,A.PROJECT_MM,A.FRAC_CODE ,B.PRICES,A.QTY_USED,A.VERIF_CODE, A.PACKING_CODE, J.TYPE ,'R') )  
        * MAX(D.UNIVERSE) / MAX(E.SAMPLE)   /1000000   MARKET ,  D.UNIVERSE ,E.SAMPLE  
FROM A2_FOR_CPMARKETS  A, 
     BRAND  J, 
     PRICES B,CP_SAMPLE_ALL_MONTHS C ,
     CP_LSM L, 
     HOUSEHOLD_GL D, 
     SAMPLE_CP_ALL_MONTHS E , 
     City_Town_ALL F   
WHERE A.PRD_CODE = B.PRD_CODE 
AND A.BR_CODE = B.BR_CODE 
AND DECODE(A.SIZE_CODE,NULL,'L',A.SIZE_CODE) = B.SIZE_CODE -- for unbranded loose  
AND DECODE(B.VAR_CODE,'X','X',A.VAR_CODE) = B.VAR_CODE  
AND DECODE(B.COL_CODE,'X','X',A.COL_CODE) = B.COL_CODE  
AND DECODE(B.PACK_CODE,'X','X',A.PACKING_CODE) = B.PACK_CODE  
AND A.project_yy||A.project_MM BETWEEN B.START_DATE AND B.END_DATE  
AND A.PRD_CODE=J.PRD_CODE 
AND A.BR_CODE=J.BR_CODE 
AND A.FRM = C.FRM 
AND A.PROJECT_YY=L.YEAR 
AND A.frm=L.FORM_NO 
AND C.TOWN_VILL= D.U_R 
AND C.CLASS = D.CLASS 
AND D.TOWN=F.GRP 
AND D.TOWN = E.TOWN_CODE 
AND A.PROJECT_YY = E.PROJECT_YY 
AND A.PROJECT_MM = E.PROJECT_MM 
AND A.PROJECT_YY = C.PROJECT_YY 
AND A.PROJECT_MM = C.PROJECT_MM 
 -- FOR HOUSEJOLD_GL  
AND A.PROJECT_YY = D.YEAR 
AND A.PROJECT_MM = D.MONTH 


-- END HOUSEHOLD_GL  
AND C.TOWN_VILL = E.TOWN_VILL 
AND C.CLASS = E.CLASS 

AND C.TOWN_VILL = F.TOWN_VILL 
AND C.TOWN_CODE=F.CODE 

 AND (DECODE(e.PROJECT_YY,'1997','1','1998','1','1999','1','2000','1','2001','1','2002','1','2') = F.TYP ) 
GROUP BY A.TITLE,C.TOWN_VILL,F.CODE ,F.CITY_TOWN_MAKE,A.FRM,A.PRD_CODE,A.BR_CODE,A.SIZE_CODE ,B.PRICES, 
      A.PROJECT_YY,A.PROJECT_MM,d.province,D.BR_CODE ,D.STRATUM,L.LSM_GRP , 
      UNIVERSE ,E.SAMPLE

![ALT文字] [1]

[1]: HTTP:// C :\ Documents和Settings \侯赛因\ My Documents \我的图片\解释plan.jpg

Answer 1:

请在这里为Oracle文档SORT_AREA_SIZE 。 您可以使用alter session set sort_area_size=10000命令来修改本作的会议,并alter system的系统。 这是SORT_AREA_RETAINED_SIZE以同样的方式。

是你整个表(2.2 m行 )的结果集进账? 是否有它哪种操作?

可能有一些其他的原因查询来执行不好。 你可以共享查询和解释计划?



Answer 2:

当您运行使用DBMS_XPLAN.DISPLAY方法oracle会估计(通常是很合理的),什么大小的临时表空间存放你需要执行它的查询执行计划。

2.2万行可能是无关的方式排序的大小。 对于聚合操作,比如MAX和SUM所需的存储器更相关的结果设定为比到所述源的数据的大小的大小。

提供了一个链接到存储在您的PC jpg文件作为设一个执行计划,顺便说一句不计。



Answer 3:

A.project_yy||A.project_MM BETWEEN B.START_DATE AND B.END_DATE

你知道,我们在数据库中的数据类型DATE,对不对? 使用不正确的数据类型就更难甲骨文以确定数据分布,谓语选择性和合适的查询计划



文章来源: how to sort_area_size increase