我需要将SELECT查询的结果存储在变量中以减少计算时间。结果的格式为' X'' Y'' Z',...
WHERE
PEL.kuerzel in (SELECT KL.kuerzel from ictq.KLE KL WHERE FachgruppeKuerzel=526)
现在,对于每个~2000个条目,SELECT查询被执行3次。如果我能够在本地存储结果,我只需要运行一次。
我正在使用Sybase 11数据库。我怎样才能实现这个或类似的东西?
从150行查询中取出片段的子查询:
SELECT list(PEL.kuerzel) from ictq.PEpisode PE
INNER JOIN ictq.PEpisodeLeistung PEL ON(PE.IDPATIENTEPISODE = PEL.IDPATIENTEPISODE)
WHERE
PE.IDPATIENTKLINIK = P.IDPATIENTKLINIK and
PEL.Datum between dateadd(month, -12, @startdatum) and @startdatum and
PEL.kuerzel in (SELECT kl.kuerzel from ictq.KLE kl where FachgruppeKuerzel=526)
我无法控制结构,无法添加任何内容。查询本身就是传统工作,我很高兴它现在可以正常工作。然而,缓慢的计算需要进行大修。
答案 0 :(得分:0)
使用exists
而非in
或将in
子查询移至from
子句通常更有效:
FROM PEL JOIN
(SELECT DISTINCT KL.kuerzel
FROM ictq.KLE KL
WHERE FachgruppeKuerzel = 526
) KL
ON PEL.kuerzel = KL.kuerzel;
要获得此查询的效果,您需要ictq.KLE(FachgruppeKuerzel, kuerzel)
和PEL(kuerzel)
上的索引。