|
Получение записей интервала
|
|||
---|---|---|---|
#18+
Добрый день! Есть таблица с несколькими ключами (уникальный индекс по этим полям). 1. Как быстро получить Top 1000 ключей записей, начиная от некоторой записи? 2. Как быстро получить данные интервала? По сути, 1 это получение верхней границы интервала в 1000 записей, начиная от нижней границы (если SELECT TOP 1000... обернуть в SELECT TOP 1() ORDER BY ...DESC). Например, есть таблица Table1(Key1, Key2, Key3, Val1, Val2). Есть "границы" интервала: (Key1=100, Key2='qwerty', Key3=124) (Key1=100, Key2='asdfgh', Key3=356) Сейчас запросы такие (работают очень нешустро): 1. Код: sql 1. 2. 3. 4. 5.
2. Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2021, 12:49 |
|
Получение записей интервала
|
|||
---|---|---|---|
#18+
https://docs.microsoft.com/ru-ru/sql/t-sql/queries/select-order-by-clause-transact-sql?view=sql-server-ver15 Только не надо ожидать чудес. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2021, 13:02 |
|
Получение записей интервала
|
|||
---|---|---|---|
#18+
warren82, а с UNION не быстрее будет (избавившись от OR) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2021, 13:31 |
|
Получение записей интервала
|
|||
---|---|---|---|
#18+
warren82 Сейчас запросы такие (работают очень нешустро) покажите скрипт таблицы и всех индексов + указать размер таблицы а вообще, если запрос тормозит, смотрят его актуальный план и анализируют проблемные части ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2021, 13:48 |
|
Получение записей интервала
|
|||
---|---|---|---|
#18+
warren82, распишите все случаи OR в виде отдельных запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2021, 14:11 |
|
Получение записей интервала
|
|||
---|---|---|---|
#18+
aleks222, Вы имеете в виду OFFSET-FETCH? Меня скорее беспокоит второй запрос (от начальной границы до конечной). Здесь я не могу взять те же 1000 записей, потому что между 1 и 2 запросом записи в интервале могут удалиться/добавиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2021, 16:27 |
|
|
start [/forum/topic.php?fid=46&fpage=9&tid=1684102]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 131ms |
0 / 0 |