|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
Всем привет, есть вопрос к сообществу. Работаю с SQL CE (4.0), один запрос (на select) выводит около 600 записей, для каждой из них выполняется несколько запросов к той же БД примерно таких GetItemByItemId, в результате все растягивается на несколько минут прежде, чем грид обновится. Все бы ничего, но старт приложения затягивается, а юзеру нечем поразвлекаться. В настоящее время в доступе к данным использую Singleton, несложно организовать и многопоточный доступ, но по моим наблюдениям время теряется на открытие соединения, а SQL CE соединение не позволяет выполнять более одного запроса за сеанс. Если кто сталкивался с такой проблемой, посоветуйте, как бороться, в сети сплошь жалобы. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 00:45 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
Torreа SQL CE соединение не позволяет выполнять более одного запроса за сеанс. Чушь. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
- 2 запроса на отдном открытом соединении, отрабатывают прекрасно. Torreвыводит около 600 записей, для каждой из них выполняется несколько запросов к той же БД примерно таких GetItemByItemId Откройте учебник, и прочитайте про джойны . Row by row is slow by slow. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 06:29 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
Спасибо, но доки не рекомендуют, однако даже и в этом случае проблема не решается за исключением многопоточного доступа. Джоины конечно хорошо, но не везде применимы, может грузить все данные сразу сначала в кэш и выбирать уже позже? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 09:25 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
TorreСпасибо, но доки не рекомендуют Что они не рекомендуют? Пакетные запросы и MARS? Документация этого не не рекомендует - в ней прямо написано, что это не поддерживается, но выше речь шла совсем о другом - о последовательном исполнении запросов в одном соединении. TorreДжоины конечно хорошо, но не везде применимы Пример в студию. Torreможет грузить все данные сразу сначала в кэш и выбирать уже позже? Ну, если по-другому не умеете, то ничего, кроме этого, не остается. P.S. У меня есть одна эмбеддед-базенка весом в 2 гигабайта. Если столкнетесь с такой - тоже будете всю вливать в кэш? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 09:38 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
Использовать join не позволяет большое количество классов, этак можно так намакаронить, что и сам не разберешь. Кроме того, когда дело доходит до выборки по индексу, проходит какое-то время. В настоящее время загружаю по частям, первую сотню сразу вывожу в грид, остальные обрабатываю за кулисами, по окончании загрузки обновляю грид. Работает неплохо, но хотелось бы понять best practice ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 09:57 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
TorreИспользовать join не позволяет большое количество классов, этак можно так намакаронить, что и сам не разберешь. Это всего лишь проблемы кривой архитектуры, а не самого SqlCE. TorreКроме того, когда дело доходит до выборки по индексу, проходит какое-то время. Неселективный индекс, несвежая статистика, неоптимальный вид джойнов, index scan вместо index seek, итп. Изучайте план исполнения. TorreРаботает неплохо, но хотелось бы понять best practice Либо использовать рукописные запросы с джойнами, и их разбор и раскладывание по классам вручную, либо ORM+соответствующий маппинг зависимых сущностей. Во втором случае тоже будут запросы с джойнами, только ORM сгенерит их сам, и сам разложит по классам. Однако проблему индексов, статистики, и планов это не решит, в любом случае здесь придется поработать самому. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 10:06 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
TorreСпасибо, но доки не рекомендуют, однако даже и в этом случае проблема не решается за исключением многопоточного доступа. Джоины конечно хорошо, но не везде применимы, может грузить все данные сразу сначала в кэш и выбирать уже позже? Джойн - это хорошо. В принципе, все данные можно одним запросом вытащить + на клиенте отфильтровать что нужно. Второй вариант - два запроса, а на клиенте соответствие проставить. Вот что не нужно делать, так это 600 и более запросов к БД. Я голосую за джойн. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 10:53 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
Arm79Я голосую за джойн.Я тоже за джоинт :) Использование джоин-а повлечет за собой написание фасада. Тогда у меня 2 варианта, написать мультипоточный доступ или фасад, пока взвешиваю, спасибо за советы, но как я понимаю, лучше данные вынуть вообще в одно приседание, раз такая с ней беда. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 11:26 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
Какая-то высосанная из пальца "проблема". На мой взгляд даже не проблема, а абсолютное незнание технологии. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 11:49 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
МСУКакая-то высосанная из пальца "проблема". На мой взгляд даже не проблема, а абсолютное незнание технологии. а мне вот говорили, что SQL CE не рекомендуется использовать на мобильных ус-вах. Там нужен только SQLite. Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 10:54 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
jbond81а мне вот говорили, что SQL CE не рекомендуется использовать на мобильных ус-вах. Там нужен только SQLite. Почему? Задай этот вопрос тем, кто "говорил". ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 11:04 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
Torre, авторМедленная работа SQL CE Майдан головного мозга ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 11:22 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
МСУjbond81а мне вот говорили, что SQL CE не рекомендуется использовать на мобильных ус-вах. Там нужен только SQLite. Почему? Задай этот вопрос тем, кто "говорил".а СЕ разве живой?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 11:32 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
netivanа СЕ разве живой?:) 1. CE уже 1.5 года как не обновляется, это наводит на подозрение 2. В роадмапе вообще отсутствует 4 версия поделия. Напрашивается вывод о том, что игрушка слегонца подпротухла :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 12:24 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
МСУ, а что для embedded тогда кроме xml файла? только sqllite? Как-то пока не нужно, но для общего развития) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 12:49 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
netivanМСУ, а что для embedded тогда кроме xml файла? только sqllite? Как-то пока не нужно, но для общего развития) Ну получается что да :) http://www.sqlite.org/releaselog/3_8_2.html P.S. Расстроил ты меня... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 13:11 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
МСУ2. В роадмапе вообще отсутствует 4 версия поделия.Сроки поддержки продуктов Microsoft SQL Server Compact 4.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 13:36 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
МСУ2. В роадмапе вообще отсутствует 4 версия поделия. Напрашивается вывод о том, что игрушка слегонца подпротухла :) Сильно подозреваю, что в роадмапе по ссылке перечислено только то, для чего уже определены сроки окончания поддержки (подозреваю - потому что в справке не изложено, по каким причинам тот или иной продукт попадает в роадмап, и потому что в роадмапе отсутствуют не компакт сервера 2008 и 2012). Хотя я тоже предпочитаю sqlite - просто по причине того, что он функциональнее. SqlCE вообще какой-то совсем уж упрощенный до ниже плинтуса. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 14:02 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
sphinx_mvМСУ2. В роадмапе вообще отсутствует 4 версия поделия.Сроки поддержки продуктов Microsoft SQL Server Compact 4.0 Полезная инфа, внесу себе в рецепты. Сон Веры ПавловныХотя я тоже предпочитаю sqlite - просто по причине того, что он функциональнее. SqlCE вообще какой-то совсем уж упрощенный до ниже плинтуса. Ну просто для emdedded задач большего-то особо и не нужно. Хотя тот или иной функционал лишним не будет, согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 14:19 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, может глупо, но все же. Sqllite LINQ поддерживает? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 15:41 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
netivanСон Веры Павловны, может глупо, но все же. Sqllite LINQ поддерживает? Разумеется, нет. Он и знать про него не знает. LINQ поддерживают провайдеры под SQLite. Например, этот теоретически можно запихнуть в EF. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 15:46 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
Arm79netivanСон Веры Павловны, может глупо, но все же. Sqllite LINQ поддерживает? Разумеется, нет. Он и знать про него не знает. LINQ поддерживают провайдеры под SQLite. Например, этот теоретически можно запихнуть в EF. безусловно вопрос был о провайдерах. Просто сразу знать какой использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 16:02 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
Вообщем, 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 16:10 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
МСУВообщем, LocalDB, который постоянно развивается, убил CE... Жалко, хорошая embedded database была. Я бы не назвал LocalDB убийцей CE - ему всё же нужен инсталляция, хоть и zero-configuration. Работы с места в карьер после xcopy deployment с ним не выйдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 16:42 |
|
Медленная работа SQL CE
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныЯ бы не назвал LocalDB убийцей CE - ему всё же нужен инсталляция, хоть и zero-configuration. Работы с места в карьер после xcopy deployment с ним не выйдет. Согласен, инсталляция нужна, но MS это особо, как я понимаю, не парит и им нах не нужен in-process DLL ... Во-вторых, где embedded в основном популярна? Правильно, на планшетах и прочих мобильных девайсах. В том же Windows Phone даже LocalDB запилена. Так что для CE места совсем не осталось. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 17:33 |
|
|
start [/forum/topic.php?fid=20&msg=38543214&tid=1403314]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 152ms |
0 / 0 |