|
UPDATE ORDER BY sybase ASE
|
|||
---|---|---|---|
#18+
Добрый вечер. Не могли бы Вы помочь в такой задаче: " таблица : id, priority, mark Нужно пометить выбрать N записей, которые не помечены и с максимальный приоритетом Должно быть потокобезопасно, чтобы в разные потоки не попали одинаковые записи ". С ASE начал работать недавно. Помогите неопытному человеку ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 00:30 |
|
UPDATE ORDER BY sybase ASE
|
|||
---|---|---|---|
#18+
Почему, собственно, так озаглавил вопрос "UPDATE ORDER BY". Находил такую конструкцию на info.sybase,но почему-то она не срабатывает и ругается ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 00:32 |
|
UPDATE ORDER BY sybase ASE
|
|||
---|---|---|---|
#18+
PanzerIDДобрый вечер. Не могли бы Вы помочь в такой задаче: " таблица : id, priority, mark Нужно пометить выбрать N записей, которые не помечены и с максимальный приоритетом Должно быть потокобезопасно, чтобы в разные потоки не попали одинаковые записи ". С ASE начал работать недавно. Помогите неопытному человекуА теперь еще раз и поподробнее. А то уж очень загадочное желание. UPDATE ORDER BY - не возможно, потому что бессмысленно. Если тебе обязательно делать обновление записей в каком-то порядке (зачем?), то делаешь курсор for update, в который выбираешь записи в каком-то порядке, и потом в цикле уже обновляешь курсор. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 01:28 |
|
UPDATE ORDER BY sybase ASE
|
|||
---|---|---|---|
#18+
PanzerID, PanzerIDДолжно быть потокобезопасно, чтобы в разные потоки не попали одинаковые записи". Это вообще не понял! PanzerID Нужно пометить выбрать N записей , которые не помечены и с максимальный приоритетом Top что ли? Если нужен Top, то я бы сгрузил бы иды во времянку и потом сделал бы update. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 12:07 |
|
UPDATE ORDER BY sybase ASE
|
|||
---|---|---|---|
#18+
PanzerID, выбирай записи курсором с for update и order by. потом обрабатывай. update с order by не бывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 21:44 |
|
UPDATE ORDER BY sybase ASE
|
|||
---|---|---|---|
#18+
PanzerIDДобрый вечер. Не могли бы Вы помочь в такой задаче: " таблица : id, priority, mark Нужно пометить выбрать N записей, которые не помечены и с максимальный приоритетом Должно быть потокобезопасно, чтобы в разные потоки не попали одинаковые записи ". С ASE начал работать недавно. Помогите неопытному человеку В цикле (while) уменьшаешь Priority , пока тебе update TOP 100 не вернет значение, отличное от нуля. Второе условие выхода из цикла - минимальное (отрицательное?) значение Priority Про "потокобезопасно" - "разруливается" блокировками на update . Select for update - хорошо, но время блокировок будет бОльшим + если вдруг "это" делается через клиента на джаве - можно выгрести кучу непредсказуемых вещей типа зависающих сессий, не закрытых курсоров и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2014, 18:02 |
|
|
start [/forum/topic.php?fid=55&gotonew=1&tid=2009789]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
14ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 194ms |
0 / 0 |