powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Медленная работа SQL CE
25 сообщений из 35, страница 1 из 2
Медленная работа SQL CE
    #38539832
Фотография Torre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет, есть вопрос к сообществу. Работаю с SQL CE (4.0), один запрос (на select) выводит около 600 записей, для каждой из них выполняется несколько запросов к той же БД примерно таких GetItemByItemId, в результате все растягивается на несколько минут прежде, чем грид обновится. Все бы ничего, но старт приложения затягивается, а юзеру нечем поразвлекаться.

В настоящее время в доступе к данным использую Singleton, несложно организовать и многопоточный доступ, но по моим наблюдениям время теряется на открытие соединения, а SQL CE соединение не позволяет выполнять более одного запроса за сеанс. Если кто сталкивался с такой проблемой, посоветуйте, как бороться, в сети сплошь жалобы.
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38539909
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Torreа SQL CE соединение не позволяет выполнять более одного запроса за сеанс.
Чушь.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
using (var cnn = new SqlCeConnection(@"Data Source=Northwind.sdf;Persist Security Info=False;"))
{
  cnn.Open();
  using(var cmd = new SqlCeCommand("select top 5 [Product ID],[Supplier ID],[Product Name] from [Products]", cnn))
  using(var rd = cmd.ExecuteReader())
    while(rd.Read())
      Console.WriteLine("{0} {1} {2}", rd.GetInt32(0), rd.GetInt32(1), rd.GetString(2));
  using (var cmd = new SqlCeCommand("select top 5 [Supplier ID],[Company Name] from [Suppliers]", cnn))
  using (var rd = cmd.ExecuteReader())
    while (rd.Read())
      Console.WriteLine("{0} {1}", rd.GetInt32(0), rd.GetString(1));
}


- 2 запроса на отдном открытом соединении, отрабатывают прекрасно.
Torreвыводит около 600 записей, для каждой из них выполняется несколько запросов к той же БД примерно таких GetItemByItemId
Откройте учебник, и прочитайте про джойны . Row by row is slow by slow.
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38540001
Фотография Torre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, но доки не рекомендуют, однако даже и в этом случае проблема не решается за исключением многопоточного доступа. Джоины конечно хорошо, но не везде применимы, может грузить все данные сразу сначала в кэш и выбирать уже позже?
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38540011
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TorreСпасибо, но доки не рекомендуют
Что они не рекомендуют? Пакетные запросы и MARS? Документация этого не не рекомендует - в ней прямо написано, что это не поддерживается, но выше речь шла совсем о другом - о последовательном исполнении запросов в одном соединении.
TorreДжоины конечно хорошо, но не везде применимы
Пример в студию.
Torreможет грузить все данные сразу сначала в кэш и выбирать уже позже?
Ну, если по-другому не умеете, то ничего, кроме этого, не остается.
P.S. У меня есть одна эмбеддед-базенка весом в 2 гигабайта. Если столкнетесь с такой - тоже будете всю вливать в кэш?
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38540039
Фотография Torre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использовать join не позволяет большое количество классов, этак можно так намакаронить, что и сам не разберешь. Кроме того, когда дело доходит до выборки по индексу, проходит какое-то время. В настоящее время загружаю по частям, первую сотню сразу вывожу в грид, остальные обрабатываю за кулисами, по окончании загрузки обновляю грид. Работает неплохо, но хотелось бы понять best practice
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38540056
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TorreИспользовать join не позволяет большое количество классов, этак можно так намакаронить, что и сам не разберешь.
Это всего лишь проблемы кривой архитектуры, а не самого SqlCE.
TorreКроме того, когда дело доходит до выборки по индексу, проходит какое-то время.
Неселективный индекс, несвежая статистика, неоптимальный вид джойнов, index scan вместо index seek, итп. Изучайте план исполнения.
TorreРаботает неплохо, но хотелось бы понять best practice
Либо использовать рукописные запросы с джойнами, и их разбор и раскладывание по классам вручную, либо ORM+соответствующий маппинг зависимых сущностей. Во втором случае тоже будут запросы с джойнами, только ORM сгенерит их сам, и сам разложит по классам. Однако проблему индексов, статистики, и планов это не решит, в любом случае здесь придется поработать самому.
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38540135
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TorreСпасибо, но доки не рекомендуют, однако даже и в этом случае проблема не решается за исключением многопоточного доступа. Джоины конечно хорошо, но не везде применимы, может грузить все данные сразу сначала в кэш и выбирать уже позже?

Джойн - это хорошо. В принципе, все данные можно одним запросом вытащить + на клиенте отфильтровать что нужно. Второй вариант - два запроса, а на клиенте соответствие проставить.

Вот что не нужно делать, так это 600 и более запросов к БД.

