SQLServer性能优化--间接实现函数索引或者Hash索引
16lz
2022-01-06
SQLServer中没有函数索引,在某些场景下查询的时候要根据字段的某一部分做查询或者经过某种计算之后做查询,如果使用函数或者其他方式作用在字段上之后,就会限制到索引的使用,不过我们可以间接地实现类似于函数索引的功能。
另外一个就是如果查询字段较大或者字段较多的时候,所建立的索引就显得有点笨重,效率也不高,就需要考虑使用一个较小的"替代性"字段做等价替换,类似于Hash索引,
本文粗浅地介绍两种上述两种问题的解决方式,仅供参考。
1,在计算列上建索引,实现“函数索引”的功能
SQLServer在建表的时候允许使用计算列,可以借助这个计算列来实现函数索引的功能,这里举例说明一下
Create Table TestFunctionIndex( id int identity(1,1), val varchar(50), subval as LOWER(SUBSTRING(val,10,4)) persisted --增加一个持久化计算列)GO--在持久化计算列上建立索引create index idx_subvar on TestFunctionIndex(subval)GO--插入10W行测试数据insert into TestFunctionIndex(val) values (NEWID())go 100000
如果直接在计算列上查询,就可以正常地使用到索引了
更多相关文章
- SQL Server之JSON 函数详解
- MySQL 什么时候使用INNER JOIN 或 LEFT JOIN
- ES6 变量声明,箭头函数,数组方法,解构赋值,JSON,类与继承,模块化练习
- 箭头函数的基础使用
- Python技巧匿名函数、回调函数和高阶函数
- 浅析android通过jni控制service服务程序的简易流程
- Android(安卓)bluetooth介绍(四): a2dp connect流程分析
- Android架构分析之使用自定义硬件抽象层(HAL)模块
- [android源码下载索引贴】微信+二维码那都不是事......