Почему находится READ_COMMITTED_SNAPSHOT не на по умолчанию?

Для тех, кто использует человечность 14.04 на 64 бита (после того, как чистая установка необходимо будет установить эти пакеты)

sudo apt-get install libgtk2.0-0:i386 libsm6:i386 libstdc++6:i386 xterm
18
задан Bill Paetzke 6 May 2010 в 20:20
поделиться

3 ответа

Оба. В основном совместимость.

Включение моментального снимка по умолчанию нарушит работу подавляющего большинства приложений, ожидающих старого, блокирующего поведения. Снимок делает интенсивным использованием tempdb для хранилища версий, и его влияние на производительность вполне измеримо.

16
ответ дан 30 November 2019 в 07:08
поделиться

Включение моментального снимка по умолчанию нарушит работу подавляющего большинства приложений

Мне неясно, сломает ли он «подавляющее большинство» приложений. Или, если это нарушит работу многих приложений таким образом, что их будет сложно идентифицировать и / или трудно будет обойти. В документации SQL Server указано, что READ COMMITTED и READ COMMITTED SNAPSHOT оба удовлетворяют определению ANSI READ COMMITTED . (Заявлено здесь: http://msdn.microsoft.com/en-us/library/ms189122.aspx ) Итак, пока ваш код не полагается ни на что, кроме буквального поведения, требуемого ANSI, теоретически, все будет в порядке.

Сложность состоит в том, что спецификация ANSI не фиксирует все, что люди обычно думают, такие как грязное чтение, нечеткое / неповторяющееся чтение и т. д. означает на практике. И есть аномалии (разрешенные определениями ANSI), которые могут возникать в READ COMMITTED SNAPSHOT , которые не могут возникать в READ COMMITTED . Для примера см. http://www.jimmcleod.net/blog/index.php/2009/08/27/the-potential-dangers-of-the-read-committed-snapshot-isolation-level/ .

См. Также http://social.msdn.microsoft.com/Forums/en-US/sqldatabaseengine/thread/d1b3d46e-2642-4bc7-a68a-0e4b8da1ca1b .

Для получения более подробной информации о различиях между уровнями изоляции начните с http://www.cs.umb.edu/cs734/CritiqueANSI_Iso.pdf ( READ_COMMITTED_SNAPSHOT не было, когда эта статья был написан, но другие уровни покрыты им).

есть аномалии (разрешенные определениями ANSI), которые могут возникать в READ COMMITTED SNAPSHOT , которые не могут возникать в READ COMMITTED . Для примера см. http://www.jimmcleod.net/blog/index.php/2009/08/27/the-potential-dangers-of-the-read-committed-snapshot-isolation-level/ .

См. Также http://social.msdn.microsoft.com/Forums/en-US/sqldatabaseengine/thread/d1b3d46e-2642-4bc7-a68a-0e4b8da1ca1b .

Для получения более подробной информации о различиях между уровнями изоляции начните с http://www.cs.umb.edu/cs734/CritiqueANSI_Iso.pdf ( READ_COMMITTED_SNAPSHOT еще не было, когда эта статья был написан, но другие уровни покрыты им).

есть аномалии (разрешенные определениями ANSI), которые могут возникать в READ COMMITTED SNAPSHOT , которые не могут возникать в READ COMMITTED . Для примера см. http://www.jimmcleod.net/blog/index.php/2009/08/27/the-potential-dangers-of-the-read-committed-snapshot-isolation-level/ .

См. Также http://social.msdn.microsoft.com/Forums/en-US/sqldatabaseengine/thread/d1b3d46e-2642-4bc7-a68a-0e4b8da1ca1b .

Для получения более подробной информации о различиях между уровнями изоляции начните с http://www.cs.umb.edu/cs734/CritiqueANSI_Iso.pdf ( READ_COMMITTED_SNAPSHOT не было, когда эта статья был написан, но другие уровни покрыты им).

19
ответ дан 30 November 2019 в 07:08
поделиться

Он изменяет стратегию блокировки по умолчанию по сравнению с тем, как Sybase / SQL Семейство серверов проработало вечно. Это сломало бы все мои приложения, все приложения, которые я знаю в моем магазине, и повредило бы много важных данных.

Прочтите статью в Википедии полностью : хотите ли вы код, стоящий за ваше банковское приложение, чтобы использовать эту модель изоляции?

В общем, поэтому снимок изоляция ставит некоторые проблемы поддержание нетривиальных ограничений на пользователя, который может не оценить либо потенциальные ловушки, либо возможные решения. Плюс к этому передача повышает производительность.

Это компромисс, как и большинство проектов баз данных. В моем случае я могу иметь дело с ожиданием / взаимоблокировкой блокировок (редко) в качестве платы за более простую и более «нестандартную» целостность данных. Мне еще не приходилось сталкиваться с проблемой или проблемой, в которой я рассматриваю изоляцию снимков как решение.

5
ответ дан 30 November 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: