
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.11.2021, 12:49:36
|
|||
|---|---|---|---|
|
|||
Получение записей интервала |
|||
|
#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, 13:02:40
|
|||
|---|---|---|---|
Получение записей интервала |
|||
|
#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:31:25
|
|||
|---|---|---|---|
|
|||
Получение записей интервала |
|||
|
#18+
warren82, а с UNION не быстрее будет (избавившись от OR) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2021, 13:48:45
|
|||
|---|---|---|---|
Получение записей интервала |
|||
|
#18+
warren82 Сейчас запросы такие (работают очень нешустро) покажите скрипт таблицы и всех индексов + указать размер таблицы а вообще, если запрос тормозит, смотрят его актуальный план и анализируют проблемные части ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2021, 14:11:15
|
|||
|---|---|---|---|
|
|||
Получение записей интервала |
|||
|
#18+
warren82, распишите все случаи OR в виде отдельных запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2021, 16:27:26
|
|||
|---|---|---|---|
|
|||
Получение записей интервала |
|||
|
#18+
aleks222, Вы имеете в виду OFFSET-FETCH? Меня скорее беспокоит второй запрос (от начальной границы до конечной). Здесь я не могу взять те же 1000 записей, потому что между 1 и 2 запросом записи в интервале могут удалиться/добавиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2021, 16:46:06
|
|||
|---|---|---|---|
|
|||
Получение записей интервала |
|||
|
#18+
warren82, а весь этот глум с and, or и not на between не заменить? чтобы 2 запроса были согласованы по данным можно их делать в SNAPSHOT и двумя рекордсетами в одном батче/процедуре. и в одной транзакции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&tablet=1&tid=1684102]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
190ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 471ms |

| 0 / 0 |
