根据该 pkey 值的日期范围指定分区 #

问题描述

我们有一个 DW 查询,需要从一个大约 10 TB 的非常大的表中提取数据,该表由 datetime 列分区,可以说每天都有时间清除基于此列的数据。所以我的理解是每个分区都值得一天的数据。从存储 (SSMS GUI) 选项卡中,我看到分区数为 1995

该表没有聚集索引,因为它主要用于写操作。只是供应商的设计。

SELECT 
    a.*
FROM dbo.VLTB AS a
CROSS APPLY
(   
    VALUES($PARTITION.a_func(a.time))
) AS c (pid)
WHERE c.pid = 1896;

当前提交的查询

SELECT * from dbo.VLTB
WHERE time >= convert(datetime,'20210601',112)
AND time < convert(datetime,'20210602',112)

因此,将不等式谓词替换为等式以查看当时的特定分区可能会有所帮助。用户可以通过应用程序在发送时控制日期,但如果我们希望他们按照第一次查询使用分区 #,他们将如何管理

问题

我如何在上面的查询中找到一种方法来查找当天的分区号,而不是像 06/01 那样插入我不得不给出 1896 部分#。有没有更好的方法让脚本找到 part# 以避免扫描所有分区,并且可以在 where 子句查询中插入正确的 part#?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)