Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Mordred Member Откуда: Сообщений: 288 |
Есть таблица в которую постоянно пишутся\обновляются данные(~30 ГБ) А еще эту таблицу активно юзают селекты(часто очень не короткие) Хотелось бы спросить: кто-нибудь использовал для разведения процессов чтения записи Snapshot базы? Если да - то какие подводные камни? На что обратить внимание? P.S. Замечания типа смотрите логику,блокировки,структуру,индексы - пожалуйста не предлагать(все это делается,но в силу ряда причин,организационных и т.д. - этого недостаточно) Заранее спасибо. |
7 сен 12, 18:45 [13132206] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37155 |
А у вас проблема в блокировках, что ли? Кто кому мешает? |
7 сен 12, 18:47 [13132209] Ответить | Цитировать Сообщить модератору |
Mordred Member Откуда: Сообщений: 288 |
у нас там: - бд прайсов(обновляются постоянно и по-многу) - сайт(соответственно постоянно идут достаточно сложные проценки,зависящие от разных условий) - клиентские программы(>200 активных подключений), которые эту бд тоже юзают - куча "кривого" кода, который я просто физически не в состоянии за 1 момент исправить и, да возникают проблемы с блокировками(я их собственно вычисляю и по возможности решаю) Но вопрос был именно об опыте использовании snapshot в таком режиме! С уважением. |
7 сен 12, 18:55 [13132230] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
Вам не снепшот базы нужен, а RCSI |
7 сен 12, 19:03 [13132253] Ответить | Цитировать Сообщить модератору |
Mordred Member Откуда: Сообщений: 288 |
да похоже |
7 сен 12, 19:23 [13132301] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
Mordred Member Откуда: Сообщений: 288 |
сорри - ступил - Вопрос снят |
7 сен 12, 22:21 [13132850] Ответить | Цитировать Сообщить модератору |
Mordred Member Откуда: Сообщений: 288 |
Ой немного приподниму тему: кто-нибудь может дать ссылку на какую нибудь статью, касающуюся правил организации и принципов записи версий строк данных при использовании версионной схемы в ms sql(интересую именно транзакции - писатели) Просто необходимо спрогнозировать, что будет при переводе нашей БД на поддержку версионности. Спасибо. |
8 сен 12, 13:48 [13133782] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
Mordred Member Откуда: Сообщений: 288 |
спасибо, 2 ссылка то что хотел узнать |
8 сен 12, 16:20 [13134065] Ответить | Цитировать Сообщить модератору |
IDimas Member Откуда: Сообщений: 41 |
У меня достаточно активно используются Snapshot-ы на зеркале. Делаю это для того чтобы разгрузить Principal. Использую SQL 2008R2. В общем рекомендации для snapshot-ов такие: если у вас есть большие селекты и вы хотите разгрузить свою базу, уменьшить I\O на диске, то можно переложить эту работу на snapshot, естественно, если он лежит на других шпиндилях. В противном случае масло масляное. Конечно можно еще использовать для уменьшения блокировок, но в данном случае, лучше, как подсказали выше, версионность или хинты (не самое красивое решение и о нем всегда нужно помнить!). |
10 сен 12, 00:33 [13137742] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |