相同查询的以下哪个版本的性能会更好:版本1(string.Contains):var query = db.Products.Where( p = p.Description.Contains( description ) );版本2(SqlFunctions.PatIndex):var query = db.Products.Where( p ...
相同查询的以下哪个版本的性能会更好:
版本1(string.Contains):
var query = db.Products
.Where( p => p.Description.Contains( description ) );
版本2(SqlFunctions.PatIndex):
var query = db.Products
.Where( p => SqlFunctions.PatIndex("%" + description + "%",p.Description) > 0 );
解决方法:
我相信版本1在理论上运行得更快.
原因:
>两个版本最终都会转换为SQL查询.
>版本1转换为具有“like”运算符的where子句的查询
>版本2转换为具有’PatIndex’功能的where子句的查询.
>我们知道在与大型数据集中的纯’like’运算符进行比较时,SQL中的函数将需要更长的时间来返回结果.
沃梦达教程
本文标题为:c# – Linq:SqlFunctions.PatIndex vs string.Contains for string comparisson
基础教程推荐
猜你喜欢
- C# SDK实现百度云OCR的文字识别功能 2023-01-06
- unityZXing二维码的生成与扫描 2023-01-27
- Unity游戏开发中的桥接模式 2023-07-19
- C#并发编程之Task类详解 2023-07-18
- C#实现贝塞尔曲线的方法 2023-05-22
- Unity实现物体沿自身的任意轴向旋转 2023-02-07
- 在C#中使用二叉树实时计算海量用户积分排名的实现详解 2023-02-06
- C#中实现插入、删除Excel分页符的方法 2022-12-11
- 利用AOP实现SqlSugar自动事务 2022-11-19
- C# JavaScriptSerializer序列化时的时间处理详解 2022-11-10