我有一个查询似乎需要很长时间才能执行。自从我做了非常简单的选择/更新和 v.simple 连接之外的任何事情已经有一段时间(几年)了,所以我在这里有点生疏了!
SELECT count(distinct r.TAGCODE)
FROM RAWREADS r
where r.TAGCODE NOT IN (
select distinct r.TAGCODE
from RAWREADS r, checkpoints c, guards g, INCIDENTITEMS i
where r.TAGCODE = c.TAGNO
or r.TAGCODE = g.IDTAG
or r.TAGCODE = i.IDTAG
);
如果缓慢(几秒钟),内部选择似乎可以正常工作,但是一旦我添加外部“不在其中的计数”,我最终不得不终止我的数据库连接 - 所以对应用程序没有好处!;)
我希望上面的查询清楚我想要实现的目标...获取所有 rawread 标记,其中该标记与检查点/警卫/事件中的相应列不匹配。
如果这很重要,我正在使用 Flamebird 数据库服务器(没有选择)和 FlameRobin 来运行查询。
在某些时候,我还需要向外部选择添加一个查询,以确保我不会选择任何标记代码为空或“”的 rawreads。
我已经从 out select 中删除了“char_length(tagcode) > 0”标准,希望加快速度,但我认为我的问题比这更根本。