Bru*_*Pro 16 c# sql-server performance edmx asp.net-web-api
我想知道在具有动态值的sql中进行查询的最佳实践是什么,让我说我有一个值(nvarchar(max))
值:"912345678"
select * from AllData
where Number like '%912345678%'
Run Code Online (Sandbox Code Playgroud)
价值:"迈克尔"
select * from AllData
where Name like '%Michael%'
Run Code Online (Sandbox Code Playgroud)
价值:"街道号码10"
select * from AllData
where Address like '%Street number 10%'
Run Code Online (Sandbox Code Playgroud)
这个approuches有点慢,因为搜索有9位数的数字会更快,没有这样的%
select * from AllData
where Number like '912345678'
Run Code Online (Sandbox Code Playgroud)
我使用EDMX与C#中的外部数据库建立连接,如下所示:
var Result = EDMXEntity.Entities.Where(x =>
(SqlFunctions.PatIndex("%" + Value.ToLower() +"%", x.Name.ToString().ToLower()) > 0)
|| (SqlFunctions.PatIndex("%" + Value.ToLower() +"%", x.Number.ToString().ToLower()) > 0)
|| (SqlFunctions.PatIndex("%" + Value.ToLower() +"%", x.Address.ToString().ToLower()) > 0)).Take(50).ToList();
Run Code Online (Sandbox Code Playgroud)
我怎样才能提高性能?