上一节我们详细讲解了计算列以及计算列持久化的问题,本节我们依然如前面讲解来看看二者查询性能问题,简短的内容,深入的理解,Always to review the basics。
我们开始创建两个一样的表并都插入100条数据来进行比较,对于计算列我们重新进行创建计算列和非计算列持久化。
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言 此时我们来运行两个表对计算列和计算列持久化列的查询
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言 此时二者的开销是一样的,只是非持久化列多了一个Compute Scalar操作,主要是因为它计算值是在运行时,此时我们来看看操作成本。
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言 我们看到二者性能还是有一点差异,所以我们能够知道如果计算操作比较复杂时利用持久化来提前进行计算性能会比非持久化列更好。是不是所有情况下持久化列性能都比持久化列性能要好呢?继续往下看。
我们再来创建测试表并插入1万条数据来进行比较。
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言 接下来在两表上创建持久化计算列和非持久化计算列
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言 最后我们进行查询看看查询计划结果
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言 到这里我们发现非持久化计算列性能要比持久化计算列性能要好,和上面对照的话我已经明确进行了标记定义列的大小以及插入行的多少是不同的,所以对于持久化列和非持久化列二者并没有绝对性能的谁好谁好,当我们想要看二者谁性能更佳时,我们可能需要考虑定义列的大小、数据行的多少等等。下面我们还看最后一种情况,就是在计算列上来创建索引。
我们继续创建测试表
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言 在ComputeColumn表上创建计算列并创建一个非聚集索引
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言 在ComputeColumnCompare表上创建计算列
最后查询两个表看看查询计划结果
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言
SQL Server-聚焦计算列或计算列持久化查询性能(二十二)前言 到此我们算是结束了对于计算列以及关于计算列持久的概念和性能的分析,下节我们再看看其他查询的知识,接着就进入表表达式的学习,简短的内容,深入的理解,我们下节再会。
本文转自Jeffcky博客园博客,原文链接:http://www.cnblogs.com/CreateMyself/p/6184749.html,如需转载请自行联系原作者