开发者社区> 问答> 正文

SQL Server 2005数据库中计算列的性能影响?

情况:我们有一个大型数据库,其中包含许多非规范化表。我们经常不得不重新汇总数据以使汇总表保持同步。我们讨论过如何使用计算列来保持数据新鲜。我们还讨论了触发器,但这是一个单独的讨论。

在摘要表中,我们对表进行了规范化,以便将标准ID和标准说明存储在表中。本质上是假设该表将被足够频繁地重新汇总,因此,如果他们更改了标准描述,它也会在汇总表中对其进行更改。一个错误的假设。

问题:如果我们将汇总表中的标准说明设为从标准表中选择标准说明的派生/计算列,该怎么办?通过在具有100,000-500,000行的表上删除计算列是否会对性能产生巨大影响?

展开
收起
心有灵_夕 2019-12-29 00:17:50 1157 0
1 条回答
写回答
取消 提交回答
  • 当计算列不占用大量计算并且不对大量行执行时,它们是很好的选择。您的问题是“删除计算列会带来成功吗”。除非此列是查询所使用的索引(对comp col进行索引的错误主意-我不知道是否可以依赖您的数据库),否则删除它不会损害性能(减少查询和处理数据的次数) )。

    如果标准表具有描述,那么您应该从id将其加入,而不要使用任何计算。

    您暗示了什么可能是真正的问题,那就是数据库的架构。以前,我遇到过类似的问题,其中的系统是为处理一件事而构建的,而诸如报告之类的东西则需要安装/插入。在不重构您的模式以平衡所有需求的情况下,Sunny使用视图的想法只是唯一的简便方法。

    如果您要发布一些清理过的DDL和数据,并举例说明您尝试从数据库中获取的内容,我们可能会给您一个不太主观的答案。

    2019-12-29 00:18:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载