我有一个select查询与四个表连接。所有的表都有索引列,在where子句中使用。此查询返回前十条记录,从大约5000条记录到6000条记录。在我的本地数据库中,这个查询在几秒钟内就返回了记录,但是在服务器上,它花费了很长时间,没有返回任何记录,而是出现了一个错误消息框ora-03113:通信通道上的文件结束。
实际上还有另一个团队,向我分享了这个问题。该团队可以从服务器获取数据,但我的查询不能,因为两个查询是相同的。我的查询和他们的查询之间的区别是相同的。我正在使用舍入函数来舍入值,但是它们没有在查询中使用,而是在前端处理。所以他们让我去掉取整函数,然后再试一次。我删除了舍入函数并尝试了。仍然加载并显示通信信道的错误端。
我的问题是这样的
SELECT *FROM (SELECT col1,
col2,
CASE WHEN col3 = 'A' THEN col4 CASE WHEN col5 = 'B' THEN col4 ELSE NULL END alias1,
CASE WHEN col3 = 'A' THEN col6 CASE WHEN col5 = 'A' THEN col6 ELSE NULL END alias2,
col7,
col8,
col9,
to_char(dense_rank()
over(ORDER
BY(t2.col17 marketnav(t3.col20,
to_date('01-JAN-1940', 'dd-mon-yyyy'),
to_date(t1.col20, 'dd-mon-yyyy'))) DESC)) in_rank,
funct1(col10, col11, col12),
col13,
col14,
funct1(col10, col11, col12)
FROM t1,
t2,
t3,
t4
WHERE t1.col15 = t2.col15 AND
t1.col12 = t1.col12 AND
t1.col20 = t3.col20 AND
t1.col21 = t4.col21 AND
t2.date1 IS NOT NULL AND
trunc(t2.date1) = '16-Jun-2020') WHERE in_rank < 11
我可以在本地数据库中运行和获取数据,但在服务器上这需要时间,并且没有返回任何记录。有什么问题?note:my local 与服务器数据库相比,数据库可能对数据不太满意。
暂无答案!
目前还没有任何答案,快来回答吧!