From cc2c128cb283b4bfd867bb1bf61402545a5200b0 Mon Sep 17 00:00:00 2001 From: Exest Date: Thu, 13 Aug 2026 12:54:14 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F=202.0.5:?= =?UTF-8?q?=20=D1=81=D0=B2=D0=BE=D0=B4=D0=BD=D1=8B=D0=B9=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B9=D1=81=20=E2=80=94=20=D0=B2=D0=B5=D1=81=D1=8C=20?= =?UTF-8?q?=D0=BE=D0=B4=D0=BD=D0=B8=D0=BC=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D1=81=D0=BE=D0=BC=20(=D0=B1=D1=8B=D1=81=D1=82=D1=80=D0=B5?= =?UTF-8?q?=D0=B5=20=D0=BF=D1=80=D0=B8=20=D0=B2=D1=81=D0=B5=D1=85=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B9=D1=81=D0=B0=D1=85)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LoadPrice дробил прайс на страницы по 20000, а сервер на каждую страницу заново прогонял тяжёлую оконную дедупликацию + COUNT. При всех подключённых прайсах (~52к позиций) это ~6-7с. Тянем всё одним запросом → один прогон (~1.2с). Co-Authored-By: Claude Opus 4.8 --- installer/ElfisaPharmacy.iss | 2 +- src/Elfisa.Avalonia/Elfisa.Avalonia.csproj | 6 +++--- src/Elfisa.Avalonia/ViewModels/LoadPriceViewModel.cs | 7 ++++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/installer/ElfisaPharmacy.iss b/installer/ElfisaPharmacy.iss index ba49fbd..63afc6e 100644 --- a/installer/ElfisaPharmacy.iss +++ b/installer/ElfisaPharmacy.iss @@ -3,7 +3,7 @@ #define MyAppName "Электронная Фармация" #define MyAppBrand "ЭльФиСА" -#define MyAppVersion "2.0.4" +#define MyAppVersion "2.0.5" #define MyAppPublisher "PharmData" #define MyAppURL "https://cdn.24pharmdata.ru" #define MyAppSupportURL "https://24pharmdata.ru" diff --git a/src/Elfisa.Avalonia/Elfisa.Avalonia.csproj b/src/Elfisa.Avalonia/Elfisa.Avalonia.csproj index c55b8ac..1e97035 100644 --- a/src/Elfisa.Avalonia/Elfisa.Avalonia.csproj +++ b/src/Elfisa.Avalonia/Elfisa.Avalonia.csproj @@ -5,9 +5,9 @@ enable app.manifest true - 2.0.4 - 2.0.4.0 - 2.0.4.0 + 2.0.5 + 2.0.5.0 + 2.0.5.0 ЭльФиСА — Электронная Фармация PharmData diff --git a/src/Elfisa.Avalonia/ViewModels/LoadPriceViewModel.cs b/src/Elfisa.Avalonia/ViewModels/LoadPriceViewModel.cs index c14baad..f662adb 100644 --- a/src/Elfisa.Avalonia/ViewModels/LoadPriceViewModel.cs +++ b/src/Elfisa.Avalonia/ViewModels/LoadPriceViewModel.cs @@ -61,9 +61,10 @@ public partial class LoadPriceViewModel : ViewModelBase ProgressText = "Соединение с сервером…"; var all = new List(); - // Большая страница: сервер на каждый запрос заново прогоняет тяжёлый - // сводный запрос, поэтому одна большая страница в разы быстрее десятков мелких. - const int page = 20000; + // Весь прайс одним запросом: сервер на КАЖДЫЙ запрос заново прогоняет тяжёлую + // оконную дедупликацию (и COUNT для total), поэтому дробление на страницы + // умножает нагрузку. Одна большая страница = один прогон = в разы быстрее. + const int page = 500000; int offset = 0, total = 0; while (true)