|
|
1
1
减号是一个集合操作,它除了将第二个查询的结果从第一个查询中移除外,还将删除第一个集合中出现的重复项。 因此,所显示的查询在返回给用户之前,必须从表1构建完整的结果集。 如果您可以确定第一组中没有trimemd head/effective date的重复项(或者您不希望删除这些重复项),您可以尝试
这样,查询可以更快地返回结果,特别是当表2非常小或者可以通过有效日期或标题上的索引访问行时。 如果可以,删除RTRIM(LTRIM())位。 PPS公司。仍然不能保证它会在8秒内返回。这将取决于表\u1的大小,以及对\u操作类型和/或有效日期的索引。 补充:
如果返回则忽略行
但完全执行肯定需要更长的时间。可能数量级更长(即小时),取决于每个表2检查需要多长时间。不完全确定截断使用的条件(调用的持续时间或打开SQL游标的持续时间),因此它可能会关闭外部游标。根据表1的大小/索引/内容,外部游标可能仍然不会在时间范围内返回第一行。
|
|
|
2
0
减号与“获取第一个查询的所有行,然后从该集合中删除第二个查询中的行”相同,因此您可以将第一个查询的结果加载到内存中的一个数组中,然后遍历第二个查询结果,并根据第一个查询结果逐个检查它们,如果它们存在,则将其删除。
在RTRIM(LTRIM(A.HEAD))上可能还需要一些功能索引 |
|
Sweepy Dodo · JSON lite的格式化 1 年前 |
|
|
giantjenga · 优化整数向量到二进制向量的转换 1 年前 |
|
Zegarek · Postgresql递归查询未提供预期结果 1 年前 |
|
|
Joe · 为什么这两个查询之间的性能存在如此大的差异? 2 年前 |
|
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 2 年前 |