powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Организация запросов из десктопного клиента к субд
25 сообщений из 248, страница 6 из 10
Организация запросов из десктопного клиента к субд
    #38055735
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77* достать 50-100 тыс записей, точнее http URL из них (в поле хранилось), и просканировать все, получив ответ http 200/404, обновить статус в таблице в другом поле
* достать 50-100 тыс записей с вложенными объектами и сгенерировать для них определенные другие данные, потом сохранить это в БДДля сохранения можно самостоятельно, без EF, генерить SQL-батчи. Использовать для этого EF никто не заставляет. Не нужно вставлять "всё" в один батч, чтобы MSSQL не ругался на его размеры.

зы: Странная архитектура. Может она причина всех бед?
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38055737
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ,

вот не надо тут бла бла. решите мне такую задачу, вот есть у вас таблица и в ней есть С1,С2 столбцы, окда. И вам надо из нее вытянуть данные, которые (С1=х1 & С2=х2) ИЛИ (С1=х11 & С2=х21) ... и тд много раз.Ну если не получается одним запросом - делайте несколькими. Будет работать медленно но верно.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38055816
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

а нафига тады орм
основная задача орм то как раз запись, читать любой может, а писак маловато будет(усе до сих пор помнят пушкина, а скоко выдающихся читак было, кто их помнит??? токо капицу если в пример привести или перельмана)
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38055825
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosосновная задача орм то как раз записьНет.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38055842
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

что есть проблемы и с чтением?
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38055851
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosа нафига тады орм
"если не получается одним запросом - делайте несколькими" (с)

...- Не получается в хранимке сделать задачу одним запросом
- Делайте несколькими
- А нафига тогда SQL?

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

ViPRosосновная задача орм то как раз запись
Бред сивой кобылы. Основная задача SQL тоже запись?
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38055992
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

ну и что генерит LInq в этом случае?
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38055997
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

я же не говорил ,что не работает. Я говорил, что медленно. И вот тут как раз приходит магия t-sql. Я собственно не против Orma, и EF , просто подчеркиваю, что от хранимок все равно не уйти )
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38056067
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ, ну и что генерит LInq в этом случае?
Вот возьми руки, выпрями их, включи мозг, напиши запрос и посмотри, что он генерит. В чём конкретно вопрос?

netivanАлексей К, я же не говорил ,что не работает. Я говорил, что медленно.
Разговор о сферической кобыле без упряжки.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38056072
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

разница в том делать тыщу раз (ID=x and ID=x2) OR и так 1000 раз и 10 секунд или делаешь JOIN и получаешь 1 секунду.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38056144
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ,

разница в том делать тыщу раз (ID=x and ID=x2) OR и так 1000 раз и 10 секунд или делаешь JOIN и получаешь 1 секунду.
Ну так не делай тыщу раз (ID=x and ID=x2) OR, а сделай джойн в ORM и получи свою секунду. В чем проблема?
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38056159
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

ну у нас рекурсия. Я тебе дал ссылку на свой вопрос, прочитай ее. Если знаешь как - напиши. Но у меня есть в этом сомнение :)
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38056217
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ, ну у нас рекурсия.
ORM не умеет работать с CTE, сто раз уже тылдычили. Пиши вьюху / функцию / хп и обвязывай в своём типизированном датаконтексте. В чем сложность?

netivanЯ тебе дал ссылку на свой вопрос, прочитай ее. Если знаешь как - напиши. Но у меня есть в этом сомнение :)
Я тебе уже ответил: 13538523 13539176 13541607