Я голосую за джойн.
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38540211
Фотография Torre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Я голосую за джойн.Я тоже за джоинт :)
Использование джоин-а повлечет за собой написание фасада. Тогда у меня 2 варианта, написать мультипоточный доступ или фасад, пока взвешиваю, спасибо за советы, но как я понимаю, лучше данные вынуть вообще в одно приседание, раз такая с ней беда.
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38540253
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая-то высосанная из пальца "проблема". На мой взгляд даже не проблема, а абсолютное незнание технологии.
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543214
jbond81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУКакая-то высосанная из пальца "проблема". На мой взгляд даже не проблема, а абсолютное незнание технологии.

а мне вот говорили, что SQL CE не рекомендуется использовать на мобильных ус-вах. Там нужен только SQLite.

Почему?
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543234
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jbond81а мне вот говорили, что SQL CE не рекомендуется использовать на мобильных ус-вах. Там нужен только SQLite.
Почему?
Задай этот вопрос тем, кто "говорил".
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543270
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Torre, авторМедленная работа SQL CE
Майдан головного мозга (((
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543283
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУjbond81а мне вот говорили, что SQL CE не рекомендуется использовать на мобильных ус-вах. Там нужен только SQLite.
Почему?
Задай этот вопрос тем, кто "говорил".а СЕ разве живой?:)
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543380
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanа СЕ разве живой?:)

1. CE уже 1.5 года как не обновляется, это наводит на подозрение
2. В роадмапе вообще отсутствует 4 версия поделия.

Напрашивается вывод о том, что игрушка слегонца подпротухла :)
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543429
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

а что для embedded тогда кроме xml файла? только sqllite? Как-то пока не нужно, но для общего развития)
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543501
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ, а что для embedded тогда кроме xml файла? только sqllite? Как-то пока не нужно, но для общего развития)
Ну получается что да :) http://www.sqlite.org/releaselog/3_8_2.html

P.S. Расстроил ты меня...
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543561
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ2. В роадмапе вообще отсутствует 4 версия поделия.Сроки поддержки продуктов Microsoft SQL Server Compact 4.0
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543614
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ2. В роадмапе вообще отсутствует 4 версия поделия.
Напрашивается вывод о том, что игрушка слегонца подпротухла :)
Сильно подозреваю, что в роадмапе по ссылке перечислено только то, для чего уже определены сроки окончания поддержки (подозреваю - потому что в справке не изложено, по каким причинам тот или иной продукт попадает в роадмап, и потому что в роадмапе отсутствуют не компакт сервера 2008 и 2012).
Хотя я тоже предпочитаю sqlite - просто по причине того, что он функциональнее. SqlCE вообще какой-то совсем уж упрощенный до ниже плинтуса.
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543644
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvМСУ2. В роадмапе вообще отсутствует 4 версия поделия.Сроки поддержки продуктов Microsoft SQL Server Compact 4.0
Полезная инфа, внесу себе в рецепты.

Сон Веры ПавловныХотя я тоже предпочитаю sqlite - просто по причине того, что он функциональнее. SqlCE вообще какой-то совсем уж упрощенный до ниже плинтуса.
Ну просто для emdedded задач большего-то особо и не нужно. Хотя тот или иной функционал лишним не будет, согласен.
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543809
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

может глупо, но все же. Sqllite LINQ поддерживает?
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543820
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanСон Веры Павловны,

может глупо, но все же. Sqllite LINQ поддерживает?

Разумеется, нет. Он и знать про него не знает. LINQ поддерживают провайдеры под SQLite. Например, этот теоретически можно запихнуть в EF.
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543841
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79netivanСон Веры Павловны,

может глупо, но все же. Sqllite LINQ поддерживает?

Разумеется, нет. Он и знать про него не знает. LINQ поддерживают провайдеры под SQLite. Например, этот теоретически можно запихнуть в EF.
безусловно вопрос был о провайдерах. Просто сразу знать какой использовать.
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543848
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем, LocalDB, который постоянно развивается, убил CE... Жалко, хорошая embedded database была.

http://www.microsoft.com/en-us/sqlserver/get-sql-server/try-it.aspx#tab2 Additionally, Express customers can test a new LocalDB version for fast, zero-configuration installation.
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543910
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВообщем, LocalDB, который постоянно развивается, убил CE... Жалко, хорошая embedded database была.
Я бы не назвал LocalDB убийцей CE - ему всё же нужен инсталляция, хоть и zero-configuration. Работы с места в карьер после xcopy deployment с ним не выйдет.
...
Рейтинг: 0 / 0
Медленная работа SQL CE
    #38543987
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныЯ бы не назвал LocalDB убийцей CE - ему всё же нужен инсталляция, хоть и zero-configuration. Работы с места в карьер после xcopy deployment с ним не выйдет.
Согласен, инсталляция нужна, но MS это особо, как я понимаю, не парит и им нах не нужен in-process DLL ... Во-вторых, где embedded в основном популярна? Правильно, на планшетах и прочих мобильных девайсах. В том же Windows Phone даже LocalDB запилена. Так что для CE места совсем не осталось.
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Медленная работа SQL CE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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