Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
select @@versionAdaptive Server Enterprise/12.5.3/EBF 13325 ESD#7/P/Sun_svr4/OS 5.8/ase1253/1951/64-bit/FBO/Fri Mar 24 11:00:22 2006 Как известно, конструкция типа Код: plaintext 1. 2. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 12:58 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
Не в курсевыполняется, но действительно ли уровень изоляции при инсерте 0, неясно. Мнения разделились. при чтении используется, если не указано специально, дефолтный уровень изоляции - 3. соответственно, во временную таблицу придут закомиченные данные из таблицы С. если нужно грязное чтение, то можно вот так попробовать: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 13:38 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
2komrad Это я в первом посте ошибся. Там должно было быть так: Код: plaintext 1. 2. Получается, что set transaction isolation level 0 работает только для селектов, игнорируя инсерт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 16:00 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
Не в курсе2komrad Это я в первом посте ошибся. Там должно было быть так: Код: plaintext 1. 2. Получается, что set transaction isolation level 0 работает только для селектов, игнорируя инсерт? чем не устраивает конструкция select ... into ... from ... ? ни разу не слышал про "грязный" инсерт - что это такое? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 17:41 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
komrad Не в курсе2komrad Это я в первом посте ошибся. Там должно было быть так: Код: plaintext 1. 2. Получается, что set transaction isolation level 0 работает только для селектов, игнорируя инсерт чем не устраивает конструкция select ... into ... from ... ? ни разу не слышал про "грязный" инсерт - что это такое? ;)%) Вполне устраивает, но ведь select ... into ... from ... тоже не работает с at isolation 0. То есть Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 18:24 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
Думаю komrad прав. Что такое грязный инсерт??? set transaction isolation level 0 insert into #c select * from c В данном случае уровень изоляции будет влиять только на select from c На insert может повлиять уровень изоляции в других соединениях, если вставляется не во временную таблицу. Но у вас таблица временная, вряд ли кто-то другой с ней работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 18:44 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
antandДумаю komrad прав. Что такое грязный инсерт??? set transaction isolation level 0 insert into #c select * from c В данном случае уровень изоляции будет влиять только на select from c На insert может повлиять уровень изоляции в других соединениях, если вставляется не во временную таблицу. Но у вас таблица временная, вряд ли кто-то другой с ней работает.%) Да в чём прав-то? Не понял. Он предлагает мне синтаксис, который невозможно выполнить, выдаётся ошибка. Да, таблица временная, с ней больше никто не работает. Значит, в случае set transaction isolation level 0 insert into #c select * from c всё-таки селект будет грязным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 12:08 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
Вы же сами написали "А вот так set transaction isolation level 0 insert into #c select * from c выполняется........." select * from c будет грязным. Вроде как все ясно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 12:13 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
Не в курсе antandДумаю komrad прав. Что такое грязный инсерт??? set transaction isolation level 0 insert into #c select * from c В данном случае уровень изоляции будет влиять только на select from c На insert может повлиять уровень изоляции в других соединениях, если вставляется не во временную таблицу. Но у вас таблица временная, вряд ли кто-то другой с ней работает.%) Да в чём прав-то? Не понял. Он предлагает мне синтаксис, который невозможно выполнить, выдаётся ошибка. синтаксис такой как оказалось не работает - мой косяк, не проверил сначала да не про синтаксис тут имеется ввиду Не в курсе Да, таблица временная, с ней больше никто не работает. Значит, в случае set transaction isolation level 0 insert into #c select * from c всё-таки селект будет грязным? имеется ввиду, что грязных инсертов еще не придумали и что в данном случае будет начитка (и только она) данных методом "грязного" чтения кстати, зачем вам на одинокой и всеми покинутой таблице isolation 0 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 12:15 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
komrad кстати, зачем вам на одинокой и всеми покинутой таблице isolation 0 ? Да не... У него таблица с наверно не одинока. Это у него #c одинока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 12:22 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
antand komradкстати, зачем вам на одинокой и всеми покинутой таблице isolation 0 ?Да не... У него таблица с наверно не одинока. Это у него #c одинокаТочно так :) Спасибо за ответы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 15:52 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
komrad пишет: > при чтении используется, если не указано специально, дефолтный уровень > изоляции - 3. Вообще-то в ASE по дефолту уровень - 1. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2007, 12:44 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
Не в курсе пишет: > set transaction isolation level *0* > insert into #c > select * from c > > выполняется, но действительно ли уровень изоляции при инсерте 0, неясно. Да, действует, но только на операцию чтения данных. На уровне изоляции 0 все равно обеспечивается защиа от т.н. "грязной записи" - аномалии, возможно возникающей при одновременной записи нескольких транзакций. Это значит, что на вставляемые записи накладываются блокировки XLock, на уровне записей, страниц или даже всей таблицы ( в результете эскалации). Эти блокировки должны применяться и при dirty read (он же 0), поэтому при выполнении такого оператора уровень изоляции будет действительно 0 . Но dirty read не означает dirty write, а меньшего уровня изоляции ни в ASE, ни в стандарте не предусмотрено (да он и невозможен, потому как наличие dirty write нарушает основные свойства транзакций - DURABILITY & CONSISTENCY). Так что от XLock на вставляемые данные вам не избавиться, если именно это имелось в виду. А чего хотелось достичь ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2007, 12:44 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
MasterZiv komrad пишет: > при чтении используется, если не указано специально, дефолтный уровень > изоляции - 3. Вообще-то в ASE по дефолту уровень - 1. Posted via ActualForum NNTP Server 1.4 мда, это я видно на работе "перегрелся" ;) единица конечно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 12:28 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
komrad Не в курсе Да, таблица временная, с ней больше никто не работает. Значит, в случае set transaction isolation level 0 insert into #c select * from c всё-таки селект будет грязным? имеется ввиду, что грязных инсертов еще не придумали и что в данном случае будет начитка (и только она) данных методом "грязного" чтения кстати, зачем вам на одинокой и всеми покинутой таблице isolation 0 ? Начитка "грязной" не будет! Запускаем по очереди Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. и получаем: 1) AStart07:31:58Finish07:33:58id1 2) AStart07:32:01Finish07:33:58id1 3) AStart07:32:04Finish07:33:58id1 4) AStart07:32:07id2Finish07:32:07 В 2 получили то же, что и в 3, а не как в 4. Т.е. минимальный уровень изоляции при изменении все равно 1. Это вполне логично. Запрос на чтение данных наложит разделяемые блокировки (а они накладывается независимо от уровня изоляции) и по окончании выполнения запроса(уровень 0 и 1), они снимутся. А запрос с последующим добавлением затребует блокировку на изменение таблицы, что может привести мертвой блокировке. PS. 12.5.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2007, 08:01 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
москит пишет: > Начитка "грязной" не будет! Должна. Ты видимо что-то напутал в своем эксперименте. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2007, 15:29 |
|
||
|
set transaction isolation level 0 и insert
|
|||
|---|---|---|---|
|
#18+
MasterZiv москит пишет: > Начитка "грязной" не будет! Должна. Ты видимо что-то напутал в своем эксперименте. Posted via ActualForum NNTP Server 1.4 Запусти 1, а потом 2. Второй хоть и имеет уровент изоляции 0, будет ждать первого, а грязно не прочитает ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2007, 16:36 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34623678&tid=2012038]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 363ms |

| 0 / 0 |
