【发布时间】:2016-07-08 22:12:14
【问题描述】:
我想从包含 2800 万行的表中检索数据。我想一次检索 100 万行。
我已从以下链接检查答案 Get data from large table in chunks How can I get a specific chunk of results? 该解决方案建议一个具有 int ID 列的查询。就我而言,我的主键列以 varchar(15) 作为数据类型
我想使用这样更快的东西 - 选择前 2000 * 从T 其中 ID >= @start_index 按 ID 排序
但由于 ID 列是 varchar,我不能使用整数索引。
如何有效地从具有 varchar 数据类型的主键的表中获取数据块?
【问题讨论】:
-
重新设计您的数据模型。
-
数据库是只读的。我无法对数据库进行任何更改
-
即使您的 ID 是 Varchar,您的主键列中存在什么样的值。字母数字或数字数据
-
ID 包含字母数字数据,还包含 $ 和 _ 等字符
-
你想根据什么条件从 2800 万条数据中检索 100 万条数据
标签: sql-server sql-server-2012