|
|
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
ViPRos ну, если доки не врут, то получается, что нечего было наезжать на бедного Моисеева по части нагрузки на сервер? Не получается. То, что будет такой результат, совершенно не означает, что он будет достигнут отдельным селектом с соответствующими тратами. Во всяком случае, я искренне надеюсь, что постгрес не настолько плох. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 14:35 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
В доках Оракл также написано, что поля undefined "RETURNING INTO Clause The returning clause specifies the values return from DELETE, EXECUTE IMMEDIATE, INSERT, and UPDATE statements. You can retrieve the column values into individual variables or into collections. You cannot use the RETURNING clause for remote or parallel deletes. If the statement does not affect any rows, the values of the variables specified in the RETURNING clause are undefined." https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/returninginto_clause.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 14:51 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
ViPRos В доках Оракл также написано, что поля undefined На практике они просто unchanged. Что в них было до того, то и останется. Впрочем, это неважно, поскольку ключевая проверка в любом случае на sql%rowcount. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 14:56 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
softwarer, ясно, так и думал, что никто лишний раз не будет их обнулять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 14:57 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
>softwarer, сегодня, 13:02 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325462&msg=22142172][22142172] >Как отработает под Ораклом то, что написал я - можешь посмотреть < И всё таки, что получит клиент в случае ситуации -другой клиент мог изменить оригинал сущности- Мой код дает текущий оригинал сущности + признак не штатной ситуации. Что даёт твой код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 16:30 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
>softwarer, сегодня, 14:35 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325462&msg=22142259][22142259] >Не получается… < Мне это напоминает шулерство. Из всего множества работ сервера по выполнению UPDATE Вы выбрали две, собственно UPDATE или UPDATE+SELECT. И утверждаете, что UPDATE+SELECT приводит к удвоению нагрузки на сервер. Работ больше, может значительно больше. Пользователь реализует запрос на выполнение UPDATE примерно так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Я не знаю, какую работу выполняет сервер по команде command.ExecuteReader(), но её объём можно косвенно оценить по времени выполнения команды. Думаю, что это более адекватная оценка нагрузки на сервер данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 17:29 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
ВМоисеев Я думаю иначе. Понятно, что Ваши измы мне по барабану. Поэтому, давайте оставим в покое философию и графоманию и будем обсуждать конкретные проблемы. В текущей ситуации - ХП и UPDATE. Вас уже просто хочеться послать на три буквы, потому что вы очень мерзко и отвратительно ведёте дискуссию. Я вам код привёл. По барабану, хотя вы настаивали и просили. Я вам расписал по пунктам проблемы в вашем коде. По барабану. Общаться с мудаками -- себя не уважать. Поэтому идите лесом и по-дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 17:38 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
softwarer hVostt 2. Код невозможно протестировать, так как часть логики в БД, часть логики в клиентском коде. Н-да. До сих пор Вы оставались единственным, кроме меня, кто не говорил глупостей. Собственный опыт и опыт иногочисленных коллег показывает, что тестирование логики в БД, это боль и проблемы. А если логика распределана между клиентом и БД, всё становится ещё печальнее. Я хочу сказать, что у ХП есть область применения, но как решение конкретных проблем производительности, а не штатный способ разработки. Не понимаю, почему вы говорите, что это глупости. Похоже я и большинство коллег, с которыми я работал и общался -- глупые. И весь мир глупый, так как в разработке от ХП уходят по возможности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 17:41 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
ВМоисеев, Твой код это лютый песец. Оно и вправду, лучше уж пиши всю БЛ в хранимках, чем так в клиенте или миддлетайере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 18:54 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
hVostt у ХП есть область применения Для двузвенки ХП единственный выход, из соображений секьюрити. Но кому в голову придет сейчас делать двузвенку без апп-сервера. Ну и еще, возможно, всякий репортинг, где, вообще, БЛ кроме селектов никакой нет и ХП чисто для того, чтобы не громоздить сиквельные селекты прямо в коде (еще и с вытекающими проблемами их поддержки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 19:01 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
>fkthat, сегодня, 19:01 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325462&msg=22142815][22142815] >...Но кому в голову придет сейчас делать двузвенку… < Мне. >Для двузвенки ХП единственный выход, из соображений секьюрити. < Не совсем так. В своё время мне пришлось написать ГИС под Венский документ. На карте Евразии отображаются метки и маркеры сущностей. ХП готовят часть параметров отображаемой сущности, другая часть формируется на компе клиента. Так удобнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 19:44 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
ВМоисеев В своё время мне пришлось написать ГИС под Венский документ. На карте Евразии отображаются метки и маркеры сущностей. ХП готовят часть параметров отображаемой сущности, другая часть формируется на компе клиента. Так удобнее. Двузвенка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 20:01 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
>softwarer, 26 май 20, 03:52 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325462&msg=22139430][22139430] >… Ну попробуйте хотя бы что-нибудь типа… < Спасибо за доставленное интеллектуальное удовольствие. Продолжаю ломать голову, как этим воспользоваться - красиво может получиться. Если аналогично сделать для MSSQL - UPDATE … OUTPUT. Но я дилетант в тонких материях T-SQL, впрочем, как и в PostgeSQL. Я знаю, что мне надо, но реализация хотелки не всегда на высоте. Вот вопрос, ответ на который не нашел: update Отделы set отдел = case when ts = :ts then :отдел else отдел end В моём случае, ts есть timestamp и значение её формируется системой автоматом. Какое значение ts используется в set - до или после изменения? Потом мне не очень по душе, что UPDATE выполняется в любом случае, даже тогда, когда делать его и не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 20:03 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
>Изопропил, сегодня, 20:01 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325462&msg=22142833][22142833] >Двузвенка? < Да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 20:05 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
ВМоисеев Не совсем так. Совсем так. А поскольку ты этого не понимаешь, то я сейчас заподозрил, что у тебя, помимо всего прочего, любой юзер может подконнектится к БД и делать там (по крайней мере с данными) все что хочет. А видя твой код, я даже не удивился бы, что у тебя там вообще всё коннектится под sa с открытым паролем в конфигах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 20:38 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
любая цепочка заканчивается двухзвенкой :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 20:40 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
ВМоисеев Какое значение ts используется в set - до или после изменения? "ts" - это поле в таблице. ":ts" - это параметр, который приходит с клиента и содержит временную метку записи на момент считывания данных в грид. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 20:50 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
ViPRos любая цепочка заканчивается двухзвенкой :) И даже более того. Если немного подумать, то вполне очевидно, что там, где хорошо работает однозвенка, разумно использовать однозвенку. А для каждого следующего звена - нужно разумное обоснование - N-е звено нужно для решения задач, которые не получится хорошо решить ни на одном из предыдущих N-1 звеньев. Здесь ключевое слово "разумное". Соответственно, по мере роста технологий многозвенки становятся всё менее и менее нужными. Вполне вероятно, однажды мы придём к оптимальности однозвенной схемы для тех задач, которые сегодня решаем большим количеством звеньев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 20:53 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
softwarer там, где хорошо работает однозвенка, разумно использовать однозвенку. "Однозвенка" - это только если выкинуть вообще сервер БД, и данные прямо из файлов *.mdf с диска читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 21:00 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
>fkthat, сегодня, 20:38 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325462&msg=22142844][22142844] > А поскольку ты этого не понимаешь… < Откуда этот апломб? Посмотри сюда . Пункт 7. Для авторизации необходимо: 1. пин-код, известный пользователю 2. криптоконтейнер с параметрами доступа пользователя к базе данных, информация пользователю не доступна 3. программа Пускач. Никакой информации по доступе к данным у пользователя нет. Есть у Пукача и функционального приложения. Формируется динамически, по результатам аутентификации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 21:15 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
>softwarer, сегодня, 20:50 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325462&msg=22142855][22142855] >"ts" - это поле в таблице < А поле ts в этом фрагменте что? returning отдел, ts совпадает его значение с полем ts этого фрагмента? отдел = case when ts = :ts then :отдел else отдел end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 21:22 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
ВМоисеев А поле ts в этом фрагменте что? Это поле в таблице. ВМоисеев совпадает его значение с полем ts этого фрагмента? Это одно и то же поле. А что происходит с его значениями - зависит от того, менялось ли значение этого поля в ходе update-а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 21:37 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
>softwarer, сегодня, 21:37 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325462&msg=22142875][22142875] >...менялось ли значение этого поля в ходе update-а < Да, поле обязательно будет изменено. Автоматически. Но когда? Какое значение будет использовано здесь -отдел = case when ts = :ts then :отдел else отдел end- измененное или оригинальное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 21:55 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
ВМоисеев >fkthat, сегодня, 20:38 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325462&msg=22142844][22142844] > А поскольку ты этого не понимаешь… < Откуда этот апломб? Посмотри сюда . Пункт 7. Для авторизации необходимо: 1. пин-код, известный пользователю 2. криптоконтейнер с параметрами доступа пользователя к базе данных, информация пользователю не доступна 3. программа Пускач. Никакой информации по доступе к данным у пользователя нет. Есть у Пукача и функционального приложения. Формируется динамически, по результатам аутентификации. Слушай, ты лучше не продолжай, чтобы свою профрепутацию дальше не портить. Сделай там хоть воьмифакторную аутентификацию с Пускачами, пин-кодами. номерами кредиток, и отпечатками всех двадцати палльцев на руках и ногах. Все равно у тебя приложение будет коннектится к серверу под каким-то аккаунтом и потенциально мне ничего не помешает взять SSMS или sqlcmd и законнектиться с ним минуя всех твоих хоть пускачей, хоть хохмачей. Единственный способ при этом как-либо ограничить доступ к таблицам это использовать хранимки, вьюхи, ЮДФы и "ownership chaining". Но тебе это невдомек, потому что ты даже и двузвенную архитектуру на самом деле толком не понимаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2020, 23:48 |
|
||
|
Взаимодействие клиентов с БД.
|
|||
|---|---|---|---|
|
#18+
fkthat ВМоисеев >fkthat, сегодня, 20:38 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325462&msg=22142844][22142844] > А поскольку ты этого не понимаешь… < Откуда этот апломб? Посмотри сюда . Пункт 7. Для авторизации необходимо: 1. пин-код, известный пользователю 2. криптоконтейнер с параметрами доступа пользователя к базе данных, информация пользователю не доступна 3. программа Пускач. Никакой информации по доступе к данным у пользователя нет. Есть у Пукача и функционального приложения. Формируется динамически, по результатам аутентификации. Слушай, ты лучше не продолжай, чтобы свою профрепутацию дальше не портить. Сделай там хоть воьмифакторную аутентификацию с Пускачами, пин-кодами. номерами кредиток, и отпечатками всех двадцати палльцев на руках и ногах. Все равно у тебя приложение будет коннектится к серверу под каким-то аккаунтом и потенциально мне ничего не помешает взять SSMS или sqlcmd и законнектиться с ним минуя всех твоих хоть пускачей, хоть хохмачей. Единственный способ при этом как-либо ограничить доступ к таблицам это использовать хранимки, вьюхи, ЮДФы и "ownership chaining". Но тебе это невдомек, потому что ты даже и двузвенную архитектуру на самом деле толком не понимаешь. глубоко ошибаешься :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2020, 01:37 |
|
||
|
|

start [/forum/topic.php?fid=33&msg=39964509&tid=1547103]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
184ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 515ms |

| 0 / 0 |
