Performance optimization

This commit is contained in:
sunkaixuan
2023-08-02 16:23:13 +08:00
parent 84bbe42b8d
commit 8a63c3c9db

View File

@@ -1494,6 +1494,13 @@ namespace SqlSugar
var index = 1; var index = 1;
if (this.Queues.HasValue()) if (this.Queues.HasValue())
{ {
var repeatList =
Queues.SelectMany(it => it.Parameters ?? new SugarParameter[] { }).Select(it => it.ParameterName)
.GroupBy(it => it)
.Where(it => it.Count() > 1);
var repeatCount = repeatList.Count();
var isParameterNameRepeat = repeatList
.Count() > 0;
foreach (var item in Queues) foreach (var item in Queues)
{ {
if (item.Sql == null) if (item.Sql == null)
@@ -1508,8 +1515,15 @@ namespace SqlSugar
var newName = itemParameter.ParameterName + "_q_" + index; var newName = itemParameter.ParameterName + "_q_" + index;
SugarParameter parameter = new SugarParameter(newName, itemParameter.Value); SugarParameter parameter = new SugarParameter(newName, itemParameter.Value);
parameter.DbType = itemParameter.DbType; parameter.DbType = itemParameter.DbType;
itemSql = UtilMethods.ReplaceSqlParameter(itemSql, itemParameter, newName); if (repeatCount>500||(isParameterNameRepeat&& repeatList.Any(it=>it.Key.EqualCase(itemParameter.ParameterName))))
addParameters.Add(parameter); {
itemSql = UtilMethods.ReplaceSqlParameter(itemSql, itemParameter, newName);
addParameters.Add(parameter);
}
else
{
parameter.ParameterName = itemParameter.ParameterName;
}
} }
parsmeters.AddRange(addParameters); parsmeters.AddRange(addParameters);
itemSql = itemSql itemSql = itemSql