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

Откуда:
Сообщений: 288
Есть таблица в которую постоянно пишутся\обновляются данные(~30 ГБ)

А еще эту таблицу активно юзают селекты(часто очень не короткие)

Хотелось бы спросить: кто-нибудь использовал для разведения процессов чтения записи Snapshot базы?
Если да - то какие подводные камни? На что обратить внимание?

P.S. Замечания типа смотрите логику,блокировки,структуру,индексы - пожалуйста не предлагать(все это делается,но в силу ряда причин,организационных и т.д. - этого недостаточно)

Заранее спасибо.
7 сен 12, 18:45    [13132206]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по Create DB AS SNAPSHOT  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37155
А у вас проблема в блокировках, что ли? Кто кому мешает?
7 сен 12, 18:47    [13132209]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по Create DB AS SNAPSHOT  [new]
Mordred
Member

Откуда:
Сообщений: 288
у нас там:
- бд прайсов(обновляются постоянно и по-многу)
- сайт(соответственно постоянно идут достаточно сложные проценки,зависящие от разных условий)
- клиентские программы(>200 активных подключений), которые эту бд тоже юзают
- куча "кривого" кода, который я просто физически не в состоянии за 1 момент исправить

и, да возникают проблемы с блокировками(я их собственно вычисляю и по возможности решаю)

Но вопрос был именно об опыте использовании snapshot в таком режиме!

С уважением.
7 сен 12, 18:55    [13132230]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по Create DB AS SNAPSHOT  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
Вам не снепшот базы нужен, а RCSI
7 сен 12, 19:03    [13132253]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по Create DB AS SNAPSHOT  [new]
Mordred
Member

Откуда:
Сообщений: 288
да похоже
7 сен 12, 19:23    [13132301]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по Create DB AS SNAPSHOT  [new]
Mordred
Member

Откуда:
Сообщений: 288
Почитал про версионность.
Тема вообщем понятна, но остались вопросы, и основной из них:

положим есть БД1 куда активно пишутся и из которой активно читаются данные.
делаем ей ALTER DATABASE Database SET ALLOW_SNAPSHOT_ISOLATION ON
выставляем ALTER DATABASE Database SET READ_COMMITTED_SNAPSHOT ON для читающих транзакций.
пока все понятно, версионность включена.

а вот теперь вопрос:
положим чтение из этой бд идет в рамках процедуры, принадлежащей другой БД(БД2),т.е.
-- что то делаем в БД2

-- теперь хотим читать что-то с БД1

КОГДА НАДО ВЫСТАВЛЯТЬ ОПЦИЮ SET TRANSACTION ISOLATION LEVEL SNAPSHOT??

непосредственно перед чтением из БД1?
а потом сразу отключать?

чего то я запутался(на простых запросах то все понятно...)
7 сен 12, 22:06    [13132809]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по Create DB AS SNAPSHOT  [new]
Mordred
Member

Откуда:
Сообщений: 288
сорри - ступил - Вопрос снят
7 сен 12, 22:21    [13132850]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по Create DB AS SNAPSHOT  [new]
Mordred
Member

Откуда:
Сообщений: 288
Ой немного приподниму тему:

кто-нибудь может дать ссылку на какую нибудь статью, касающуюся правил организации и принципов записи версий строк данных при использовании версионной схемы в ms sql(интересую именно транзакции - писатели)

Просто необходимо спрогнозировать, что будет при переводе нашей БД на поддержку версионности.

Спасибо.
8 сен 12, 13:48    [13133782]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по Create DB AS SNAPSHOT  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
http://msdn.microsoft.com/en-us/library/ms188277%28SQL.105%29.aspx
http://msdn.microsoft.com/en-us/library/ms175492%28SQL.105%29.aspx
8 сен 12, 15:11    [13133965]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по Create DB AS SNAPSHOT  [new]
Mordred
Member

Откуда:
Сообщений: 288
спасибо, 2 ссылка то что хотел узнать
8 сен 12, 16:20    [13134065]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по Create DB AS SNAPSHOT  [new]
IDimas
Member

Откуда:
Сообщений: 41
У меня достаточно активно используются Snapshot-ы на зеркале. Делаю это для того чтобы разгрузить Principal.
Использую SQL 2008R2.
В общем рекомендации для snapshot-ов такие: если у вас есть большие селекты и вы хотите разгрузить свою базу, уменьшить I\O на диске, то можно переложить эту работу на snapshot, естественно, если он лежит на других шпиндилях. В противном случае масло масляное. Конечно можно еще использовать для уменьшения блокировок, но в данном случае, лучше, как подсказали выше, версионность или хинты (не самое красивое решение и о нем всегда нужно помнить!).
10 сен 12, 00:33    [13137742]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить