问题是这样的。我某个sql查询测试库能正常跑。正式库查询却超时(一直执行)
处理:
1.将正式库数据完全负责到测试库依然能跑通,耗时也不多。
2.将查询涉及到的表从正式库完全拷贝一份(create table as select * from 某个表),成功模拟出问题却是一直执行。
3.将部分表采用本地原表,测试出企业表查询有问题(可是原表和新表数据完全一样,为什么会出这样的情况,采用
SELECT * FROM c_company_4_9
MINUS
SELECT * FROM C_COMPANY;表情两个表数据完全一致。这就纳闷了
)。
4.我将本地表复杂一份(不管是复杂还是creat 都会一直执行,原表却能马上出结果,求解释……)
sql:C_ZONE 自关联4级区域表,C_COMPANY 企业表(自关联包含分子公司),
C_DEALERS_ZONE 企业管辖区域映射表
SELECT COUNT(ZONE_ID)
FROM
(SELECT DISTINCT ZONE_ID
FROM C_ZONE
START WITH ZONE_ID IN
(SELECT zid
FROM
(SELECT d.c_z_id AS zid, d.c_com_id AS comid FROM C_DEALERS_ZONE d
)
WHERE COMID IN
(SELECT CORP_ID
FROM C_COMPANY
START WITH corp_id = 4319
CONNECT BY PRIOR CORP_ID = CORP_PARENTID
)
)
CONNECT BY PRIOR ZONE_ID = ZONE_PARENT
) T;
目前纠结的问题:还望各位大神给点意见
create table c_company_4_09 as select * from c_company;创建新表
原表:c_company 能执行,新表:c_company_4_09 跑不通,一直在执行
直接通过工具的复制表和数据,结果新表依然跑不通一直执行。这是为什么。
求大神,希望给我给点介意,解决测试方法什么的。小弟感激不尽
应该是由于索引问题!!!导致
你基本上已经定位到问题表了,那么你是不是把问题表的建表语句贴出来一下呢?把你测试库和正式库的执行计划也贴出来看看。说明一下你的数据量。尝试重建索引试试?
也就几千的数据量,大概由于表没有索引,又采用了两层递归查询导致。谢谢你的回答