P.S. Про рекурсию в твоих постах ничего не было ( http://www.sql.ru/forum/actualthread.aspx?tid=978484)

ВбросnetivanВот не пойму позволяет сделать Join и таблицей "из памяти" или нет ? Запрос что - то типа:
Код: c#
1.
from a in ctx.Table Join c in mycollection on a.ID=c.ID & a.ID1=c.ID1 select ...


пока что сделал с помощью SP, но неспортивно :(


1. Начинаешь придумывать новые условия?
2. В чем сложность конкретно и понятно задать вопрос?
3. А ты как невинная девица, не знаешь к какому херу примастыриться Говори по-существу - с конкретными примерами и вопросами.
4. Если проблема с рекурсией, так и говори, что имеешь такую-то и такую-то схему, такой-то и такой-то запрос. И что тебе не понятно, как это будет выглядеть в той или иной ORM. Когда научишься вопросы задавать правильно?
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38056225
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanАлексей К,

я же не говорил ,что не работает. Я говорил, что медленно. И вот тут как раз приходит магия t-sql. Я собственно не против Orma, и EF , просто подчеркиваю, что от хранимок все равно не уйти )Я тоже не говорил что не работает. Просто в моём понимании:

"работает медленнее чем надо" == "не работает"

:-)

netivanМСУ,
разница в том делать тыщу раз (ID=x and ID=x2) OR и так 1000 раз и 10 секунд или делаешь JOIN и получаешь 1 секунду.

1000 простых запросов вида select * from T where X=@x and Y=@y выполняться будут тоже порядка секунды. А то и быстрее, если сетевой пинг позволит + запустить их одновременно асинхронно.

зы: Почему данных, с которыми нужно джойнить, нет в базе? Может с архитектурой что-то не так?
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38056231
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosАлексей К,

что есть проблемы и с чтением?У меня проблем нет.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38056354
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

все равно не согласен, медленнее будет полюбому, даже пусть 5 секунд против 2. Тут я делаю один запрос и получаю быстро то что надо. а тут надо будет делать 1000, а если у меня 1000 таких в секунду что получаем? Вообщем вывод - то какой- orm не на все способен. Думаю на этом надо завершить дискуссию.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38057010
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Алексей КCat2Ну, матом не крыл, но "идиотами" или неким подобным обзывал
Это же просьба относится ка Алексею К.

Бывалоча начнется дискуссия, я бы еще чего мог сказть - ан нет. МСУ и Алексей поцапались и тему закрыли.Вы что-то путаете. Мы с МСУ никогда не ругались. Все наши с ним дискуссии всегда были в рамках приличия.
Прошу прощения. Они с SeVa ругаются
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38057037
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Получить может. Соединится не может.
МСУНа пальцах еще раз: в двухзвенной архитектуре пользователь ПО может безпрепятственно получить строку соединения к БД (пусть даже если ты строишь ПО с помощью виндовой аутентификации в БД). Ты считаешь нормальной практикой, если юзеры (пусть даже особо продвинутые или не очень) начнут хаотично юзать БД через сторонние клиенты (Excel, Access, Management Studio и пр.), делать большие выборки, ковыряться во внутрях БД и искать узкие места? Уже сам факт возможности попадания пользователя в БД, тем более сторонними средствами - вопиющ и опасен. Я уже не говорю про двухзвенки, в которых строка соединения к БД идет от sa либо от достаточно привилегированной сиквельной учетной записи - за такое вообще расстрел на месте.
Cat2, что не понятно по безопасности? Вопросы, комментарии, замечания приветствуются.

Получить может. Соединится не сможет, если его виндовой группе не предоставлено право на доступ к конкретной базе.

Впрочем, могут быть более мягкие варианты. Например, все Domain Users включены в группу public одной из баз. В этом случае они могут увидеть названия таблиц. И все.

Никакого доступа из Excelя не получится, если доступ дается не через разрешения на иаблицы, а через разрешения на ХП.

Разумеется, если используется ОРМ, то кому-то будут даны прямые права на таблицы и можно будет, при известных знаниях, лазать к базе чем угодно.

При использовании хранимых процедур пользователи не знают их названий и не знают их параметров.

Но даже если и знают, то не смогут сделать ничего того, что не позволдяют сделать хранимки.

