powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Очень медленный Update, как победить?
12 сообщений из 12, страница 1 из 1
Очень медленный Update, как победить?
    #39765427
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таблице примерно 300.000 записей

Код: sql
1.
UPDATE table1 t SET field1=0 WHERE t.id IN (SELECT FIRST 1000 tt.id FROM table1 tt where field1=1)



работает очень медленно, быстрее выполняется

Код: sql
1.
UPDATE table1 t SET field1=0



как можно оптимизировать update что бы обработка была реально 1000 записей, а не хз скольких? :)
...
Рейтинг: 0 / 0
Очень медленный Update, как победить?
    #39765434
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antox,

Смотреть на rows
...
Рейтинг: 0 / 0
Очень медленный Update, как победить?
    #39765437
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так:

Код: plsql
1.
UPDATE table1 t SET field1=0 WHERE t.id IN (SELECT FIRST 1000 tt.id FROM table1 tt where field1=1 ORDER BY tt.id+0)
...
Рейтинг: 0 / 0
Очень медленный Update, как победить?
    #39765454
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

antoxВ таблице примерно 300.000 записей

Код: sql
1.
UPDATE table1 t SET field1=0 WHERE t.id IN (SELECT FIRST 1000 tt.id FROM table1 tt where field1=1)




Попробуй:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
merge into TABLE1 as t
using ( select first(1000) ID
          from TABLE1
         where FIELD1 = 1 ) as s
on ( t.ID = s.ID )
when matched then
  update
     set t.FIELD1 = 0


Надо смотреть, что за индекс по полю FIELD1
Можно просто заменить условие на
Код: sql
1.
where FIELD1 + 0 = 1

и сравнить.

С уважением, Polesov.
...
Рейтинг: 0 / 0
Очень медленный Update, как победить?
    #39765456
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesov,

в данном случаев можно без всякого merge и in/exists обойтись.
Правильно подсказку дали смотреть ROWS
...
Рейтинг: 0 / 0
Очень медленный Update, как победить?
    #39765466
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала надо бы смотреть в глаза тому, кто придумал постановку задачи "изменить поле в
тысяче произвольных записей".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Очень медленный Update, как победить?
    #39765479
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovСначала надо бы смотреть в глаза тому, кто придумал постановку задачи "изменить поле в
тысяче произвольных записей".
\

А это правильный вопрос :)
...
Рейтинг: 0 / 0
Очень медленный Update, как победить?
    #39765480
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сессия, вестимо.))
...
Рейтинг: 0 / 0
Очень медленный Update, как победить?
    #39765488
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, ресурсом этим нынче кто заведует?
http://firebirdsql.su/doku.php?id=update
Неплохо было бы про кляузу ROWS там тоже дописать.
...
Рейтинг: 0 / 0
Очень медленный Update, как победить?
    #39765492
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad F,

там не только ROWS отсутствует, про RETUNING тоже ничего нет
...
Рейтинг: 0 / 0
Очень медленный Update, как победить?
    #39765525
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Если уж на то пошло, то и не только rows и returning, и надо бы как минимум приводить в соответствие вот с этим:
https://www.firebirdsql.org/refdocs/langrefupd21-update.html
...
Рейтинг: 0 / 0
Очень медленный Update, как победить?
    #39765526
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad F,

я за этим сайтом не слежу. В той доке которую я поддерживаю это всё есть
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Очень медленный Update, как победить?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]