微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决根据该 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 举报,一经查实,本站将立刻删除。