У меня есть question, для которого я предоставил a решение. Тем не менее, я не чувствую, что это так эффективно, как это может быть:Есть ли более эффективный способ найти обманщиков на сервере Sql
using (DataContext context = new DataContext(SqlConnection)
{
var custInfo = context.GetTable<tbl_CustomerInfo>();
string compID = ImportCust.Rows[0]["CompanyID"].ToString();
var imports = from cust in ImportCust.AsEnumerable()
select cust.Field<int>("CustomerID");
var dupes = from import in imports
join cust in custInfo
on import equals cust.CustomerID
where cust.CompanyID== pivnum
select cust;
var records = dupes.GetEnumerator();
while (records.MoveNext())
{ custInfo.DeleteOnSubmit(records.Current); }
context.SubmitChanges();
}
Я использовал Stopwatch
смотреть на время, прошедшее остовного итерацию records
до завершения SubmitChanges
. Прошедшее, кажется, не имеют ни смысла:
10666 записей завершена в течение 20 секунд
15425 записей завершена в течение 12 секунд
289 записей завершена в течение 21 секунд
Очевидно, одно, что бы ускорить процесс это если я должен сбросить индексы. Это можно сделать программно? Кроме того, есть ли лучший способ, чем то, что я предоставил?
честно, самое эффективное место, чтобы найти простофили находится в чреве зверя (в базе данных - хранимая процедура). я был бы удивлен, если бы некоторые требования к вашему пользовательскому интерфейсу/презентации были «отображать дубликаты». Я предполагаю, что это обслуживание? – RPM1984 2010-12-16 04:36:55
Оба набора записей уже хранятся в базе данных или являются записью ImportCust только в памяти? – NotMe 2010-12-16 04:49:46