Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Could not continue scan with NOLOCK.....  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
На одной из баз часто стало появляться :

Microsoft SQL Server Native Client 10.0: Could not continue scan with NOLOCK due to data movement.
HRESULT=80004005, SQLSrvr: SQLSTATE=42000, state=3, Severity=C, native=601, line=1

почитал тынц.
Запуск ДБСС ничего не дал. 0 ошибок.

Куда еще можно посмотреть ?

зы: мсскл2008r2 1С8
20 июл 17, 16:43    [20662142]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36691
В сторону не читания данных с nolock?
20 июл 17, 16:43    [20662144]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
наутилус
Member

Откуда: UA
Сообщений: 1263
Гавриленко Сергей Алексеевич,

1с же?
20 июл 17, 16:47    [20662160]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
o-o
Guest
так может кто-то все же читает с NOLOCK?
20 июл 17, 16:48    [20662171]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
наутилус
Member

Откуда: UA
Сообщений: 1263
o-o,

так 1с и читает (
20 июл 17, 16:51    [20662186]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
o-o
так может кто-то все же читает с NOLOCK?
Все так читают. "1С же" (с) :)
Много разных баз, но проблема только с этой.
Странно, что ЧекДБ прошел без ошибок.
20 июл 17, 17:14    [20662278]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
o-o
Guest
LSV
Странно, что ЧекДБ прошел без ошибок.

чего странного-то?
база в порядке.
а вот нефиг читать с NOLOCK
20 июл 17, 17:17    [20662285]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
LSV,

включить RCSI, если NOLOCK не убирается
20 июл 17, 17:22    [20662306]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
msLex
Member

Откуда:
Сообщений: 7729
TaPaK
LSV,

включить RCSI, если NOLOCK не убирается

а чем это поможет?
NOLOCK в RCSI остается грязным чтением.
20 июл 17, 17:41    [20662376]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
o-o
Guest
[quot LSV]
o-o
Много разных баз, но проблема только с этой.

а эта база на другом диске лежит, чем остальные базы?
20 июл 17, 17:44    [20662383]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
msLex
TaPaK
LSV,

включить RCSI, если NOLOCK не убирается

а чем это поможет?
NOLOCK в RCSI остается грязным чтением.

у вас вторая попытка, крутите барабан
20 июл 17, 17:48    [20662391]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
o-o
Guest
TaPaK
msLex
пропущено...

а чем это поможет?
NOLOCK в RCSI остается грязным чтением.

у вас вторая попытка, крутите барабан

Какой еще барабан?
Запрос на read uncommitted читает незакоммиченное, хоть в самой базе RC, хоть RCSI
20 июл 17, 18:24    [20662526]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7392
Надо автору смириться или хакнуть 1С.
20 июл 17, 18:25    [20662530]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
LSV,

проверяйте диски, очередь, скорости чтения записи, обычно эта ошибка признак помирания массива
20 июл 17, 18:46    [20662584]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
invm
Member

Откуда: Москва
Сообщений: 9116
LSV
почитал тынц.
Запуск ДБСС ничего не дал. 0 ошибок.
Значит БД у вас в порядке и ошибка из-за того, о чем гласит сообщение.
А "data movement" бывает разный. Например вот такой: 16178434
В общем, если нельзя отказаться от nolock, ищите причину. Или организуйте на клиенте перезапуск запроса, при возникновении этой ошибки.
LSV
Куда еще можно посмотреть ?
Например, в сторону отказа от 1С :) Тем более, что его у вас все равно забанили :)
20 июл 17, 20:02    [20662708]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
o-o
TaPaK
пропущено...

у вас вторая попытка, крутите барабан

Какой еще барабан?
Запрос на read uncommitted читает незакоммиченное, хоть в самой базе RC, хоть RCSI

так. Проблема в "Could not continue scan with NOLOCK due to data movement" NOLOCK убрать не могут, он зашит в 1С(как говорят) RCSI уберёт эту ошибку и все продолжат читать свои незакоммиченные записи.
21 июл 17, 08:48    [20663427]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
o-o
Guest
TaPaK
o-o
пропущено...

Какой еще барабан?
Запрос на read uncommitted читает незакоммиченное, хоть в самой базе RC, хоть RCSI

так. Проблема в "Could not continue scan with NOLOCK due to data movement" NOLOCK убрать не могут, он зашит в 1С(как говорят) RCSI уберёт эту ошибку и все продолжат читать свои незакоммиченные записи.

здрасьте.
RCSI что, запрещает апдэйтить и делитить?
данные как гуляли, так и продолжают перемещаться.
только вот кто на RC их читает, получает теперь последние закомиченные данные,
ибо RCSI другое не делает, кроме как версии плодить.
а кто на RU что читал, то и читает.
куда-то пришел прочесть, а там уже данных и нет
21 июл 17, 09:13    [20663524]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
o-o
TaPaK
пропущено...

