我们公司的表是用填充空格的字段创建的。
我无权更改数据库。
但是,我注意到当我使用 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/