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

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2676
доброе время суток, All!

Есть проблема.
Сервер, много ядер, процедура без параметров, 3 секунды отрабатывает. Возвращает всем спрашивающим (ну почти) одно и то же.
Её вызывают 10 тыщ раз в час.
Она читает много страниц из кэша (5ТБ в час). Будем считать, что попадание в кэш 100%.
Итого, 30к секунд в час лишняя очередь запросов.

Всем возвращает одно и то же, но каждый раз работает по набору данных в который влетает куча записей в секунду.

...вот, возникла мысль, закэшировать это чудо.
Чтобы заново пересчитывало это всё не каждый вызов, а раз в 10 секунд. (к примеру)

но мои попытки создать справочную спец. табличку, которую мы читаем with(rowlock) внутри транзакции- не привели к успеху.

Ощущение, что конкурирующие потоки в трензакцию влетают, и читают почищенный, но еще не заполненный заново кэш.


Вот.

Вопрос, как бы организовать блок выполнения, чтобы первый вошедший в него выполнялся (С ГРЯЗНЫМ ЧТЕНИЕМ), а остальные - жщдали?

вот как-то так, спасибо заранее.
29 сен 17, 00:47    [20830579]     Ответить | Цитировать Сообщить модератору
 Re: нужен аналог critical section  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2676
...и да, чтение ВНУТРИ транзакции должно оставаться грязным для основных запросов.
Но хотелось бы её каким-то механизмом окружить а-ля critical section...
Чтобы конкуренты не вошли, и не начали свои телодвижения, пока не закончился мастер-процесс.
29 сен 17, 00:59    [20830588]     Ответить | Цитировать Сообщить модератору
 Re: нужен аналог critical section  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2676
Makar4ik
...и да, чтение ВНУТРИ транзакции должно оставаться грязным для основных запросов.
Но хотелось бы её каким-то механизмом окружить а-ля critical section...
Чтобы конкуренты не вошли, и не начали свои телодвижения, пока не закончился мастер-процесс.
ну да, да, я не могу repeatable read выставить для всей процедуры.
Она тогда умрёт.
Только грязное чтение.
29 сен 17, 01:09    [20830595]     Ответить | Цитировать Сообщить модератору
 Re: нужен аналог critical section  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2676
вопрос:
может ли помочь такое????

begin tran

update table_lock (with updlock) set lock=lock

---а тут что-то делаем

commit
29 сен 17, 01:14    [20830598]     Ответить | Цитировать Сообщить модератору
 Re: нужен аналог critical section  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2676
да, спасибо, пока задавал вопрос, похоже, придумал ответ.
29 сен 17, 01:19    [20830604]     Ответить | Цитировать Сообщить модератору
 Re: нужен аналог critical section  [new]
aleks222
Guest
Makar4ik
вопрос:
может ли помочь такое????

begin tran

update table_lock (with updlock) set lock=lock

---а тут что-то делаем

commit


sp_getapplock

И не надо выдумывать лисапед.
29 сен 17, 06:07    [20830653]     Ответить | Цитировать Сообщить модератору
 Re: нужен аналог critical section  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2676
aleks222
Makar4ik
вопрос:
может ли помочь такое????

begin tran

update table_lock (with updlock) set lock=lock

---а тут что-то делаем

commit


sp_getapplock

И не надо выдумывать лисапед.
мда...
ладно, Алекс, гость...
Спасибо, что там...
Сам выдумаю семафор.
30 сен 17, 00:08    [20832893]     Ответить | Цитировать Сообщить модератору
 Re: нужен аналог critical section  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2676
...вернее, не сам.
уже подсказали работающее решение.

Спасибо,вопрос закрыт.
30 сен 17, 01:57    [20832985]     Ответить | Цитировать Сообщить модератору
 Re: нужен аналог critical section  [new]
aleks222
Guest
Makar4ik
...вернее, не сам.
уже подсказали работающее решение.

Спасибо,вопрос закрыт.


Изобретатели непромокаемого пороха?

Дык, поделились бы с общественностью - хоть посмеяться будет над чем.
30 сен 17, 05:54    [20833017]     Ответить | Цитировать Сообщить модератору
 Re: нужен аналог critical section  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2676
aleks222
Makar4ik
...вернее, не сам.
уже подсказали работающее решение.

Спасибо,вопрос закрыт.


Изобретатели непромокаемого пороха?

Дык, поделились бы с общественностью - хоть посмеяться будет над чем.
дык, зарегились бы, посмеяться будет над чем...
30 сен 17, 06:00    [20833018]     Ответить | Цитировать Сообщить модератору
 Re: нужен аналог critical section  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3462
Makar4ik
aleks222
пропущено...


Изобретатели непромокаемого пороха?

Дык, поделились бы с общественностью - хоть посмеяться будет над чем.
дык, зарегились бы, посмеяться будет над чем...


И какое решение подсказали?
30 сен 17, 10:06    [20833102]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить