SQL中的计算列与内联逻辑
我想知道当我使用计算列和内联逻辑时,性能是如何受到影响的 例如,当我使用SQL中的计算列与内联逻辑,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我想知道当我使用计算列和内联逻辑时,性能是如何受到影响的 例如,当我使用 SELECT [ColA], [ColB], [ColA]/[ColB] AS [ColC] FROM [Table1] 当我使用计算列时 ColC as ColA/ColB 我认为他们都是一样的。没有区别,您检查过两个查询的执行计划了吗。内联将比计算列占用更少的资源。没有办法了解10000条关于性能的规则,然后总是编写性能绝对最佳的代码。思考绩效的最佳方式是忽略它,除非或直到你有一个实际的绩效问题,无论是真实的问题还
SELECT [ColA], [ColB], [ColA]/[ColB] AS [ColC] FROM [Table1]
当我使用计算列时
ColC as ColA/ColB
我认为他们都是一样的。没有区别,您检查过两个查询的执行计划了吗。内联将比计算列占用更少的资源。没有办法了解10000条关于性能的规则,然后总是编写性能绝对最佳的代码。思考绩效的最佳方式是忽略它,除非或直到你有一个实际的绩效问题,无论是真实的问题还是由一些具体目标的衡量引起的综合问题,然后确定是什么导致了你的绩效问题,然后集中精力在这方面,如上文所述,用实际数据在实际查询中尝试这两种方法。在这种情况下,这两种方法都很好。在出现实际性能问题之前,做对您最有意义的事情,然后用您的数据进行测试。为了证实其他人的说法,假设您最终遇到性能问题,而计算列就是解决方法。一旦您实现了它,优化器就足够聪明,可以在您需要定义计算列的表达式的情况下使用它。因此,在您的示例中,如果您选择了colA/colB,那么优化器知道colC的定义就是这样的,并将使用它。无需更改代码/查询。