c# - 如何提高有关 Trim() 的 Linq 查询性能

标签 c# performance linq linq-to-sql query-performance

我们公司的表是用填充空格的字段创建的。

我无权更改数据库。

但是,我注意到当我使用 Trim() 函数创建 LINQ 查询时,性能会下降很多。

像这样简单的查询表明性能下降:

Companies
.Where(c => c.CompanyName.Equals("Apple"))
.Select(c => new {
  Tick = c.Ticker.Trim(),
  Address = c.Address.Trim()
});

有没有一种方法可以更改查询以便不损失性能?

还是这完全取决于我的 DBA?

最佳答案

快速解决方案是在将其提供给查询之前填充您的公司名称。例如,如果列是 char(50):

var paddedName = "Apple".PadRight(50);
var result = Companies
 .Where(c => c.CompanyName.Equals(paddedName))
 .Select(c => new {
     Tick = c.Ticker.Trim(),
     Address = c.Address.Trim()
 });

但是,您应该考虑更正数据库以避免进一步的问题。

关于c# - 如何提高有关 Trim() 的 Linq 查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18050186/

相关文章:

c++ - OpenGL 着色器与 CUDA

c# - (C# LINQ) 使用电子邮件选择名字和姓氏

c# - LINQ Min() 和 Max() 优化

c# - C# mySQL INSERT 语句错误 - "You have an error in your SQL syntax"

php - 哪个更快/更聪明,为什么是 : COUNT(*) or storing the numbers each the do something

C# 跳过任何内容到下一个标签

java - Java 异步如何工作?异步方法似乎没有异步运行

c# - 使用Linq合并一个List中某个对象的方法返回的所有List

c# - 我可以在用户输入上使用 asp.net 验证器来避免 sql 注入(inject)攻击吗?

c# - ASP.NET Core - 提供静态文件