您的位置:首页 > 数据库

SQL Server计算列(Computed Column)应用实例

2014-01-06 15:31 281 查看
1.计算列(Computed Column)定义

计算列由可以使用同一表中的其他列的表达式计算得来。表达式可以是非计算列的列名、常量、函数,也可以是用一个或多个运算符连接的上述元素的任意组合。表达式不能为子查询。

2.性能测试

create table tab (ID intidentity(1,1), ST char(1), DESCR varchar(10))

alter table tab add CONSTRAINT pk_tabprimary key (ID)

-- 产生10万笔记录.

-- 无计算列时的查询.

selectID from tab where upper(DESCR)+ST='QC1332X*'

CPU time = 406 ms, elapsed time = 630
ms. Clustered IndexScan(OBJECT:([cxcai].[dbo].[tab].[pk_tab])

-- 新增计算列及索引.

altertable tab add DESCR2 as upper(DESCR)+ST

create index idx_tab_DESCR2 ontab(DESCR2)

-- 有计算列时的查询, 自动套用.

select ID from tab whereupper(DESCR)+ST='QC1332X*'

CPU time = 0 ms, elapsed time = 0
ms. Index Seek(OBJECT:([cxcai].[dbo].[tab].[idx_tab_DESCR2])

3.代价

3.1 增加DML执行成本.

3.2 占用磁盘空间.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: