@dba_ru

Страница 610 из 718
Warox
12.08.2018
13:43:14
это я опытным путем выяслин.. если вер делаеться по ключу.. тогда все ок

Warox
12.08.2018
13:44:16
а, ок

Google
Warox
12.08.2018
13:44:55


Ilia
12.08.2018
13:46:00
если сделать бегин тран.. то я могу делать инсерт возможность инсертя теряеться после первого селекта с вер условием... на поле которое не являеться уникальным )
Там оно должно дать сделать begin tran ещё что -то должно тоже дать сделать, а затем должно ДАТЬ сделать insert с другим значением , не 'test42' и НЕ ДАТЬ сделать insert со значением 'test42'

Warox
12.08.2018
13:46:43
я это сейчас проверю

но с тест42 тоже должно дать.. - это класичный пример того как получаеться чтение фантомов... первый раз транзакция один читает 3 записи.. потом транзакция 2 вствляет что то.. и второй раз транзакция 1 читает уже больше записей по такому же селекту

Ilia
12.08.2018
13:47:58
я это сейчас проверю
Потому что такое должно быть поведение только на SERIALIZABELE. конечно, возможно MS SQL ведёт тут себя не очень стандартно, я не знаю последние веяния.

Warox
12.08.2018
13:48:02
с другм значением тоже не вставляеться ничего

и это меня смущает

Ilia
12.08.2018
13:48:40
с другм значением тоже не вставляеться ничего
Тогда 1) смотри блокировки на эту таблицу, возможно, там есть блокировка уровня Table эксклюзивная. Если это так, то это станно очень 2) читай про поведение на repeatable read в описании именно твоей версии сервера. Я на сколько знаю, такого быть не должно, но я с MSSQL дело имел последний раз с 6.5, возможно они там всё попеределывали.

Warox
12.08.2018
13:51:15
я кажысь понял

у меня в таблице 3 ляма записей.. а мс-сервер ставит лок(ххз какой.. уже забыл) на таблицу.. если количество шаред локов на записи больше чем 5к

видимо у меня лок на таблицу получаеться

Google
Warox
12.08.2018
13:52:04
погуглю как посмотреть и отпишусь )

Ilia
12.08.2018
13:52:28
Ну shared локи не должны эскалироваться, и мешать вставке они не должны тоже
В смысле эскалироваться то может и должны, но мешать вставке нет.

Warox
12.08.2018
13:53:18
мб... мб... эо можно проверить если повторить эксперимент на меньшей табличке но это возможно глупо.. - я просто ничего почти не знаю о локах..с егодня только начал вникать

Ilia
12.08.2018
13:53:19
Погляди sp_locks или как их там сейчас зовут

Warox
12.08.2018
13:53:26
ок

Ilia
12.08.2018
13:54:23
мб... мб... эо можно проверить если повторить эксперимент на меньшей табличке но это возможно глупо.. - я просто ничего почти не знаю о локах..с егодня только начал вникать
Наоборот, на большой-то и хорошо. Может, тебе стоит проконфигурить количество локов, если оно там конфигурируется вообще, а не всё автоматом

Warox
12.08.2018
13:54:29
ох... совсем не т что я ожидал )



Ilia
12.08.2018
13:55:35
ох... совсем не т что я ожидал )
Да вывод её надо смотреть.

Warox
12.08.2018
13:56:06
ладно, я погуглю как мониторить локи.. посмотр что как.. и отпишусь, когда разберусь с локами



осталось понять, блокирует ли шаред лок на таблице инсерты..

Да вывод её надо смотреть.
все что я нашел - выложил

Al
12.08.2018
14:23:16
осталось понять, блокирует ли шаред лок на таблице инсерты..
Shared locks exist when two transactions are granted read access. One transaction gets the shared lock on data and when the second transaction requests the same data it is also given a shared lock. Both transactions are in a read-only mode, updating the data is not allowed until the shared lock is released.

Warox
12.08.2018
14:23:22
ну выходит что он локает.. если я верно понимаю нужно повторить эксперимент на маленькой таблице.. где лок не будет экскалироваться



Да вывод её надо смотреть.
на маленькой таблице где лок не экскалируеться на таблицу - инсерты работают как ожидолось) разобрался.. спасибо за помощь

Google
Warox
12.08.2018
15:13:01
Разберись как эскалация локов настраивается. Потом и нам расскажешь, я например про MS не знаю.
ну там 2 кейса.. первый.. если 5к строк с локами.. тогда оно ставит на таблицу.. если не может - то с увыеличением строк с локами каждые 1250 новых строк.. оно пробует экскалировать это можно отключить и второй случай.. это если часть памяти которую откушали локи больше чем 40% от всей выделеной памяти для сиквел сервера - тогда оно тоже делает экскалацию локов это нельзя отключить

