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

Откуда: Азербайджан, г. Баку
Сообщений: 1382
Есть одна VIEW в которой до 30 UNION ALL
Select * fromTable01
union all
Select * fromTable02
union all
Select * fromTable03
union all
Select * fromTable04


В какой-то момент одна из таблиц может быть заблокировано (INSERT INTO)

Как сделать так, чтобы она просто не считывалась, т.е. сделать так, как быдто ее и нету во вью ?
11 май 12, 18:01    [12538360]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
readpast
11 май 12, 18:02    [12538366]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
не всегда работает этот readpast

В чем может быть дело?

запустил инсерт
Insert into mytable select * from myothertable where f1 = 0

Пишу
Select * from mytable with(readpast)

виснет
14 май 12, 11:10    [12548539]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
daw
Member

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

> В чем может быть дело?

а что там с блокировками в это время?

Posted via ActualForum NNTP Server 1.5

14 май 12, 11:25    [12548661]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
результат работы sp_lock
51 4 0 0 DB S GRANT
52 4 0 0 DB S GRANT
55 9 0 0 DB S GRANT
55 2 0 0 DB [ENCRYPTION_SCAN] S GRANT
55 9 1301579675 0 TAB X GRANT
57 9 1301579675 0 TAB IS WAIT
57 9 0 0 DB S GRANT
59 2 0 0 DB [ENCRYPTION_SCAN] S GRANT
59 9 0 0 DB S GRANT
59 1 1131151075 0 TAB IS GRANT
60 9 0 0 DB S GRANT
61 9 0 0 DB S GRANT
14 май 12, 11:42    [12548778]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Samir
55 9 1301579675 0 TAB X GRANT
Вот, собственно, ваша причина.
14 май 12, 11:43    [12548788]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
И как же быть с единственным и нерешенным вопросом темы?

Как сделать так, чтобы она просто не считывалась, т.е. сделать так, как быдто ее и нету во вью ?
14 май 12, 11:49    [12548838]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Samir
И как же быть с единственным и нерешенным вопросом темы?

Как сделать так, чтобы она просто не считывалась, т.е. сделать так, как быдто ее и нету во вью ?
Переходите на READ_COMMITTED_SNAPSHOT.
14 май 12, 11:53    [12548877]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
Гавриленко Сергей Алексеевич
Переходите на READ_COMMITTED_SNAPSHOT.
Плюсую, но предварительно убедитесь, что у вас TempDB лежит на отдельном дисковом массиве - в смысле, чтобы больше никаких файлов баз или логов там не было. Не то, чтобы это было критично, но не повредит.
14 май 12, 12:30    [12549138]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
Есть еще одна проблема, данные берутся из Linked Server
И READ_COMMITTED_SNAPSHOT не работает

а так же мне нужна скорость вставки
14 май 12, 12:53    [12549316]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Samir
Есть еще одна проблема, данные берутся из Linked Server
И READ_COMMITTED_SNAPSHOT не работает
Где это они берутся с linked server?
14 май 12, 12:58    [12549353]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Гавриленко Сергей Алексеевич
Samir
И как же быть с единственным и нерешенным вопросом темы?

Как сделать так, чтобы она просто не считывалась, т.е. сделать так, как быдто ее и нету во вью ?
Переходите на READ_COMMITTED_SNAPSHOT.


Извините, не понял. Как согласуется
Samir
Как сделать так, чтобы она просто не считывалась
с READ_COMMITTED_SNAPSHOT?
14 май 12, 13:02    [12549408]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
На самом деле используется

insert into mytable
select * from [otherserver].mydatabase.dbo.mytable
14 май 12, 13:33    [12549728]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Jovanny
Извините, не понял. Как согласуется
Samir
Как сделать так, чтобы она просто не считывалась
с READ_COMMITTED_SNAPSHOT?
Это уже пусть автор решает, как оно сочетается с его задачей.

Сообщение было отредактировано: 14 май 12, 14:02
14 май 12, 14:02    [12550037]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
как я понял, решения нет и придется идти на вариант

alter view с удалением этой таблицы
14 май 12, 14:20    [12550169]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Samir
как я понял, решения нет и придется идти на вариант

alter view с удалением этой таблицы

почему, у вас блокируется таблица, т.к вы делаете запрос
Insert into mytable select * from myothertable where f1 = 0

сделайте его так, чтобы он не блокировал таблицу, тогда readpast будет нормально работать
14 май 12, 14:29    [12550265]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
если таблица не блокируется - вставка данных идет медленно
обычно количество записей от 5 до 15 миллионов
и во время вставки данных эта таблица бывает пустой
14 май 12, 15:10    [12550651]     Ответить | Цитировать Сообщить модератору
 Re: выборка данных с пропуском заблокированных данных  [new]
НЕКТО_777
Guest
Samir,

У вас проходит эскалация блокировок до табличного уровня. В разных версиях mssql server проблема эскалации решается по разному. Самое простое - устраните эскалацию хотя бы наложением интент блокировок обновления на таблицы вовлечённые в ваши процессы, в отдельно открытой транзакции. И после вашего инсерта, закоммитте транзакцию
14 май 12, 15:40    [12550921]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить