![]() |
|
Как работают блокировки в MSSQL? | ☑ | ||
---|---|---|---|---|
0
DTX 4th
14.03.19
✎
13:23
|
Проблема следующая: открываю транзакцию, начинаю писать данные... Последующее можно опустить.
Пока транзация открыта, я не могу на втором компе сделать SELECT TOP 1 * FROM Table - СУБД ждём окончания транзакции. Хотя я ожидал увидеть данные на момент начала транзакции. ЧЯДНТ? |
|||
1
H A D G E H O G s
14.03.19
✎
13:30
|
Делай запрос в 1С!
|
|||
2
H A D G E H O G s
14.03.19
✎
13:30
|
Или ты и пишешь не в 1С, а в SQL ?
|
|||
3
rsv
14.03.19
✎
13:31
|
(0) from table(nolock) и ...увидишь
|
|||
4
rsv
14.03.19
✎
13:34
|
Или ...вставлять данные в колонки а читать из других..тогда взлетит без хинта
|
|||
5
scanduta
14.03.19
✎
13:47
|
(0) ну все верно работает, в ms sql уовень изоляции по умолчанию read commited, это тебе не 1с
|
|||
6
vi0
14.03.19
✎
13:52
|
(0) тебе зачем селект в транзакции?
|
|||
7
vi0
14.03.19
✎
13:54
|
> Хотя я ожидал увидеть данные на момент начала транзакции.
если я не ошибаюсь, тебе поможет read committed snapshot |
|||
8
DTX 4th
14.03.19
✎
13:55
|
(2) SQL
(3) Зачем мне грязное чтение? Туда попадут записи ещё из незаконченной транзакции. (5) А в 1С как? (6) Транзакция на одном компе, селект на другом. (7) До этого почти дошёл, но не понял, как исполнить. Сейчас погуглю |
|||
9
scanduta
14.03.19
✎
14:03
|
(8) В 1с вне транзации (допустим при выполнении запроса в консоли) будет уровень изоляции READ UNCOMMITTED
тебе должно помочь по идее так: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED GO SELECT * from |
|||
10
DTX 4th
14.03.19
✎
14:08
|
(9) Что-то я сомневаюсь. В 1С же можно начать транзакцию и читать данные на начало транзакции.
А READ UNCOMMITTED - то же самое, что и NOLOCK из (3) |
|||
11
scanduta
14.03.19
✎
14:22
|
(10)read uncommitted определяет блокировкe для всего соединения, а nolock только для таблицы
|
|||
12
Cyberhawk
14.03.19
✎
14:28
|
(10) "В 1С же можно начать транзакцию и читать данные на начало транзакции" // Только если RCSI
|
|||
13
Cyberhawk
14.03.19
✎
14:28
|
(или если S, а не X)
|
|||
14
Cyberhawk
14.03.19
✎
14:29
|
А ты же пишешь-блокируешь эксклюзивно, вот и не можешь даже прочитать в другом сеансе
|
|||
15
Провинциальный 1сник
14.03.19
✎
14:33
|
MSSQL изначально не версионник, а блокировочник. И соответственно, 1с разрабатывалась в парадигме блокировочной СУБД. С какой-то версии mssql появилась некая версионность, но в 1с уже привыкли на блокировках жить, а не разруливать конфликты изменений.
|
|||
16
DTX 4th
14.03.19
✎
14:59
|
В общем, RCSI устанавливается уже около часа на базу-миллионник..
Потом отпишусь |
|||
17
Cyberhawk
14.03.19
✎
15:00
|
"базу-миллионник" // Миллион чего - мегабайт / записей в таблицах / денег в кармане пользователей? ))
|
|||
18
DTX 4th
14.03.19
✎
15:00
|
записей.
Не ожидал, что так долго будет Сейчас около 1гб всего |
|||
19
DTX 4th
14.03.19
✎
15:47
|
Не дождался, отменил :|
|
|||
20
Вафель
14.03.19
✎
15:48
|
(18) с базой наверно активная работа шла?
|
|||
21
DTX 4th
14.03.19
✎
15:53
|
(20) Да вроде нет
Но возможно что-то зависло Ща ещё раз попробую |
|||
22
vi0
14.03.19
✎
18:05
|
(9) нужно это только указать снапшот
|
|||
23
vi0
15.03.19
✎
13:29
|
(21) ну и?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |