现在是否有索引?ta和tb的记录各有多少。
如果ta和tb的记录都差不多,且已经按tb.bid或ta.bid建立了索引,那么需要看是查询慢还是排序慢,可以先不排序看看执行时间。若是查询慢,也许用cluster表可以提高查询时的连接时间。若是排序慢,考虑加大排序区的大小,减少磁盘排序次数。
如果两个表的记录数相差很大,需要用小表做驱动表,可以只在大表的bid上建索引。
如果ta和tb的记录都差不多,且已经按tb.bid或ta.bid建立了索引,那么需要看是查询慢还是排序慢,可以先不排序看看执行时间。若是查询慢,也许用cluster表可以提高查询时的连接时间。若是排序慢,考虑加大排序区的大小,减少磁盘排序次数。
如果两个表的记录数相差很大,需要用小表做驱动表,可以只在大表的bid上建索引。
解决方案 »
- oracle空格有哪些些代码,如:chr(13)换行,chr(10)回车
- table名可以做参数吗
- 我建了个JPET用户默认表空间JPET,而数据却好象增加到USER表空间了
- 求教关于session查杀的问题。
- imp导入不了全部表数据报错,急
- oracle表多列分区问题
- 大家帮我看看ROWNUM怎么找不到特定的数据
- 菜鸟求救(二) 如何在oracle数据库中执行时间的查询?
- oracle 达到高水位delete语句后在同一对象上insert
- 请教:如何通过pl/sql存储过程实现:删除一个表的两个索引,然后再重建它们
- JSP中如何备份Oracle?很急,在线等。
- system表空间 满了怎么办?
TJ.JYUCHU_YMD,
TJ.SOSHIKI_CD AS TJ_SOSHIKI_CD,
TJ.JYUCHU_NO AS TJ_JYUCHU_NO,
TJ.AKA_KURO_KBN AS TJ_AKA_KURO_KBN,
IKOP.PROMOCD,
IKOP.PROHINBAN,
IKOP.PROCOLCD,
IKOP.PROSIZECD,
IKOP.OLD_SHOHINCD AS IKOP_OLD_SHOHINCD,
TJY.KAIYAKU_YMD,
TJY.HAIKAN_YMD,
TJY.SURYO,
TJY.WARIBIKI_GAKU,
TJY.ZEINUKI_KINGAKU,
TJY.SOSHIKI_CD AS TJY_SOSHIKI_CD,
TJY.JYUCHU_NO AS TJY_JYUCHU_NO,
TJY.AKA_KURO_KBN AS TJY_AKA_KURO_KBN,
TJY.SHOHIN_CD AS TJY_SHOHIN_CD,
IH.HINBAN,
IH.COLORCD,
IH.SIZECD,
IH.OLD_SHOHINCD AS IH_OLD_SHOHINCD
FROM T_JYUCD TJY
LEFT JOIN T_JYUCH TJ
ON (TJ.SOSHIKI_CD = TJY.SOSHIKI_CD AND TJ.JYUCHU_NO = TJY.JYUCHU_NO
AND TJ.AKA_KURO_KBN=TJY.AKA_KURO_KBN)
LEFT JOIN IKO_PROSHOCDCHG IKOP
ON (TJY.SHOHIN_CD = IKOP.OLD_SHOHINCD)
LEFT JOIN IKO_HINBANCHG IH
ON TJY.SHOHIN_CD = IH.OLD_SHOHINCD
ORDER BY TJ.JYUCHU_YMD, IKOP.PROMOCD, IKOP.PROHINBAN, IKOP.PROCOLCD, IKOP.PROSIZECD;
T_JYUCD TJY表是明细表,
JOIN T_JYUCH 表是类别表。
JOIN T_JYUCH 表是类别表,数据200万左右。
楼主,贴一下执行计划。
再执行:
set autotrace traceonly;
然后执行你的SQL,得到的就是执行计划.