|
|
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
hi all DDL: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. DML: Код: sql 1. 2. Result: Код: plaintext 1. 2. 3. 4. 5. 6. PS-1. в Oracle : Код: sql 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. PS-2. в m$ sql : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. xyNULL5NULL5NULL5NULL5NULL5 Any comments ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 13:35:40 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
А вот если так его: Код: sql 1. - то показывает всё ОК: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 13:49:42 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
И ещё один этюд-изврат на тему апдейта и стабильности курсора. На этот раз без оконных функций: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Firebird : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Oracle: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 15:14:53 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, похоже на cursor stability. Если Влад подтвердит, что это именно оно, то добавь коммент в CORE-3362 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 17:17:43 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
А по-моему это скорее некэширование результатов некореллированного подзапроса. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 17:56:29 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
Затолкал я в тот тикет эти примеры. И еще один тоже, посерьёзней слегка. И пусть меня побьют ногами все три Источника Света и Шон вместе с ними, но нутром чую: надо будет еще не раз это всё проверять, в т.ч. апдейты с диктуемым порядком обхода строк (update t set ... order by ... ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2014, 21:16:01 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, про FK это наверное зря. Тут стабильность курсора уже не причём, там другая проблема и следовательно тикет другой надо было создавать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2014, 21:26:30 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисТут стабильность курсора уже не причём, там другая проблема и следовательно тикет другой надо было создавать.мну кажется, что это всё одного поля ягоды. Если там задать update t set x=y+1 order by x [или y] [а также поиграться c descend], то будет уже другой результат. Опять каким-то боком порядок обработки влияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2014, 22:35:39 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, там нарушение FK. Это вообще должно работать независимо от стабильности курсора. Ну к тому же ты запудрил мозги серверу каскадным обновлением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2014, 23:21:19 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
Симонов Денистам нарушение FK. Это вообще должно работать независимо от стабильности курсора. Ну к тому же ты запудрил мозги серверу каскадным обновлением.Этого нарушения FK *нет*, когда порядок обхода записей задан явно (кляузой order by), можешь проверить. Сиё означает, что требование тикета: "Cursors should ignore changes made by the same statement" - НЕ выполнено, т.е. курсокр таки УЧИТЫВАЕТ изменения "своего" стейтмента. Вот только эффект от этого учёта сейчас положительный, т.к. не появляется висячих строк. В отличие от других примеров (типа insert into t select * from t). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2014, 23:33:00 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, про порядок я ничего и не говорю. Этот тикет ещё не отмечен как решённый. А про порядок говориться вот здесь CORE-2799 . Но всё же моё мнение что FK не должен нарушаться при любых условиях и всё равно стабилен или нет курсор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2014, 23:40:00 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Не уверен, относится ли это к стабильности курсора или нет, но вижу, что во WHERE-предикате результат OVER()-функции перевычисляется на каждой обрабатываемой строке. Вместо однократного вычисления на старте стейтмента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2014, 13:20:59 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
1. Стабильность курсора была слегка сломана одним патчем летом. Не трогай её пока не починим. Ибо сейчас результаты всех твои тесты не имеют ценности. Разве что ради того, чтобы потом их повторить... 2. FK c ON UPDATE CASCADE (уже сам по себе изврат редкостный, но это не отменяет сути проблемы) да ещё и со ссылкой на самого себя никогда не работал на 100% правильно. В своё время в IB сделали простейшую реализацию каскадных FK, работающую в большинстве простых случаев, но не на 100% корректную. Стабильный курсор здесь несколько влияет на картину, но он не виноват в не правильной реализации каскадных действий. 3. За постоянное тыкание в одно и тоже место (отсутствие материализации результатов подзапросов) да ещё и где попало, да ещё и после 100500 кратных объяснений - уйдёшь таки в игнор, сколько можно уже ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2014, 13:36:43 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
hvlad1. Стабильность курсора была слегка сломана одним патчем летом. Не трогай её пока не починим. Ибо сейчас результаты всех твои тесты не имеют ценности. Разве что ради того, чтобы потом их повторить...Это ты СЕЙЧАС выяснил, что она сломана, или еще летом знал, но "тихо об лёд" ? :-) hvlad3. За постоянное тыкание в одно и тоже место (отсутствие материализации результатов подзапросов) да ещё и где попало, да ещё и после 100500 кратных объяснений - уйдёшь таки в игнор, сколько можно уже ?я не знаю, ЧТО там сейчас в трёшке: материализуются подзапросы или нет, и в каких случаях... Еще летом я видел, что в каких-то случаях ФБ-3 рвёт как тузик грелку запрос с подзапросом, где 2.5 тихо помирает. Если сейчас опять поломато - ну значит, подождём, не гордые. В любом случае, тесты приведены, перепроверить теперь можно в любой момент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2014, 13:47:57 |
|
||
|
Результат count( F1 )over() в процессе update set F1=null: cursor stability ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидЭто ты СЕЙЧАС выяснил, что она сломана, или еще летом знал, но "тихо об лёд" ? :-)Сейчас. Так что польза от тебя таки есть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2014, 14:33:22 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38516519&tid=1563999]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
181ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 535ms |

| 0 / 0 |
