Performance optimization

This commit is contained in:
sunkaixuna 2021-12-07 23:36:06 +08:00
parent 33c621fc55
commit d1d0f976a6
4 changed files with 14 additions and 14 deletions

View File

@ -254,6 +254,11 @@ namespace OrmTest
parentUser = b
})
.ToList();
var sql111= Db.SqlQueryable<Order>("select 1 id ").ToSql().Key;
var sql222 = Db.SqlQueryable<Order>("select 1 id ").Where(it=>it.Id==1).ToSql().Key;
Check.Exception("select 1 id " != sql111, "unit query error");
Check.Exception("SELECT t.* FROM (select 1 id ) t WHERE ( [Id] = @Id0 )" != sql222, "unit query error");
}
[SugarTable("tree ")]
public class Tree2

View File

@ -2597,6 +2597,7 @@ namespace SqlSugar
asyncQueryableBuilder.DisableTop = this.QueryBuilder.DisableTop;
asyncQueryableBuilder.Offset = this.QueryBuilder.Offset;
asyncQueryableBuilder.IsSqlQuery = this.QueryBuilder.IsSqlQuery;
asyncQueryableBuilder.OldSql = this.QueryBuilder.OldSql;
}
protected int SetCacheTime(int cacheDurationInSeconds)
{

View File

@ -45,7 +45,7 @@ namespace SqlSugar
public object SelectValue { get; set; }
public string SelectCacheKey { get; set; }
public string EntityName { get; set; }
public string OldSql { get; set; }
public Type EntityType { get; set; }
public Type ResultType { get; set; }
@ -491,21 +491,14 @@ namespace SqlSugar
}
public string GetSqlQuerySql(string result)
{
if (result.Contains(" t ")&&result.Contains("SELECT .* FROM") && this.IsSqlQuery && (Skip == null && Take == null)&&(this.WhereInfos==null||this.WhereInfos.Count==0))
if (this.IsSqlQuery&&this.OldSql.HasValue() && (Skip == null && Take == null) && (this.WhereInfos == null || this.WhereInfos.Count == 0))
{
var old = result;
var regex = @"^SELECT .* FROM \(((.|\n|\r)*)\) t $";
if (this.Context.CurrentConnectionConfig.DbType .IsIn( DbType.MySql,DbType.PostgreSQL,DbType.Sqlite))
{
result = result.Substring(0,result.Length-1);
}
result = System.Text.RegularExpressions.Regex.Match(result,regex).Groups[1].Value;
if (string.IsNullOrEmpty(result))
{
result = old;
}
return this.OldSql;
}
else
{
return result;
}
return result;
}
#endregion

View File

@ -588,6 +588,7 @@ namespace SqlSugar
var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig);
var result= this.Context.Queryable<T>().AS(sqlBuilder.GetPackTable(sql, sqlBuilder.GetDefaultShortName())).With(SqlWith.Null).Select(sqlBuilder.GetDefaultShortName() + ".*");
result.QueryBuilder.IsSqlQuery = true;
result.QueryBuilder.OldSql = sql;
return result;
}
#endregion