gpt4 book ai didi

tsql - 按年份分区与名为 Data_2011、Data_2010 等的单独表

转载 作者:行者123 更新时间:2023-12-04 19:48:38 24 4
gpt4 key购买 nike

我们正在设计一个大容量 SQL Server 应用程序,该应用程序涉及处理和报告在指定年份内受限的数据。

想到使用按年分区。

另一个建议是以编程方式创建单独的物理表,其中名称的后缀是年份,当需要跨年报告时,提供一个 View ,该 View 是物理表的并集。

我的直觉告诉我,这种情况是分区设计用来处理的。使用其他方法有什么优势吗?

最佳答案

从内部的角度来看,这些方法本质上是相同的。

在后台,当您创建基于日期的分区时,SQL 引擎会为每个分区创建单独的物理表,然后在您查询表本身时执行基本上是 UNION 的操作。

如果您在与您的分区字段(比方说DateField)相对应的分区表的查询中使用过滤器,那么引擎可以直接转到您需要数据的分区。如果没有,则根据需要在逻辑表中搜索每个物理表以完成查询。

如果您的查询将涉及日期过滤器(听起来他们会从您的问题中得出),那么我认为您的“自定义”方法没有任何优势。

从本质上讲,您需要做出的选择是您是要对分区中涉及的所有逻辑和极端情况负责,还是相信 Microsoft 的开发人员已经做了数十年的工作来为您做这件事?

为了我自己的目的,如果我想做的事情有一个内置的框架,那么我总是会尝试使用它。与“自己动手”解决方案相比,它总是更快、更稳定且更不容易出错。

关于tsql - 按年份分区与名为 Data_2011、Data_2010 等的单独表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7556404/

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