LINQ to SQL, кажется, замедляет работу приложения - PullRequest
0 голосов
/ 03 сентября 2010

Привет всем, у меня, похоже, проблема с LINQ, я в настоящее время поддерживаю внутреннее приложение для внутренней сети на работе. Когда сохранение журналов кажется замедленным, после отладки я понял, что каждый раз, когда он регистрируйте приложение, делающее паузы в этих двух строках кода. Оно сохраняет журналы, просто это медленно и иногда очень медленно.

DataClassesDataContext dab = new DataClassesDataContext();
dab.SubmitChanges();

Мой вопрос, в первую очередь, заключается в том, есть ли какие-либо известные проблемы с этими двумя строками кода, вызывающими какие-либо проблемы, которые могут замедлить работу приложения? ниже приведен полный код, используемый для вставки, те, кто понимает лучше, могут лучше проанализировать его и, возможно, исправить меня, где я ошибаюсь. Заранее спасибо ...

DataClassesDataContext dab = new DataClassesDataContext();

newlog = new calllog();
newlog.shortdesc = txtshortdesc.Text;
calllog_description.Text ="*****" + Page.User.Identity.Name + " " + DateTime.Now.ToString()
                       + " ***** " + "\r\n" + calllog_description.Text;
newlog.calllog_description = calllog_description.Text;
newlog.calllog_id = Convert.ToInt32(txtlogid.Text);
newlog.calllogrefno = calllogrefno.Text;
newlog.pr_id = Convert.ToInt32(pr_id.SelectedItem.Value);
newlog.st_id = Convert.ToInt32(st_id.SelectedValue);
newlog.product_id = Convert.ToInt32(product_id.SelectedValue);
newlog.dep_id = Convert.ToInt32(dep_id.SelectedValue);
newlog.log_assigneduser = Convert.ToInt32(log_assigneduser.SelectedValue);
newlog.client_id = Convert.ToInt32(DropDownList1.SelectedValue);
newlog.log_datetime = System.DateTime.Now;
newlog.log_user_id = this.Page.User.Identity.Name;
newlog.calllog_internal = calllog_internal.Checked;
newlog.notify_client = true;
newlog.notify_practise = true;
newlog.ct_id = Convert.ToInt32(ct_id.SelectedValue);
newlog.resolved = false;
dab.calllogs.InsertOnSubmit(newlog);

dab.SubmitChanges();

Ответы [ 2 ]

0 голосов
/ 04 сентября 2010

Еще одна вещь, которую стоит упомянуть, - вы должны располагать контекстом данных:

using (DataClassesDataContext dab = new DataClassesDataContext())
{
    dab.calllogs.InsertOnSubmit(newlog);
    dab.SubmitChanges();
}
0 голосов
/ 03 сентября 2010

Скажите, пожалуйста, вы не создаете контекст данных каждый раз, когда вставляете запись в базу данных?

Незначительные другие проблемы (возможно):

  • там много таблицустановить как зависимости в LINQ
  • триггеры замедляют вас
  • там много индексов установлено
  • проблема с блокировкой базы данных
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...