gpt4 book ai didi

sql-server - 添加并填充列或添加持久计算列?

转载 作者:行者123 更新时间:2023-12-03 02:20:19 25 4
gpt4 key购买 nike

我有一个包含 1000 万行、5GB 数据的数据库表,没有主键,但有聚集索引。每天都会添加数百条或数千条记录。我希望添加一个新列:

 ALTER TABLE dbo.CMS_hsplit ADD
split_locIDacd AS CONVERT(varchar(8), split) + '-' +
CONVERT(varchar(8), CASE WHEN loc_id = 105 THEN acd ELSE loc_id END) PERSISTED

分配给此任务的 DBA 更喜欢更改加载表的 ETL 流程。我知道持久计算字段需要一些时间来回填数据。使用计算字段确实会产生大量开销吗?

更新

计算字段预计数年内不会发生变化

如果定义确实发生变化,则必须具有追溯力

最佳答案

我认为添加或填充列的开销并不是真正的重点。一个更重要的问题是,在数据库的生命周期内,您的计算列定义对于表中的每一行是否始终有效?如果您需要更改定义,或者在特定日期之后添加的新行应具有不同的定义,但旧行应保留当前行,那么计算列将不切实际或完全不可能。

我的偏好是添加一个普通列并添加用于将其填充到 ETL 流程的业务规则。这还确保您的所有业务规则都位于一处(您的 ETL 代码),而不是在代码和架构之间拆分。

关于sql-server - 添加并填充列或添加持久计算列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13979027/

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