|
Изменение большого количества записей в одной таблице. Как сделать цикл...
|
|||
---|---|---|---|
#18+
andrey_anonymous, ясно, спасибо))) в общем, конечно, в предложенном мной способе нужно быть на 146% уверенным, что данные никак не меняются и не переезжают между моментом формирования списка rowid и update. собственно, в моем случае так и есть - в хранилищах (а я работаю именно с ними) почти всегда загрузка данных (то бишь их непосредственное изменение) отделены по времени от любых других процессов, а технические работы проводятся по графику и о них идет специальное оповещение. Таким образом, в этом конкретном классе систем - можно юзать))) но у топикстартера явно не этот случай ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 11:24 |
|
Изменение большого количества записей в одной таблице. Как сделать цикл...
|
|||
---|---|---|---|
#18+
chidoriami, Данные все равно вычитывать и все равно менять, в чем выигрыш? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 12:26 |
|
Изменение большого количества записей в одной таблице. Как сделать цикл...
|
|||
---|---|---|---|
#18+
chidoriamiв общем, конечно, в предложенном мной способе нужно быть на 146% уверенным, что данные никак не меняются и не переезжают между моментом формирования списка rowid и update. andrey_anonymousПроблема здравого смысла: формирование списка rowid суть отбор тех самых строк, которые следует обновить. Есть очень мало причин не обновить строки сразу по факту нахождения, а записать их координаты для обновления отдельным процессом. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 14:04 |
|
Изменение большого количества записей в одной таблице. Как сделать цикл...
|
|||
---|---|---|---|
#18+
iOracleDev, я знаю, это выглядит несколько бредово. метод выработан на больших данных и слабом железе с активно работающими юзерами-читателями. боюсь, моих знаний не хватит, чтобы внятно объяснить, почему так быстрее, чем апдейт - но реально, бывало часто. возможно, если я правильно помню, при create as select без джойнов данные читаемой таблицы не поднимаются в темп, а сразу кладутся в новую таблицу (но это не точно) а апдейт по rowid - это прям супербыстро, быстрее, чем по индексу же плюс, такое часто быстрее, когда нужно отобрать строки для апдейта исходя из результатов джойна с другой таблицей т.е. это конечно решается с помощью обычного merge, но на основе эмпирических наблюдений - так быстрее =)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 15:15 |
|
|
start [/forum/topic.php?fid=52&startmsg=39854096&tid=1882152]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 138ms |
0 / 0 |