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

Ilia
12.08.2018
13:44:08

Warox
12.08.2018
13:44:16
а, ок

Google

Warox
12.08.2018
13:44:55

Ilia
12.08.2018
13:46:00

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

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

Ilia
12.08.2018
14:48:00

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
когда то потом попробую ручками.. я хочу уже досмотреть этот урок.. и я уже и так устал.. слишком много инфы за день )

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
Тут одни бдшники
Как они его чинить будут?

Al
12.08.2018
19:20:20

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

Ilia
13.08.2018
07:02:13

Валерия
13.08.2018
07:02:28
да просто так
тихо тут у вас, спокойно)

Захар
13.08.2018
07:05:50

Al
13.08.2018
07:20:36

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
те же яйца