Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Удаленная и новая строчка после инструкции UPDATE  [new]
scaron
Member

Откуда:
Сообщений: 8
Существует таблица A.

Существует представление(схематичная конструкция):

select id,
sum,
vol...
from A(nolock), B(nolock), C(nolock)...
where A.id = B.id and B.x_id = C.x_id ...
group by id, line...

Данное представление CrystalReports 8.5 использует для формирования отчета.

Точное время установить не удалось, но примерно в один промежуток времени запустили формироваться отчет, а другим пользователем была запущена инструкция:

update A
set qty = 1
sp_id = 117
from A(updlock)
where id = 369

(старые значения qty = 1, sp_id = 280)

В результате в отчет попали две строчки из таблицы А с id = 369:
id qty sp_id
369 1 117
369 1 280

Как CrystalReports подцепил удаленную и новую строчки таблицы A? Crystal подключается к SQL Server 2000 посредством ODBC источника.
15 июл 09, 16:50    [7420133]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Как CrystalReports подцепил удаленную и новую строчки таблицы A? Crystal
> подключается к SQL Server 2000 посредством ODBC источника.

а нефиг с nolock-ом читать.

Posted via ActualForum NNTP Server 1.4

15 июл 09, 16:53    [7420156]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
scaron
Member

Откуда:
Сообщений: 8
daw,

да даже с nolock такого не должно быть
15 июл 09, 17:04    [7420225]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
scaron
daw,

да даже с nolock такого не должно быть
Про фантомы читали что-нибудь?
15 июл 09, 17:05    [7420233]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> да даже с nolock такого не должно быть

почему же? читали из индекса (по qty или по sp_id) и попали аккурат на тот
момент, когда он перестраивался (при апдейте) и новое значение уже было вставлено, а
старое еще не удалено.

зы: но, кстати, от такого фокуса и read committed может не спасти - был
тут топик, помнится.

Posted via ActualForum NNTP Server 1.4

15 июл 09, 17:09    [7420250]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
scaron
Member

Откуда:
Сообщений: 8
а существует такой момент когда старое и новое значение одновременно находятся?
15 июл 09, 17:14    [7420280]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> и попали аккурат на тот момент, когда он перестраивался (при апдейте)
> и новое значение уже было вставлено, а старое еще не удалено.

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


Posted via ActualForum NNTP Server 1.4

15 июл 09, 17:20    [7420322]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
scaron
Member

Откуда:
Сообщений: 8
до какой же степени всё это должно совпасть по времени так ппц =)))
15 июл 09, 18:45    [7420907]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
Glory
Member

Откуда:
Сообщений: 104760
scaron
до какой же степени всё это должно совпасть по времени так ппц =)))

До какой же степени нужно быть наивным, чтобы при разрешении читать серверу грязные данные удивляться непредсказуемости результата запроса
15 июл 09, 21:27    [7421308]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
scaron
Member

Откуда:
Сообщений: 8
Glory
scaron
до какой же степени всё это должно совпасть по времени так ппц =)))

До какой же степени нужно быть наивным, чтобы при разрешении читать серверу грязные данные удивляться непредсказуемости результата запроса

Не умничай, а в тему вникни, nolock тут не пери делах! Читай выше!
16 июл 09, 09:18    [7421822]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
scaron
Не умничай, а в тему вникни, nolock тут не пери делах! Читай выше!


Гы... Как раз именно он и при делах, ибо не накладываются шаред локи. На ус бы мотали, а не в огрыз шли!!!
16 июл 09, 09:29    [7421862]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
scaron
Member

Откуда:
Сообщений: 8
pkarklin,

В огрыз я не иду, сами в своих постах за собой следите!!!
16 июл 09, 10:08    [7422055]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
scaron
pkarklin,

В огрыз я не иду, сами в своих постах за собой следите!!!


Модератор: Последнее предупреждение
16 июл 09, 10:09    [7422061]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
scaron
Member

Откуда:
Сообщений: 8
scaron,

отчетов тяжелых в течение дня куча собирается и если блокировки накладывать, то по таймауту вылетать начнут, read commited тут не поможет, как уже выше сказали, придется мириться с таким эффектом параллелизма...
16 июл 09, 10:12    [7422086]     Ответить | Цитировать Сообщить модератору
 Re: Удаленная и новая строчка после инструкции UPDATE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
scaron
эффектом параллелизма...


Или:

1. Подымать standby сервер для отчетов.
2. Переходить на 2005, где есть версионность.

Сообщение было отредактировано: 16 июл 09, 10:19
16 июл 09, 10:18    [7422112]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить