Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Sql CE +EF Очеень медленно работает / 10 сообщений из 10, страница 1 из 1
25.10.2013, 20:09
    #38441851
Che0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql CE +EF Очеень медленно работает
Добрый день. Создал новую бд (2 таблицы)compact edition через Visual studio 2012. Взаимодействие с ней через EF. Опять же все герерила VS.
Работает дико медленно. Первый запрос около 10 сек. Все последующие 0,2 сек за простейший запрос. Что где подкрутить ??

запрос самый простой

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public static bool IsNew(long code) 
        {
            int result = 0;

                result = (from adCount in data.AdCode
                          where adCount.Code == code
                          select adCount).Count();
            if (result > 0) return false; else return true;

        }
...
Рейтинг: 0 / 0
25.10.2013, 20:42
    #38441868
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql CE +EF Очеень медленно работает
Che0, переделать все через Any.абсолютно все
...
Рейтинг: 0 / 0
25.10.2013, 20:54
    #38441877
Che0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql CE +EF Очеень медленно работает
Где-то в степи,

Согласен. Но дето тут не в этом. Там записей то пару сотен всего
...
Рейтинг: 0 / 0
25.10.2013, 20:58
    #38441881
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql CE +EF Очеень медленно работает
Che0, какая разница, и покажи запрос sql, который уходит на сервер.
...
Рейтинг: 0 / 0
25.10.2013, 21:15
    #38441892
Che0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql CE +EF Очеень медленно работает
Где-то в степи,
Код: sql
1.
2.
3.
4.
5.
6.
{SELECT 
[Extent1].[Id] AS [Id], 
[Extent1].[code] AS [code], 
[Extent1].[LinkId] AS [LinkId]
FROM [AdCode] AS [Extent1]
WHERE [Extent1].[code] = @p__linq__0}



вот еще инсерт
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public static void  InsertLink(string link)
        {
            long id=0;
           
             DataLink avLink = new DataLink { Link = link, Used = false };
            data.DataLink.Add(avLink);
            data.SaveChanges();
            id=  avLink.Id; 
            string idStr = Regex.Match(link, "\\d+$").Value;
            long code = Convert.ToInt64(idStr);
            InsertCode(id, code);
        }
		
		 private static void InsertCode(long code,long linkId)
        {
                AdCode codeObj = new AdCode { Code = code };
                data.AdCode.Add(codeObj);
                data.SaveChanges(); 
        }
...
Рейтинг: 0 / 0
25.10.2013, 21:40
    #38441908
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql CE +EF Очеень медленно работает
Какой-то бредовый способ сделать count, имхо. А если так:

Код: c#
1.
result = data.AdCode.count(adCount => adCount.Code == code)
...
Рейтинг: 0 / 0
25.10.2013, 22:05
    #38441915
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql CE +EF Очеень медленно работает
Che0,
автор{SELECT
[Extent1].[Id] AS [Id],
[Extent1].[code] AS [code],
[Extent1].[LinkId] AS [LinkId]
FROM [AdCode] AS [Extent1]
WHERE [Extent1].[code] = @p__linq__0}

что то странный код вы мне дали
...
Рейтинг: 0 / 0
25.10.2013, 22:53
    #38441957
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql CE +EF Очеень медленно работает
Где-то в степи, это SQL CE, как следует из топика-клона...
...код местами фееричен...
...
Рейтинг: 0 / 0
25.10.2013, 23:41
    #38441991
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql CE +EF Очеень медленно работает
buser,
вот такой код (from adCount in data.AdCode
where adCount.Code == code
select adCount).Count();
должен транслироваться визитором как select count(*)...............
если бы там стояло ToList()
(from adCount in data.AdCode
where adCount.Code == code
select adCount).ToList().Count();
я бы поверил, но там его не стоит....
...
Рейтинг: 0 / 0
25.10.2013, 23:46
    #38441998
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql CE +EF Очеень медленно работает
к стати есть хорошая тулза для обкатки http://www.linqpad.net/
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Sql CE +EF Очеень медленно работает / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]