TableAdapter.Update выполняется слишком долго

eLVik
Дата: 11.05.2006 16:17:58
Здравствуйте.

Использую типизированный датасет. На форме есть DataGridView. Записей порядка 53000 (загрузка данных порциями недопустима). Юзер может выбрать произвольные строки в DataGridView (MultiSelect = true) и удалить их.

Вот код отвечающий за удаление:

DataGridViewSelectedRowCollection col = DataGridView1.SelectedRows;
if (col.Count == 0)
{
  return;
}

DialogResult result = MessageBox.Show("Удалить записи", "Внимание", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
 
if (result != DialogResult.Yes)
{
   return;
}

          
foreach (DataGridViewRow r in col)
{
   // BindingSource1 связан с DataGridView1
   // Если выделены все записи (строки), выполняется чересчур долго
   // 13 секунд на выборке в 2750 записей
   BindingSource1.RemoveAt(r.Index);  
}

В конце концов добивает TableAdapter.Update. Выполняется дольше минуты.


Можно ли каким-то образом повысить производительность?
Bigheadman
Дата: 11.05.2006 17:01:56
Первым шагом локализуйте узкое место. Варианты: код приложения, неоптимизированные SQL-запросы, медленная БД. Локализовав причину, ищите способы ее решения.