gpt4 book ai didi

sql - 在给定主键的情况下选择大量行

转载 作者:行者123 更新时间:2023-12-02 22:45:28 27 4
gpt4 key购买 nike

我需要从一个更大的表中选择大量行,该表以自动增量标识列为键。我有尝试选择的每一行的主键值,但它可能非常大。

通常,但并非总是,选择的行是连续的,因此我实现了一种机制,将选择转换为一组范围子句,用于所有聚集在一起的条目([PrimaryKey] BETWEEN 151 AND 217 ),以及使用 IN 子句选择所有隔离条目的后备方法。

最后我得到了这样的东西

SELECT * FROM Table WHERE ([PrimaryKey] BETWEEN 151 AND 217) OR ([PrimaryKey] BETWEEN 314 AND 378) OR ...
OR [PrimaryKey] IN (1,3,7,14,147...)

这对于我的范围大部分很大的情况非常有用,但随着查询变大而崩溃。我刚刚遇到了一个退化的情况,其中我有大量的条目“对”,这些条目一次为 2 个条目生成 BETWEEN 语句,在我放弃之前花了超过 15 分钟尝试描述执行计划。

首先想到的是,我可以将开始生成范围而不是单个值的阈值更改为大于 2(也许是 10?),但我想知道是否有更好的解决方案那里。

最佳答案

使用您要选择的值创建一个临时表,并执行从主表到临时表的联接。这样你几乎就没有限制了。

关于sql - 在给定主键的情况下选择大量行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/455342/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com