Size: a a a

SqlCom.ru - Стиль жизни SQL

2021 January 25

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Oleg T
А там не RSCI 😊 Там чистый SNAPSHOT. Читаем закоммиченные данные, так что пофиг ваще что там за изоляция на первичке. Я так думаю.
А вот тут говорят RCSI
https://www.sqlskills.com/blogs/paul/sqlskills-sql101-readable-secondary-performance-problems/

As with most things in life, you don’t get anything for free. Readable secondaries are really useful, but there is a performance trade off you need to be aware of. All queries that are executed against a readable secondary are automatically run using read-committed snapshot isolation. This means they do not require share locks and so will not block any database changes being replayed from the primary replica (i.e. the constant redo of log records on the secondary replica that have been sent from the primary replica).
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Бывают в жизни огорчения....
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Anyway, читаем закоммиченное. Есть ли разница в каком уровне изоляции этот коммит был сделан?
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Oleg T
Бывают в жизни огорчения....
Дяденька Пол Рендел как-то больше доверия вызывает, чем индус который на msdn писал
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Дяденька Пол Рендел как-то больше доверия вызывает, чем индус который на msdn писал
Сие бесспорно
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Oleg T
Anyway, читаем закоммиченное. Есть ли разница в каком уровне изоляции этот коммит был сделан?
Да, вопрос простой: что будет если включить на primary rcsi  и как это заафектит или нет secondary
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Исходя из текущих моих соображений - это вообще не нужно делать
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Да, вопрос простой: что будет если включить на primary rcsi  и как это заафектит или нет secondary
Вот я думаю как раз, что нет. По причинам, обозначенным выше. Не могу что-то придумать как это может аффектить.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Исходя из текущих моих соображений - это вообще не нужно делать
поясните пожалуйста
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Дяденька Пол Рендел как-то больше доверия вызывает, чем индус который на msdn писал
Да, я вчитался и немного расстроился. вот этот абзац, по моему скромному мнению - факин буллшит:
Snapshot isolation also means that SQL Server will use row versioning on the primary node. You may not be able to use optimistic isolation levels programmatically when they are not enabled; nevertheless, SQL Server will use row versioning internally. The databases on the primary and secondary nodes are the same, and it is impossible to use row versioning only on the secondary nodes.
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Oleg T
поясните пожалуйста
Если нет надобности в использовании RCSI  на primary, то не важно включил ты или нет, на secondary пользователи будут читать в RCSI.
И такие пользовательские чтения не несут никакого эффекта для redo\undo при синхронизации реплик.
Кроме как блокировки стабильности схемы, но их ни как не избежать.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Если нет надобности в использовании RCSI  на primary, то не важно включил ты или нет, на secondary пользователи будут читать в RCSI.
И такие пользовательские чтения не несут никакого эффекта для redo\undo при синхронизации реплик.
Кроме как блокировки стабильности схемы, но их ни как не избежать.
ПОправка - если пользователям пофиг, что они могут прочитать данные с задержкой в минуту или даже больше.
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Oleg T
ПОправка - если пользователям пофиг, что они могут прочитать данные с задержкой в минуту или даже больше.
Именно так, им пофигу
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
а, ну тада можно их смело редиректить или ваще сделать LinkedServer на реплику и вьюху поверх него.
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Oleg T
Да, я вчитался и немного расстроился. вот этот абзац, по моему скромному мнению - факин буллшит:
Snapshot isolation also means that SQL Server will use row versioning on the primary node. You may not be able to use optimistic isolation levels programmatically when they are not enabled; nevertheless, SQL Server will use row versioning internally. The databases on the primary and secondary nodes are the same, and it is impossible to use row versioning only on the secondary nodes.
Вот тут вообще не понял как это должно работать. Ведь 2 раза нельзя выбрать уровень изоляции.
Или что конкретно тут имеется ввиду?
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
2 раза будем хранить по 14 байт что-ли?
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Вот тут вообще не понял как это должно работать. Ведь 2 раза нельзя выбрать уровень изоляции.
Или что конкретно тут имеется ввиду?
Он не врубается как раз, что на вторичке мы читаем закоммиченное и нам пофиг что творится на первичке в этот момент между идущими транзакциями. что вторичке может понадобится - это удалённые данные, потому транзакции на вторичке тормозят ghost cleanup на primary
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
2 раза будем хранить по 14 байт что-ли?
Просто по этому абзацу понятно, что чувак не видит разницы между ghost записями и версиями. А значит пофиг что он там дальше утверждает.
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Oleg T
Он не врубается как раз, что на вторичке мы читаем закоммиченное и нам пофиг что творится на первичке в этот момент между идущими транзакциями. что вторичке может понадобится - это удалённые данные, потому транзакции на вторичке тормозят ghost cleanup на primary
Это из доки официальной?
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
из здравого смысла
источник