小编Pac*_*civ的帖子

过滤按行版本排序的数据

我有一个具有以下结构的 SQL 数据表:

CREATE TABLE Data(
    Id uniqueidentifier NOT NULL,
    Date datetime NOT NULL,
    Value decimal(20, 10) NULL,
    RV timestamp NOT NULL,
 CONSTRAINT PK_Data PRIMARY KEY CLUSTERED (Id, Date)
)
Run Code Online (Sandbox Code Playgroud)

不同 Id 的数量范围从 3000 到 50000。
表的大小变化高达超过 10 亿行。
一个 ID 可以覆盖表格的几行至 5%。

该表上执行次数最多的查询是:

SELECT Id, Date, Value, RV
FROM Data
WHERE Id = @Id
AND Date Between @StartDate AND @StopDate
Run Code Online (Sandbox Code Playgroud)

我现在必须在 Id 的子集上实现数据的增量检索,包括更新。
然后我使用了一个请求方案,其中调用者提供特定的 rowversion,检索数据块并使用返回数据的最大 rowversion 值进行后续调用。

我写了这个程序:

CREATE TYPE guid_list_tbltype AS TABLE (Id uniqueidentifier not null primary key) …
Run Code Online (Sandbox Code Playgroud)

index sql-server index-tuning

8
推荐指数
1
解决办法
2955
查看次数

标签 统计

index ×1

index-tuning ×1

sql-server ×1