Ilia
12.08.2018
15:14:23
Warox
12.08.2018
15:20:15
Также, переключи инстанс СУБД на mvcc и ещё раз попробуй, должно быть по другому
ну да.. там будет таблица версий.. и будет ок и там какая то система что если транзакция делает изменения данных.. основываясь на данных полученых с временной талицы версий.. то она будет откачена.. ну это все по свежой памяти я говорю, пушо смотрел ка краз сегодня об этом.. )

когда то потом попробую ручками.. я хочу уже досмотреть этот урок.. и я уже и так устал.. слишком много инфы за день )

aster
12.08.2018
16:13:40
Интересную тему вы затронули. Использовать ли mvcc в проде с _обычным_ приложением

?

Я вот склоняюсь, что нельзя

Al
12.08.2018
16:15:56
Я вот склоняюсь, что нельзя
это же ВИДЕО УРОКИ

aster
12.08.2018
16:16:32
Я видимо пропустил

Ilia
12.08.2018
16:22:16
Я вот склоняюсь, что нельзя
Гыгы, с чего бы это нельзя? И что значит "обычное приложение"?

Terminator
12.08.2018
16:26:33
Elena Morozova будет жить. Поприветствуем!

Sergey
12.08.2018
16:35:29
надо терминатора чинить

слишком много false positives

Захар
12.08.2018
19:18:35
Тут одни бдшники Как они его чинить будут?

Terminator
12.08.2018
22:09:15
@sup_master будет жить. Поприветствуем!

@Nursultan26 будет жить. Поприветствуем!

Google
Terminator
13.08.2018
06:03:01
Vika Korotkova будет жить. Поприветствуем!

Admin
ERROR: S client not available

Валерия
13.08.2018
07:01:10
https://360tv.ru/news/nauka_i_tehnologiya/v-rossii-pojavitsja-baza-dannyh-dlja-otsenki-intellekta-ljudej/?utm_source=lentachold&utm_medium=social&utm_campaign=fb&utm_term=2017

Валерия
13.08.2018
07:02:28
да просто так

тихо тут у вас, спокойно)

Al
13.08.2018
07:20:36
https://360tv.ru/news/nauka_i_tehnologiya/v-rossii-pojavitsja-baza-dannyh-dlja-otsenki-intellekta-ljudej/?utm_source=lentachold&utm_medium=social&utm_campaign=fb&utm_term=2017
И по какой методике будут оценивать? Им не страшно что они сами в топ не попадут?

Ilia
13.08.2018
07:26:49
Да грустнее всего, что это вообще не база данных, а экспертная система. Но ты пойди этим журналюгам объясни.

Вот кстати, вторая специальность, которую я ненавижу, после HR - это журналюги. Полные мудаки.

Al
13.08.2018
08:06:42
Ilia
13.08.2018
08:07:23
На третьем. От них вреда меньше, про них все знают. Они менее опасные.

Frank
13.08.2018
08:12:38
И котел у них в аду свой у каждого, соответствующий их покупательскому профилю при жизни

Evan
13.08.2018
08:16:49
Такой вопрос, Если у меня условие "WHERE field1 IS NOT NULL OR field2 IS NOT NULL" можно ли как-то узнать какое именно поле было не нулевым не выбирая эти поля?

Vladislav
13.08.2018
08:19:12
нет

как ты собираешься узнать значения без селекта?

Al
13.08.2018
08:19:35
нет
Чейта

Vladislav
13.08.2018
08:19:55
вариант кейсов - это тот же селект

Al
13.08.2018
08:20:12
Vladislav
13.08.2018
08:20:19
чё?

Google
Al
13.08.2018
08:20:53
Можешь сделать set a=1

И получишь в ответе эту переменную

Vladislav
13.08.2018
08:21:52
ничего не понял

давай полный пример

Evan
13.08.2018
08:22:10
Я тоже не очень понял, но спасибо ?

И мне не нужно узнать значение, мне нужно узнать какое поле было не нулевым

Vladislav
13.08.2018
08:24:44
а узнать где?

в результате запроса поле добавить?

можешь через кейс что-то из серии case WHERE field1 IS NOT NULL then 1 WHERE field2 IS NOT NULL then 2 else 'xz' end

Al
13.08.2018
08:30:35
SET result=CASE WHEN field1 is not null THEN 'OK' ELSE 'NOK' END

Vladislav
13.08.2018
08:31:15
те же яйца

Страница 610 из 718