Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
>если не существенно то такая команда и не нужна бы была - работало бы всегда в версионном режиме ну ты что, этим шагом МС бы признала, что они ошибались и версионный механизм круче. тех 80% бы удар хватил от такого :) ждем тесты, уже хоть какие-нибудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 16:19 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
SergSuper AlexCzech SergSuperЗачем тогда команда перевод базы в версионный режим? Ввели просто новый уровень изоляции и всё Затем, что чтобы вы МОГЛИ использовать уровень изоляции snapshot, нужно, как нетрудно догадаться, собирать предыдущие версии измененных строк в виде цепочек в tempdb. Однако этот сбор протухших версий НЕ ОБЯЗЫВАЕТ вас к ним обращаться Т.е. перевод в версионный режим просто требует существенно больших ресурсов? (если не существенно то такая команда и не нужна бы была - работало бы всегда в версионном режиме) Видимо, да. Правда слово "существенно" можно толковать настолько разнообразно, что не вижу смысла меряться настолько качественными категориями, особенно в отсутствие релиза (и даже Бета3 до меня пока не доехала :)) На бете1 примитивные апдейты отрабатывали с включенным snapshot на 30-40% медленнее (вместо ~70ms получалось ~110). На бете2 не тестировал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 16:23 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
Na beta 3 u menja poluchalosj insert/update gde to na 25% meglennee pri Snapshot, no pri etom obshaja propusknaja sposobnostj selectov na porjadok vishe- vse taki ne blokirujutsa dannie. Stavitj rezim raboti bazi v Snapshot i pri etom rabotatj s nej kak s blokirovochnikom voobshe glupo - vse medlennee da eshe i blokiruetsa. A vozmoznostj vkluchitj/vikluchitj podderzku vessionnosti ne ploho - estj krug zadach chistih OLTP i tratij resursi na podderzku versionnosti v nih smisla netu, hotja takih chistih OLTP i ne tak mnogo. V obshem versionnostj eto ma moj vzgljad ochenj bolshij plus dlja MS SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 16:50 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
Есть такая песенка: "Нам не дано с тобой понять, чему так радуются дети..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 17:43 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
AlexCzech Неправильно понимаете. Транзакции с уровнем изоляции не SNAPSHOT будут работать так же, как и раньше - т.е. блокировать данные чтением и т.д. и т.п. ... Затем, что чтобы вы МОГЛИ использовать уровень изоляции snapshot это вы о чем вообще ? При включенной версионности, уровень Read committed начинает работать как версионный, т.е. если транзакция напоролась на заблокированную запись, то она считает предыдущую версию этой записи. То-же касается Repeatable read. Со snapshot'ом все понятно, а Serializable и в самом деле остался чисто блокировочным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 18:10 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
StalkerS AlexCzech Неправильно понимаете. Транзакции с уровнем изоляции не SNAPSHOT будут работать так же, как и раньше - т.е. блокировать данные чтением и т.д. и т.п. ... Затем, что чтобы вы МОГЛИ использовать уровень изоляции snapshot это вы о чем вообще ? При включенной версионности, уровень Read committed начинает работать как версионный, т.е. если транзакция напоролась на заблокированную запись, то она считает предыдущую версию этой записи. То-же касается Repeatable read. Со snapshot'ом все понятно, а Serializable и в самом деле остался чисто блокировочным. Не совсем так. Впрочем, мы это уже с вами обсуждали 1 раз, если вы в первый раз не поверили - не поверите и во второй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 18:17 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
Впрочем, вкратце напомню - то поведение, о котором вы говорите, появляется, если включить на базе еще один параметр (READ COMMITTED SNAPSHOT по-моему называется), который тоже по умолчанию OFF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 18:19 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
AlexCzech Не совсем так. Впрочем, мы это уже с вами обсуждали 1 раз, если вы в первый раз не поверили - не поверите и во второй да не спорил я с вами, просто не понял, что вы имели ввиду. Мало-ли, какие-там переключатели есть, например с хинтом READCOMMITTEDLOCK транзакция попрет в блокировочном режиме, даже с включенным Read Committed with snapshots ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 19:15 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
А всё равно чего-то мне непонятно. Состояние на начало транзакции надо хранить в любом режиме - она же может быть ролбэкнута. А уже версии на определённый момент надо хранить при появлении транзакций с уровнем изоляции snapshot. Т.е. мне не понятно зачем собирать предыдущие версии измененных строк в виде цепочек , ведь при возникновении snapshot-транзакции мы должны читать данные с начала транзакций, а эти данные по-любому всегда где-то хранятся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 20:02 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
>>а эти данные по-любому всегда где-то хранятся в смысле ? для роллбэка все лежит в логе, версии данных - в tempdb. чего тут непонятного ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 20:22 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
to SergSuper no vedj tranzacij odnovremenno mozet bitj mnogo , esli u vas dolgaja tranzakjija v rezime Snapshot, ej nuzno sobiratj dannie po etim cepochkam izmenenij na otredelennij moment vremeni. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 20:23 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
to StalkerS prosto v loge toze estj versii dannih neobhodimih dlja rollbacka, ja tak ponimaju eto SergSuper i imel vvidu. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 20:27 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
StalkerS>>а эти данные по-любому всегда где-то хранятся в смысле ? для роллбэка все лежит в логе, версии данных - в tempdb. чего тут непонятного ? версии данных для snapshot-транзакций. Если таких транзакций нет - то зачем там чего-то хранить? ppp no vedj tranzacij odnovremenno mozet bitj mnogo , esli u vas dolgaja tranzakjija v rezime Snapshot, ej nuzno sobiratj dannie po etim cepochkam izmenenij na otredelennij moment vremeni. esli u vas dolgaja tranzakjija v rezime Snapshot - а если её нет? Т.е. данные надо собирать с момента появления snapshot-транзакций, а до этого работаем как обычный блокировочный режим. И зачем тогда команды переводов из одного режима в другой? В принципе я понимаю что где-то не прав, но не могу понять где. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 20:35 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
в лог отправляется не вся запись, а только измененная часть, и не просто так отправляется, а в том виде, каком удобно серверу, может в виде старого значения, а может отправиться и в виде оператора sql. Из лога поэтому версию не считать, тем более лог предназначен и оптимизирован для последовательной записи, и ходить вперед-назад по нему в поисках версий неоптимально. Зато из tempdb версия считается очень бысто, т.к. там собственно вся запись и лежит >>Если таких транзакций нет - то зачем там чего-то хранить? дык если включена версионность, такая транзакция может в любой момент появиться. Что в этом странного ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 20:41 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
2SergSuper. Неактуальные протухшие версии данных постепенно удаляются - гарантированно хранятся только все состояния всех записей начиная с момента T1, где T1 - момент начала самой застарелой snapshot-транзакции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 02:06 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
Nodo bi posmotretj Log Explorerom chto pishetsa v log pri vkluchennom rezime snapshot. Sejchas pri operacii update v log kladetsa primerno sledujushee - sam operator update , a tak ze staroe znachenie izmenjaemih dannih dlja rollbacka. Pri vkluchennom Snapshot starie versii dannie pishutsa v tempdb, tak chto vrode kak hranitj is v loge dlja otkata vrode kak ne objazatelno(kak v oracle, rollback segmenti ispolzyjut dlja versionnosti i rollbacka tranzakzij). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 03:52 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
StalkerSв лог отправляется не вся запись, а только измененная часть, и не просто так отправляется, а в том виде, каком удобно серверу, может в виде старого значения, а может отправиться и в виде оператора sql. Из лога поэтому версию не считать, тем более лог предназначен и оптимизирован для последовательной записи, и ходить вперед-назад по нему в поисках версий неоптимально. Зато из tempdb версия считается очень бысто, т.к. там собственно вся запись и лежит Ну почему же из лога не считать? При откате то считывается StalkerS >>Если таких транзакций нет - то зачем там чего-то хранить? дык если включена версионность, такая транзакция может в любой момент появиться. Что в этом странного ? Странно зачем нужна команда перевода в версионный режим. AlexCzech 2SergSuper. Неактуальные протухшие версии данных постепенно удаляются - гарантированно хранятся только все состояния всех записей начиная с момента T1, где T1 - момент начала самой застарелой snapshot-транзакции Ну собственно я это же и говорил. Версионный режим мог бы сам включаться при появлении snapshot-транзакций - если их нет, то ненужно никаких версий(либо уже, либо еще) pppNodo bi posmotretj Log Explorerom chto pishetsa v log pri vkluchennom rezime snapshot. Sejchas pri operacii update v log kladetsa primerno sledujushee - sam operator update , a tak ze staroe znachenie izmenjaemih dannih dlja rollbacka. Pri vkluchennom Snapshot starie versii dannie pishutsa v tempdb, tak chto vrode kak hranitj is v loge dlja otkata vrode kak ne objazatelno(kak v oracle, rollback segmenti ispolzyjut dlja versionnosti i rollbacka tranzakzij). Пожалуй это всё и объясняет. Т.е. для единообразия работы данные для отката пишутся не только в лог, но и в tempdb, т.е. идёт дублирование данных. Вообще-то выглядит как атовизм и скорее всего в следующих версиях тогда команда перевода в версионный режим будет убрана ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 09:50 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
SergSuper AlexCzech 2SergSuper. Неактуальные протухшие версии данных постепенно удаляются - гарантированно хранятся только все состояния всех записей начиная с момента T1, где T1 - момент начала самой застарелой snapshot-транзакции Ну собственно я это же и говорил. Версионный режим мог бы сам включаться при появлении snapshot-транзакций - если их нет, то ненужно никаких версий(либо уже, либо еще) А мы же не знаем, что там реально происходит... может, это дело именно так и работает. А может, тут есть какая-то засада, которой мы пока не осознали. Лично я убедился, что когда начинаю считать кого-то дураками, не сделавшими очевидную легкореализуемую вещь, то дураком-то в итоге оказываюсь я :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 09:58 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
>>Ну почему же из лога не считать? При откате то считывается потому-что в логе лежит лишь измененная часть строки, а не вся версия. Конечно, можно было-бы и всю строку в лог пихать, но он для этого не предназначен, я писал почему. >>Ну собственно я это же и говорил. Версионный режим мог бы сам включаться при появлении snapshot-транзакций как это вы себе представляете ? транзакции работают, не создают версий, потом появляется snapshot, и все сразу начинают делать версии ? а как быть с теми, кто уже в процессе ? версии задним числом наплодить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 10:28 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
2 AlexCzech А я в своё время серьёзно воспринимал статьи от MS что блокировка на уровне строки это неправильно и она никому не нужна, а потом тоже про версионность (правда уже в более мягких формах) :) StalkerS>>Ну почему же из лога не считать? При откате то считывается потому-что в логе лежит лишь измененная часть строки, а не вся версия. Конечно, можно было-бы и всю строку в лог пихать, но он для этого не предназначен, я писал почему. Тем не менее информация для восстановления состояния на начало транзакции там есть, не так ли? Я не вижу принципиальной разницы что восстанавливать эту информацию при откате, что читать snapshot-транзакцей. К тому же как-то Оракл восстанавливает из лога StalkerS >>Ну собственно я это же и говорил. Версионный режим мог бы сам включаться при появлении snapshot-транзакций как это вы себе представляете ? транзакции работают, не создают версий, потом появляется snapshot, и все сразу начинают делать версии ? а как быть с теми, кто уже в процессе ? версии задним числом наплодить ? а по порядку? транзакции работают, не создают версий - замечательно потом появляется snapshot, и все сразу начинают делать версии - не совсем: не все, версии делают только snapshot-транзакции а как быть с теми, кто уже в процессе? - а кто ж это? обычным транзакциям версии не нужны, а версии для snapshot-транзакций будут делаться при их появлении версии задним числом наплодить? вот мне непонятно почему задним числом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 12:05 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
Тем, кто хочет разобраться с механизмом версионности, рекомендую сходить сначала сюда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 12:19 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
2hvlad: Для того что бы разобавться с блокировками и версиями читайте Bernstain'a ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 13:48 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
nkulikov2hvlad: Для того что бы разобавться с блокировками и версиями читайте Bernstain'aХочется блеснуть знаниями "первоисточников" ? Та ради бога... Я дал ссылку на то, как это сделано в реально работающем много лет сервере, а не на теорию 30-летней давности. Причём многое там по-русски и разжёвано. Через полгода, как (если) разберётесь в Юконе, будете удивлены. Впрочем, не хотите - не читайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 13:57 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
SergSuper Тем не менее информация для восстановления состояния на начало транзакции там есть, не так ли? Я не вижу принципиальной разницы что восстанавливать эту информацию при откате, что читать snapshot-транзакцей. К тому же как-то Оракл восстанавливает из лога что значит, нет разницы ? Например, строка в данный момент меняется, и заблокирована эксклюзивной блокировкой. Причем меняется только одно поле, а остальные не затрагиваются. Соответственно, в логе имеются данные об изменении этого поля и все. Ну получите вы их, а потом ? Значения остальных полей-то откуда брать ? Разрешать такой транзакции читать в обход блокировки ? А как быть с цепочками версий ? Я-же говорю, можно было-бы всю запись в лог пихать, но тут это неоптимально получиться, потому-что лог оптимизирован для последовательной записи. А так, в tempdb оказывается вся версия, что позволяет ее тут-же прочитать, не тратя время на восстановление информации, как это делается при откате транзакции. Именно поэтому, версионность советуют включать только тогда, когда есть большое число читателей, которые будут потреблять версии, а иначе включение версионности только тормознет сервер, т.к. будут бессмысленно плодиться никому не нужные версии. А в Оракле у них два журнала, один для восстановления транзакций, а другой - для чтения версий. И при работе транзакции, данные пишутся в оба журнала. SergSuper не совсем: не все, версии делают только snapshot-транзакции это еще почему ? Разве вы не в курсе, что из себя представляет snapshot ? При ее запуске, все изменения замораживаются, т.е. она видит согласованный срез данных на время старта. Например, какая-нибудь транзакция (напр. read committed) меняет запись. В это время запустилась snapshot, и ей нужна данная запись. Она ее возьмет из tempdb, т.к. сама запись заблокирована. Более того, если теперь зафиксировать первую транзакцию, а из snapshot опять прочитать ту запись, то опять вернется старое значение, не смотря на то, что первая транзакция уже зафиксирована. И все время, пока snapshot жива и здорова, версии лежат в tempdb, даже если запись меняется много раз разными транзакциями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 16:20 |
|
||
|
Появление версионника в Yukon лишает Oracle всяких преимуществ!
|
|||
|---|---|---|---|
|
#18+
StalkerSА в Оракле у них два журнала, один для восстановления транзакций, а другой - для чтения версий. И при работе транзакции, данные пишутся в оба журнала. Однако... как undo tablespace мощно опустили, оказывается он только для чтения версий пригоден ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 16:27 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=33058566&tid=1553871]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 404ms |

| 0 / 0 |
