diff --git a/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/FastBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/FastBuilder.cs index 39c439407..0ffcae663 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/FastBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/FastBuilder.cs @@ -51,7 +51,20 @@ namespace SqlSugar public async virtual Task Merge(string tableName,DataTable dt, EntityInfo entityInfo, string[] whereColumns, string[] updateColumns, List datas) where T : class, new() { var result = 0; - await this.Context.Utilities.PageEachAsync(datas,2000,async pageItems => + var pageSize = 2000; + if (dt.Columns.Count > 100) + { + pageSize = 100; + } + else if (dt.Columns.Count > 50) + { + pageSize = 300; + } + else if (dt.Columns.Count > 30) + { + pageSize = 500; + } + await this.Context.Utilities.PageEachAsync(datas, pageSize, async pageItems => { var x = await this.Context.Storageable(pageItems).As(tableName).WhereColumns(whereColumns).ToStorageAsync(); result += await x.BulkCopyAsync();