Имя: Пароль:
1C
 
Какой запрос получения максимального значения будет быстрее?
0 Dzenn
 
гуру
29.06.18
18:05
1. Вариант 1 0% (0)
2. Вариант 2 0% (0)
Всего мнений: 0

Всем привет!

Есть простейший непериодический независимый регистр сведений. Измерение только одно — "НомерПоПорядку", индексируется. Для каждой новой записи рассчитывается и присваивается по правилу МаксимальныйСуществующийНомер + 1.

Как Вы считаете, какой запрос и почему будет работать быстрее? И при каких условиях. Запросы на скрине.


http://prntscr.com/k0uhmr
1 Михаил Козлов
 
29.06.18
18:08
Сделайте еще 1 РС, куда будете писать максимальный номер по порядку.
2 ERWINS
 
29.06.18
18:10
Думаю план будет идентичен.
Как минимум на оракле
3 H A D G E H O G s
 
29.06.18
18:10
(0) Однозначно 2-ой, но, возможно, SQL настолько мудр, что и первый.

Никаких срезов делать не надо.
4 ERWINS
 
29.06.18
18:12
вопрос, есть ли по этому полю индекс?
5 H A D G E H O G s
 
29.06.18
18:13
(4) Хароший вопрос, да, ERWINS?
6 ERWINS
 
29.06.18
18:14
(5) туплю

будут идентичны
7 Dzenn
 
гуру
29.06.18
18:21
(6) Предполагаешь или знаешь?
8 Fragster
 
гуру
29.06.18
18:23
(7) ну так ведь индекс-то есть. правда непонятно, зачем автор делает автоинкремент вот таким вот небезопасным способом?
9 Dzenn
 
гуру
29.06.18
18:24
(8) а какой ещё способ есть в этих рамках?
10 lodger
 
29.06.18
18:36
(9) блокировать регистр пока текущий набор записей не отработает, например.
иначе, в интервал времени, пока предыдущий юзер получил номер, но еще не записал своё - кто-то тоже получит тот же номер и запишет поверх.
11 xXeNoNx
 
29.06.18
22:34
Я за вариант без сортировки, но в целом будет одинаково.
12 xXeNoNx
 
29.06.18
22:43
+(11) хотя бы из-за того что проц. подпрыгнет на сортировке
13 H A D G E H O G s
 
29.06.18
22:52
(12) Почитайте про кластерный индекс
14 mistеr
 
29.06.18
23:19
(13) Такие регистры вроде без кластерного создаются? Или я ошибаюсь?
15 mistеr
 
29.06.18
23:20
(0) Вопрос по-моему не стоит выеденного яйца. Будет одинаково. А если регистр вырастет настолько, что появится ощутимая разница, можно ведь переписать. Но гораздо раньше появится проблема (10)
16 H A D G E H O G s
 
29.06.18
23:27
(14) С кластерным
17 xXeNoNx
 
30.06.18
00:23
(13) а шо там читать.., сортированные данные или не сортированные будут возвращены..., думать не хочу, если есть возможность избежать сортировки, лучше избежать, для меня.
18 xXeNoNx
 
30.06.18
00:24
(14) [ОРРХ | ОРНР1 +] Измерение1 + [Измерение2 +...] (Кластерный)
19 youalex
 
30.06.18
00:37
В идеале, было бы неплохо, если бы текущий максимум можно было хранить в глобальной переменной сервера. В очень глобальной, такой, например, как блокировка сеанса.
то есть, первое обращение, допустим, инициализирует эту хрень, а дальше, из своего сеанса, мы можем этот счетчик инкрементить. Так, что все другие сеансы будут об этом знать. Но это фантастика, наверное.
20 H A D G E H O G s
 
30.06.18
00:43
(17) Это печально.
21 H A D G E H O G s
 
30.06.18
00:43
В идеале будет прочитана одна страница индекса. И всё. В неидеале - несколько.
22 H A D G E H O G s
 
30.06.18
00:44
Вот такие у нас 1Сники
23 sechs
 
30.06.18
00:49
(19) Слава тебе, Господи, что 1Совцы не проектируют SQL сервера!
24 xXeNoNx
 
30.06.18
01:19
(21) это прекрасно что это все, ну или почти все, понимают, но разве в (17) я об этом? Не думаю...
25 xXeNoNx
 
30.06.18
01:23
(22)а вот тут Вы правы
26 H A D G E H O G s
 
30.06.18
01:25
(24) Выбрать 600-ую страницу снизу из 600 страниц гораздо лучше, чем перебирать 600 страниц.
Но я думаю, что SQL достаточно умен, чтобы не перебирать 600 страниц в случае Максимум() а точно также выберет 600 страницу.
Просто с Сортировать это железно будет, а с Максимум - не уверен
27 xXeNoNx
 
30.06.18
01:31
(26) конечно лучше, в случае индекса, но если индекса нет. Это не в случае (0)
28 Мимохожий Однако
 
30.06.18
06:27
Можно сделать замер
29 mistеr
 
30.06.18
10:00
(19) Поздравляю, ты почти изобрел нумератор.
30 mistеr
 
30.06.18
10:01
(26) С Максимум точно так же ничего железного. Пути планировщика запросов неисповедимы.
31 Лефмихалыч
 
30.06.18
16:49
Основная теорема систематики: Новые системы плодят новые проблемы.