Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
Объясните, пожалуйста, непонятно, но интересно... жуть, сервер 2017 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Есть ключ-индекс, и он используется при получении top 1, но только если выборка в том же порядке сортировки - запросы 1 и 4 В запросе 2 видим Top N Sort, а в 3 - вообще полную сортировку Это абсолютно непонятно) Вроде как везде в начале плана есть Поиск в индексе/Index Seek (кроме 3, ну там вообще всё как будто специально в назидание тем, кто пишет очень плохие запросы... так лучше забыть от 3 от греха) Ну ок, поперед всего - нашли запись с нужным значением ключа Теперь надо взять следующее или предыдущее Но ведь сортировка то по возрастанию, вроде должно быть проще взять следующее, чем предыдущее Но нет, (1) и (4) влет проходят Хотя (1) надо взять предыдущее по ключу, а (4) вообще конец всей географии Тогда как (2) нужно взять просто следующее по ключу, а там запускается TopN сортировка Буду рад тыканьям в доку и прочие материалы со ссылками и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 16:15 |
|
||
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
dklim.kznОбъясните, пожалуйста, непонятно, но интересноПотому что, в отличие от традиционных, range-индексы in-memory таблиц однонаправленные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 17:45 |
|
||
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
invm, да это просто прекрасно куда направленные то? я и полагаю, что вперед значит, взять следующее - легко, а предыдущее, как в (1) - сложно а мы тут видим категорически противоположную картину))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 18:45 |
|
||
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
ну я полагаю, что сначала по индексу ищем n=2265380000 а потом берем топ 1 но похоже как-то иначе всё))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 18:46 |
|
||
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
dklim.kznа предыдущее, как в (1) - сложно Зачем при select top 1 * from plog (nolock) where n<2265380000 order by n брать предыдущее? нужно взять вообще первую запись в индексе, и если n окажется <2265380000 - вывести ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 18:49 |
|
||
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
похоже меня уже глючит Код: plaintext 1. 2. 3. он берет весь диапазон индекса по дереву и бродит там. делая TopN но это же был бы scan, а не seek явно же что ищет)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 18:54 |
|
||
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
msLex нужно взять вообще первую запись в индексе, и если n окажется <2265380000 - вывести ну уж а order by ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 18:55 |
|
||
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
dklim.kzn, вот именно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 18:56 |
|
||
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
dklim.kznну уж а order by ? top 1 order by n - это запись с минимальными n, т.е. первая в индексе в where никаких ограничений на n "снизу" нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 18:57 |
|
||
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
dklim.kznзначит, взять следующее - легко, а предыдущее, как в (1) - сложноВ (1) не предыдущее, а первое в порядке n, меньшее 2265380000. Разницу ощущаете? И вообще, Index Scan в (1) от Index Seek в (4) отличаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 18:58 |
|
||
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
dklim.kznон берет весь диапазон индекса по дереву и бродит там. делая TopN но это же был бы scan, а не seek Это не seek, это range scan от начала и до 2265380000, но Top(TOP EXPRESSION:((1))) прерывает его после первой же выданной записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 19:01 |
|
||
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
msLex top 1 order by n - это запись с минимальными n, т.е. первая в индексе в where никаких ограничений на n "снизу" нет. спасибо вот я бы влетел то... ))) но почему это топ то)))) по дереву если только вот не попадалось на глаза раньше это прекрасное))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 19:14 |
|
||
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
dklim.kznmsLextop 1 order by n - это запись с минимальными n, т.е. первая в индексе в where никаких ограничений на n "снизу" нет. спасибо вот я бы влетел то... ))) но почему это топ то)))) по дереву если только вот не попадалось на глаза раньше это прекрасное))) вы хотели спросить, почему это seek? я уже ответил выше 21857662 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 19:39 |
|
||
|
Влияние сортировки на select top 1
|
|||
|---|---|---|---|
|
#18+
msLex, нет-нет, я про топ топ должен быть там, куда сортировка а оказалось наоборот))) ну бывает на старуху проруха)) раньше только в выдаче использовал, да и давно не брал я в руки шашки просто я знаю, чем такие простые вещи чреваты - кучей потерянного времени и долбежа об стенку) так что ещё раз большое спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2019, 21:08 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=46&tid=1687990]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
225ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 257ms |
| total: | 587ms |

| 0 / 0 |
