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

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
占用磁盘空间 .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值