Ты как-то писал про "тупые хранилища". Приходится напомнить, что эти хранилища не тупые. Их можно тупо использовать и превратить в "тупые хранилища".
Настоящая правильно спроектированная база сама должна поддерживать целостность и непротиворечивость, огранирчения которой нельзя обойти никаким способом. Ну, разумеется, кроме снятия ограничений администратором.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38057040
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
MasterZivИначе выигрыш только в удобстве оформления кода, проигрыш в привязке к конкретной субд.
Вы постоянно пишете приложения которые должны работать со всеми существующими СУБД?
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38057047
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
MasterZivCat2Не все можно сделать с клиента хорошо.
Например, транзакции.


Ну, это ты не прав. Просто не прав.
Может что-то ещё бы привёл в виде примера -- я бы согласился.
Но не транзакции.
Допустим мы открываем транзакцию на клиенте из двух запросов.
В промежутке между ними отвалилась сеть.
Первый запрос заблокировал какие-то ресурсы. (я знаю про версионники! Но и в этом случае незавершенная транзакция ни к чему хорошему не ведет)
Они, конечно, не будут заблокированы вечно. СУБД через разумный промежуток времени откатит эту "зависшую" транзакцию и снимет блокировки. Однако это все таки будет промежуток времени.
Транзакция с сервера будет выполнена даже если клиент умрет страшной смертью
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38057050
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
MasterZivCat2Хранимые процедуры всегда будут чуть быстрее, так как они уже откомпилированы и для них обязательно создан план запроса.


Это сильно зависит от СУБД.
Подготовленные запросы также во многих СУБД откомпилированы.
Планы некоторые СУБД кэшируют и для простых запросов, а не только для процедур.
Не все запросы простые.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38057057
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
MasterZivKorbanz,

В общем, подытоживая, могу предложить следующий "решатель" проблемы.

если надо использовать CRUD -запросы (CreateReadUpdateDelete) и у тебя не одна поддерживаемая СУБД, стоит использовать ORM.

Если надо писать только аналитические запросы (SELECT-ы ) то ORM применять бесполезно

если поддерживается только одна СУБД, стоит писать код в виде хранимых процедур. если поддерживается одна-две СУБД, можно тоже писать код в виде хранимых процедур, несколько раз, для каждой СУБД свой вариант. Естественно, только если процедур немного (10-20).

если запросов много, и много поддерживаемых СУБД, (и запросы аналитические, естественно), то лучше подумать о оформлении кода SQL на клиенте напрямую на SQL в виде универсального, стандартного SQL-я, иногда это получаться не будет, тогда надо писать конкретный запрос в N вариантах, для каждой СУБД.

Не согласен ни с одним пунктом.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38057058
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Алексей КИмею самописный несложный кодогенератор, удобный для дальнейшей поддержки и модификации.
+1 тоже
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38057083
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2MasterZivпропущено...


Ну, это ты не прав. Просто не прав.
Может что-то ещё бы привёл в виде примера -- я бы согласился.
Но не транзакции.
Допустим мы открываем транзакцию на клиенте из двух запросов.
В промежутке между ними отвалилась сеть.
Первый запрос заблокировал какие-то ресурсы. (я знаю про версионники! Но и в этом случае незавершенная транзакция ни к чему хорошему не ведет)
Они, конечно, не будут заблокированы вечно. СУБД через разумный промежуток времени откатит эту "зависшую" транзакцию и снимет блокировки. Однако это все таки будет промежуток времени.
Транзакция с сервера будет выполнена даже если клиент умрет страшной смертью

то есть клиент отправил запрос серверу приложений, отвалился, сервер приложений его выполнил (или не выполнил). в чем проблема?
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38057086
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин, извиняюсь, не сразу понял что тоже самое писал
...
Рейтинг: 0 / 0
25 сообщений из 248, страница 6 из 10
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Организация запросов из десктопного клиента к субд
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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