В моем приложении я создаю userControl, а затем мне нужно сохранить его в базе данных. Вот мой метод, когда я сохраняю свой userControl:Сохранение базы данных занимает слишком много времени
private void SaveControl(byte userControlType, ISelectableViewModel viewModel, Guid guid)
{
var context = new EntitiesNew();
var instrumentSettings = new INSTRUMENTSETTINGS
{
USERCONTROL = userControlType,
INSTRUMENTHEIGHT = (float)viewModel.InstrumentHeight,
INSTRUMENTWIDTH = (float)viewModel.InstrumentWidth,
INSTRUMENTSCALABLEVALUE = viewModel.ScalableValue,
INSTRUMENTPOSTOLEFT = (float)viewModel.InstrumentPosToLeft,
INSTRUMENTPOSTOTOP = (float)viewModel.InstrumentPosToTop,
INSTRUMENTZINDEX = viewModel.ZIndex,
CREATED_BY= guid
};
context.INSTRUMENTSETTINGSs.Add(instrumentSettings);
context.SaveChanges();
viewModel.ControlId = instrumentSettings.INSTRUMENTSETTINGSID;
var roomId = (from room in context.ROOMs
where room.ROOMNAME == viewModel.RoomName
select room.ROOMID).FirstOrDefault();
var roomWithInstrument = new ROOMWITHINSTRUMENT
{
CREATED_BY = guid,
INSTRUMENTSETTINGSID = viewModel.ControlId,
ROOMID = roomId
};
context.ROOMWITHINSTRUMENTs.Add(roomWithInstrument);
context.SaveChanges();
}
Ошибок нет, и он работает. Единственная проблема заключается в том, что когда я сохраняю запись в базу данных впервые, она занимает слишком много времени (например, 2 секунды). После первого сохранения он работает лучше (меньше секунды). Поэтому мой вопрос: как я могу улучшить первую экономию, поэтому она будет экономить быстрее?
Вы подключаетесь к базе данных каждый раз или один раз? Какой поставщик баз данных вы используете? – iabbott
Очевидно, что это не самое лучшее предложение, пока приложение загружается, напишите незначительные изменения в базе данных :) –
Имеет ли первый запрос базы данных 2 секунды? –