相同查询的以下哪个版本的性能会更好:版本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#中的Task.WaitAll和Task.WaitAny方法介绍 2023-06-04
- C# 使用原生 System.IO.Compression 实现 zip 的压缩与解压 2023-07-04
- C#批量插入Sybase数据库,Anywhere 8 2023-11-09
- Unity3d 如何更改Button的背景色 2023-04-14
- c# 实现子窗口关闭父窗口也关闭的简单实例 2022-10-28
- C# WPF实现的语音播放自定义控件 2023-04-09
- C#编写Windows服务程序详细步骤详解(图文) 2022-11-18
- C#连接Oracle数据库的多种方法总结 2023-07-19
- C#中的一些延时函数 2023-06-14
- .NET Core 环境变量详解 2023-09-27