2014-02-25 79 views
0

在SAP Sybase ASE 15.5数据库上。UNION查询工作缓慢

UNION工作得非常慢

select col1,col2,col3 
from table1(INDEX nn MRU),table2 (INDEX hh MRU) 
where key1=key2 
UNION 
select col1,col2,col3 
from table3(INDEX pp MRU),table2 (INDEX ll MRU) 
where key4=key3 

表1和3是小的(10个记录的每个 表1和表4 - 是非常大的(68万个记录每个)和I neeed唯一活性的记录,我们有在每个大表中有1,5万个,其中每个大表中有1亿5千2百万个,其实我也尝试过单独的查询,同样很慢,即使我清除不活动的记录或选择活动记录到不同的表中,仍然需要很长时间。 table1,但它没有帮助。

问题是我不能删除公司规定的非活动记录

+1

你使用什么样的Sybase(SAP)DB? IQ,ASE,ASA? – Parado

+3

请停止使用答案发表评论。使用评论功能,或编辑您的问题以添加其他信息。 –

+2

为什么指定索引,而不是让优化器选择?不知道更多关于表和索引结构的信息,这将很难提供帮助。您也可以尝试发布查询计划,让我们看看事情陷入困境。也许你可以针对只包含活动记录的大型表创建视图,然后UNION针对视图创建视图? –

回答

0

我的猜测是你的问题不是联合,而是与其中有6500万行(两次)的表联接。如果你确定工会是你的问题,为什么不直接提出两个单独的问题呢?

您还可以添加新表来保存非活动记录并清除活动记录表。我不知道你有什么其他的应用程序逻辑,但这会加快这个查询。