так. Проблема в "Could not continue scan with NOLOCK due to data movement" NOLOCK убрать не могут, он зашит в 1С(как говорят) RCSI уберёт эту ошибку и все продолжат читать свои незакоммиченные записи.

здрасьте.
RCSI что, запрещает апдэйтить и делитить?
данные как гуляли, так и продолжают перемещаться.
только вот кто на RC их читает, получает теперь последние закомиченные данные,
ибо RCSI другое не делает, кроме как версии плодить.
а кто на RU что читал, то и читает.
куда-то пришел прочесть, а там уже данных и нет

это сугубо ваше личное мнение, которое с реальностью не имеет никакого отношения
21 июл 17, 09:14    [20663529]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
o-o
Guest
TaPaK
o-o
пропущено...

здрасьте.
RCSI что, запрещает апдэйтить и делитить?
данные как гуляли, так и продолжают перемещаться.
только вот кто на RC их читает, получает теперь последние закомиченные данные,
ибо RCSI другое не делает, кроме как версии плодить.
а кто на RU что читал, то и читает.
куда-то пришел прочесть, а там уже данных и нет

это сугубо ваше личное мнение, которое с реальностью не имеет никакого отношения

ну давайте уже ссылку на то, где описано, что RCSI запрещает UPDATE/DELETE.
ну или как еще он помешает чтению незакоммиченного?
21 июл 17, 09:16    [20663541]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
o-o,

автор
ну давайте уже ссылку на то, где описано, что RCSI запрещает UPDATE/DELETE.
зачем надо запрещать? будет читать версию и никто не выдернет в момент чтения
21 июл 17, 09:19    [20663552]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
o-o
Guest
TaPaK
o-o,

автор
ну давайте уже ссылку на то, где описано, что RCSI запрещает UPDATE/DELETE.
зачем надо запрещать? будет читать версию и никто не выдернет в момент чтения

во же блин, не будет версию читать.
в базе с RCSI создайте табличку с id, col: 1,1
в одном окне откройте транзакцию и сделайте update без коммита:
begin tran
update T
set col = 2 
where id = 1

в другом прочтите
select *
from T with(nolock)

думаете, 1 или 2 вернет?
проделайте и убедитесь
21 июл 17, 09:24    [20663582]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
o-o,
утомило.
как получить ошибку, и как решить ошибку,
мне нахрен не впало обсуждать какую из грязных записей втянет RU или RCSI
если они влезли в NOLOCK, то я пишу как избавится, а не рассказываю что жить с RU
не правильно, но вам никто не запрещает

+
CREATE DATABASE NOLOCKERR
GO
USE NOLOCKERR
GO
--ALTER DATABASE NOLOCKERR SET READ_COMMITTED_SNAPSHOT ON

create table t1 (k int, data int)
insert t1 values (0, 0)
insert t1 values (1, 1)


create table t2 (pk int primary key)
insert t2 values (0)
insert t2 values (1)

begin tran
update t2 set pk = pk where pk = 0

/*
-- после запуска сессии 2
delete t1 where k = 0
commit tran

*/

/*
-- сессия 2

select *
from t1 with (nolock)
where exists (select * from t2 where t1.k = t2.pk)
*/

-- DROP DATABASE NOLOCKERR
21 июл 17, 09:27    [20663601]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
invm,

автор
Тем более, что его у вас все равно забанили :)
это кстати тоже фантазии
21 июл 17, 09:36    [20663637]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
o-o
Guest
TaPaK
o-o,
утомило.
как получить ошибку, и как решить ошибку,
мне нахрен не впало обсуждать какую из грязных записей втянет RU или RCSI
если они влезли в NOLOCK, то я пишу как избавится, а не рассказываю что жить с RU
не правильно, но вам никто не запрещает

+
CREATE DATABASE NOLOCKERR
GO
USE NOLOCKERR
GO
--ALTER DATABASE NOLOCKERR SET READ_COMMITTED_SNAPSHOT ON

create table t1 (k int, data int)
insert t1 values (0, 0)
insert t1 values (1, 1)


create table t2 (pk int primary key)
insert t2 values (0)
insert t2 values (1)

begin tran
update t2 set pk = pk where pk = 0

/*
-- после запуска сессии 2
delete t1 where k = 0
commit tran

*/

/*
-- сессия 2

select *
from t1 with (nolock)
where exists (select * from t2 where t1.k = t2.pk)
*/

-- DROP DATABASE NOLOCKERR

у меня нет на работе тестового сервера,
а на проде ни одной базы с RCSI.
так что сейчас не проверю.
но принцип-то можете объяснить, почему уйдет ошибка на RCSI?
раз репро приведено, видимо вы правы.
но объяснение?
21 июл 17, 10:00    [20663757]     Ответить | Цитировать Сообщить модератору
 Re: Could not continue scan with NOLOCK.....  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
o-o,

читает версию на момент стейтмента и пофиг что там происходит во время чтения.
21 июл 17, 10:03    [20663772]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить