gpt4 book ai didi

sql - 计算列什么时候合适?

转载 作者:行者123 更新时间:2023-12-02 11:08:52 25 4
gpt4 key购买 nike

我正在考虑在 Microsoft SQL Server 2008 中设计一个带有计算列的表。这将是一个简单的计算,例如 (ISNULL(colA,(0)) + ISNULL(colB,(0))) - 就像总计。我们的应用程序使用 Entity Framework 4。

我并不完全熟悉计算列,因此我很好奇其他人对于何时适合使用计算列而不是实现相同结果的其他机制(例如 View 或计算实体列)有何看法.

我不想在表中使用计算列有什么原因吗?

如果我确实使用计算列,是否应该保留它?我读过有关使用持久化、非持久化、索引和非索引计算列的不同性能结果 here 。鉴于我的计算看起来很简单,我倾向于说它不应该被持久化。

最佳答案

如果您的计算列未保留,则每次您访问它时都会计算它,例如一个选择。如果它所基于的数据经常变化,那可能没问题。

如果数据不经常更改,例如如果您有一个计算列可以将数字 OrderID INT 转换为人类可读的 ORD-0001234 或类似的内容,那么一定要让您的计算列持久化 - 在这种情况下,该值将被计算并物理存储在磁盘上,并且对它的任何后续访问就像读取表上的任何其他列一样 - 无需一遍又一遍地重新计算。

我们还开始使用(并且非常赞赏!)计算列从 XML 列中提取某些信息,并将它们作为单独的(持久)列显示在表上。这使得对这些项目的查询比不断地使用 XQuery 深入 XML 来检索信息要高效得多。对于这个用例,我认为持久计算列是加速查询的好方法!

关于sql - 计算列什么时候合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4340648/

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