Вопрос: Как ускорить Tableadapter.fill?

  • Автор темы Автор темы EvgeniyVSmirnov
  • Дата начала Дата начала
E

EvgeniyVSmirnov

TableAdapter быстро выполняет процедуру и долго расчитывает вычисляемые поля.

Есть процедура - выполняется при запуске из ssms за ~0,1сек
При заполнение datatable, вызовом из клиента метода fill - ~12 сек
в sql profiler'e время выполнения процедуры одинаковое в обоих случаях.
после выполнения процедуры клиент висит эти самые 12 сек.
этот datatable является дочерним набором данных для другой таблицы
в родительском 3 вычисляемых поля по дочернему.
выяснил, что тормозит, если включен расчет этих 3х полей.

Подскажите, как избавится от тормозов.
 
выключить расчет этих трех полей.
 
выключить расчет этих трех полей.
Как это сделать?
BeginLoadData, EndLoadData - не помогли. они отключают ограничения и индексы, а расчет полей похоже, что нет. По крайней мере быстрее не стало.
выполнял эти методы для обоих datatable
 
Поудалял все вычисляемые поля из конструктора. и создаю их программно после загрузки данных - так работает.

Теперь вопрос к MS: Это баг или фича?
Это так задумано разработчиками .Net, что все вычисляемые поля будут создаваться после загрузки данных или это случайно так получилось?
 
Поудалял все вычисляемые поля из конструктора. и создаю их программно после загрузки данных - так работает.

Теперь вопрос к MS: Это баг или фича?
Это так задумано разработчиками .Net, что все вычисляемые поля будут создаваться после загрузки данных или это случайно так получилось?

Попробуй лучше вызвать у BindingSource SuspendBinding вместо удаления колонок, что остановит обновления интерфейса во время загрузки, может и перестанет тормозить. После нужно вызвать ResumeBinding для включения событий и ResetBindings для вызова обновления данных на интерфейсе. При чем думаю что нужно у обоих BindingSource вызвать SuspendBinding. Правда бывают сложности что бы их включать выключать, я уже не помню точно, но были глюки какие то, решается тем что в нужном порядке вызвать нужно хотя может и еще что, повторюсь не помню давно работал с WinForms сейчас на ASP.Net пишу
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab