|
|
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
kdvдля меня до сих пор является загадкой, как воспроизводимое (!) чтение может порождать какие-то фантомы. Претензии к RR в MSSQL в общем-то те же, что и к Serializable в Oracle. А называть ли их фантомами или ещё какими глюками - дело десятое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 16:17 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
On 26.04.2011 16:23, kdv wrote: > не понимаю, откуда такая агрессия и гиперболы. > Shapshot это фактически Repeatable Read без фантомов. Да нет, это абсолютно разные вещи. Агрессии нет. Есть непонимание, зачем на клетке с верблюдом писать "Лев". Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 16:19 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
pkarklinпри следующих чтениях могут как раз появляться НОВЫЕ записи, которых не было при предыдущих чтениях. Т.е. имеет место неповторяемое чтение. Прелестно... Впрочем, как я уже сказал, свежий стандарт уже не описывает изоляцию через глюки. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 16:20 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
On 26.04.2011 17:04, kdv wrote: > Фантом по определению это характеристика ReadCommitted, то есть когда очередным > перечитыванием мы видим данные, которые успели измениться и быть committed с > момента предыдущего чтения. Феномен фантома может наблюдаться на ReadCommitted. Но придуман он для описания уровней Repeatable Read и Serializable. > Насколько я понимаю, когда-то подразумевалось,... Ты понимаешь неправильно. > И исходя из определения того же стандарта, если RR допускает фантомы, то это уже > не RR, а RC. Ты не понимаешь, что такое фантом в стандарте. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 16:22 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
On 26.04.2011 17:11, pkarklin wrote: > RR не допускает МОДИФИКАЦИИ прочитанных данных, К модификации данных RR не имеет почти никакого отношения. RR описывается феноменами, возникающими при ЧТЕНИИ данных. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 16:23 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
beginner_dba, Перечитайте в документации, что делают две указанные опции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 16:28 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
Yo.!КонсистентностьКстати такой же вопрос, есть ли возможность в MS SQL/Oracle/Firebird/PostgreSQL "обеспечить непротиворечивое чтения для ВСЕГО ОТЧЕТА при условии что данные выбираются более чем одной транзакцией чтения."? oracle docsRead-Only Transactions By default, the consistency model for Oracle guarantees statement-level read consistency, but does not guarantee transaction-level read consistency (repeatable reads). If you want transaction-level read consistency, and if your transaction does not require updates, then you can specify a read-only transaction. After indicating that your transaction is read-only, you can execute as many queries as you like against any database table, knowing that the results of each query in the read-only transaction are consistent with respect to a single point in time. http://download.oracle.com/docs/cd/F49540_01/DOC/server.815/a68003/01_08pro.htm#2194 Насколько я понял здесь идет речь о statement-level read consistency и transaction-level read consistency. А интересует существуют ли в каких-либо СУБД механизмы консистентности межтранзакционного уровня. Слышал вроде есть привязки транзакций друг к другу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 16:33 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
КонсистентностьНасколько я понял здесь идет речь о statement-level read consistency и transaction-level read consistency. А интересует существуют ли в каких-либо СУБД механизмы консистентности межтранзакционного уровня. Слышал вроде есть привязки транзакций друг к другу? ах транзакций. нет, такое только в оракле можно. взять timestamp (или SCN) и во всех транзациях через flashback query на этот timestamp (SCN) получать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 16:42 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
pkarklinbeginner_dba, Перечитайте в документации, что делают две указанные опции. ALLOW_SNAPSHOT_ISOLATION { ON | OFF } ON Enables Snapshot option at the database level. When it is enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation . Once this option is enabled, transactions can specify the SNAPSHOT transaction isolation level. When a transaction runs at the SNAPSHOT isolation level, all statements see a snapshot of data as it exists at the start of the transaction. If a transaction running at the SNAPSHOT isolation level accesses data in multiple databases, either ALLOW_SNAPSHOT_ISOLATION must be set to ON in all the databases, or each statement in the transaction must use locking hints on any reference in a FROM clause to a table in a database where ALLOW_SNAPSHOT_ISOLATION is OFF. Это просто включает режим версионности по умолчанию? То есть если явно не указать TIL у сессии, то берем версионность? READ_COMMITTED_SNAPSHOT { ON | OFF } ON Enables Read-Committed Snapshot option at the database level. When it is enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation . Once this option is enabled, the transactions specifying the read committed isolation level use row versioning instead of locking. When a transaction runs at the read committed isolation level, all statements see a snapshot of data as it exists at the start of the statement. А это нахрапом, невзирая на личности, верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 16:42 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
beginner_dba, Мдя... Опция READ_COMMITTED_SNAPSHOT вводит версионный режим для дефолтного RC, когда читатели не мешают писателям и наоброт. Данные режим обеспечивает statement-level read consistency. Опция ALLOW_SNAPSHOT_ISOLATION позволяет использовать (для этого его надо задать явно) TIL SNAPSHOT, который обесечивает transaction-level read consistency. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 16:47 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
beginner_dbapkarklinbeginner_dba, И, потом, вторая инструкция - это полная чушь. Нет такого: Код: plaintext есть Код: plaintext и Код: plaintext т.е. опции, которые позволяют: 1. Использовать RC с поддержкой версионности; 2. Использовать новый TIL SNAPSHOT. Эти инструкции ни есть установка TIL для сессии, который по дефолту RC и может быть изменен по желанию разработчика. Дело в том, что например 1С 8.1 при старте каждой сесии на сервер посылает вот такое Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Делает именно то что вы написали Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 16:53 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
pkarklinbeginner_dba, Мдя... Опция READ_COMMITTED_SNAPSHOT вводит версионный режим для дефолтного RC, когда читатели не мешают писателям и наоброт. Данные режим обеспечивает statement-level read consistency. Опция ALLOW_SNAPSHOT_ISOLATION позволяет использовать (для этого его надо задать явно) TIL SNAPSHOT, который обесечивает transaction-level read consistency. Т.о. при включенных обоих опциях, одна которая позволяет в принципе использовать версионность для всей транзакции (с обязательным явным указанием TIL Snapshot), а другая использовать версионность для инструкции "по умолчанию" не отработают версионным механизмом, если при старте сессии будет инструкция read commited. Потому что дефолта нет, так как явно указан read commited и также не указан явно snapshot.Правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 17:11 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
beginner_dbaТ.о. при включенных обоих опциях, одна которая позволяет в принципе использовать версионность для всей транзакции (с обязательным явным указанием TIL Snapshot), а другая использовать версионность для инструкции "по умолчанию" не отработают версионным механизмом, если при старте сессии будет инструкция read commited. Потому что дефолта нет, так как явно указан read commited и также не указан явно snapshot.Правильно? Вот это вот я для кого написАл?! pkarklinОпция READ_COMMITTED_SNAPSHOT вводит версионный режим для дефолтного RC, когда читатели не мешают писателям и наоброт. "если при старте сессии будет инструкция read commited" = "дефолтный RC". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 17:16 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 18:00 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
pkarklinScareCrowШтуки три я назову сходу. я только сабейз Асе. MS SQL без включенной версионности.[/quot] IBM Informix [Dynamic Server] что ещё? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2011, 22:50 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
db2,informix (вроде кажется появилась поддержка last comitted в какой-то из последних версий но деталей не знаю),sybase ase, sabase sa(с выключенной версионностью). sybase sa, mssql, informix умеют last comitted - что не совсем версионность, т.е. есть только одна версия строки - перед ее модификацией. Если ошибаюсь - поправьте. Еще краем уха слышал про поддержку lastconmitted а дб2 но не уверен, так как не слежу, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2011, 21:11 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
Ggg_old...mssql... умеют last comitted - что не совсем версионность, т.е. есть только одна версия строки - перед ее модификацией. Если ошибаюсь - поправьте. Поправляю... When either the READ_COMMITTED_SNAPSHOT or ALLOW_SNAPSHOT_ISOLATION database options are ON, logical copies (versions) are maintained for all data modifications performed in the database. Every time a row is modified by a specific transaction, the instance of the Database Engine stores a version of the previously committed image of the row in tempdb. Each version is marked with the transaction sequence number of the transaction that made the change. The versions of modified rows are chained using a link list. The newest row value is always stored in the current database and chained to the versioned rows stored in tempdb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2011, 21:30 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
lastconmitted это тоже что Read Commited только с одной последней версией строки или что-то другое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2011, 22:30 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
насчет микрософта меня поправили а насчет сайбейс са посыпаю голову пеплом версий - строк много. Откуда в голову попал термин last comitted уже не помню, кажется из информикаса, но не уверен. прошу прощения за дезинформацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2011, 23:03 |
|
||
|
О консистентности отчетов на OLTP-сервере
|
|||
|---|---|---|---|
|
#18+
Ggg_oldнасчет микрософта меня поправили а насчет сайбейс са посыпаю голову пеплом версий - строк много. Откуда в голову попал термин last comitted уже не помню, кажется из информикаса, но не уверен. прошу прощения за дезинформацию. Да, в блокировочнике Informix с версии 11.10 появился именно этот режим - LAST COMITTED. DIRTY READ = ANSI UNCOMMITTED READ - позволяет читателям читать всё подряд. при этом можно было читать данные неподтверждённых транзакций - именно "новую" версию данных :(. COMMITTED READ = ANSI COMMITTED READ - читаем только подтверждённые, при этом если натыкаемся на изменённые не подтверждённые - вываливаемся с ошибкой - либо ждём, пока отпустит :). COMMITTED READ LAST COMMITTED (появился с версии 11.10 года 4 назад) - позволяет читателям читать всё подряд. при этом для данных, изменённых транзакциями читает "старую версию" данных - как в версионнике для СOMMITTED READ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2011, 23:44 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=37234165&tid=1552696]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 392ms |

| 0 / 0 |
