From 756e6cfe5f9bbee5c93c4284ddbd817d6f63fe0f Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 13 Jan 2025 13:43:14 +0800 Subject: [PATCH] Performance optimization --- .../Abstract/FastestProvider/FastBuilder.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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();