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

Тема в разделе ".NET", создана пользователем EvgeniyVSmirnov, 1 фев 2011.

  1. EvgeniyVSmirnov

    EvgeniyVSmirnov Гость

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

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

    Подскажите, как избавится от тормозов.
     
  2. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    выключить расчет этих трех полей.
     
  3. EvgeniyVSmirnov

    EvgeniyVSmirnov Гость

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

    EvgeniyVSmirnov Гость

    Поудалял все вычисляемые поля из конструктора. и создаю их программно после загрузки данных - так работает.

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

    CSerX Гость

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

Поделиться этой страницей