|
Особенности выполнения запроса DELETE
|
|||
---|---|---|---|
#18+
Имеется таблица TEST_TBL с числовыми полями ID и A. Требуется удалить из таблицы 5 строк с наибольшим значением поля A (будем считать, что все значения в поле A уникальны). Тогда запрос Код: sql 1.
удалит 6 строк, вместо указанных во вложенном запросе 5. Объясните, почему так происходит? Движок перевыполняет вложенный запрос 2 раза по какой-то причине? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 10:34 |
|
Особенности выполнения запроса DELETE
|
|||
---|---|---|---|
#18+
Interloper, Курсор видит изменения самого себя. Исправлено в 3.0 CORE-3362 Ну и твой случай туда же относится. См. зависимые тикеты ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 10:47 |
|
Особенности выполнения запроса DELETE
|
|||
---|---|---|---|
#18+
InterloperДвижок перевыполняет вложенный запрос 2 раза по какой-то причине? Не два. Подзапрос выполняется отдельно для каждой строки внешнего курсора. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 12:22 |
|
Особенности выполнения запроса DELETE
|
|||
---|---|---|---|
#18+
Interloper, Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 13:06 |
|
Особенности выполнения запроса DELETE
|
|||
---|---|---|---|
#18+
Interloper, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 13:37 |
|
Особенности выполнения запроса DELETE
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovInterloperДвижок перевыполняет вложенный запрос 2 раза по какой-то причине? Не два. Подзапрос выполняется отдельно для каждой строки внешнего курсора. Почему в таком случае происходит удаление ровно на одну запись больше, чем ожидается? Ведь если курсор видит изменения самого себя, то после удаления каждой строки, он перевыполняет запрос и находит новых кандидатов на удаление, и так до тех пор, пока не удалятся все записи. Но удаления всех записей не происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2016, 09:51 |
|
Особенности выполнения запроса DELETE
|
|||
---|---|---|---|
#18+
InterloperПочему в таком случае происходит удаление ровно на одну запись больше, чем ожидается? Так звёзды сошлись (а точнее записи на диске лежат). Например, они лежат как 1,2,3,4,5,6,7. Для записи 1 подзапрос выберет 7,6,5,4,3 и она не удалится. А если бы они лежали как 7,6,5,4,3,2,1, то удалились бы все. Читай http://www.ibase.ru/dataaccesspaths/ и кури план. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2016, 11:10 |
|
|
start [/forum/topic.php?fid=40&fpage=60&tid=1562167]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 271ms |
total: | 406ms |
0 / 0 |