Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
17.11.2021, 12:49
|
|||
---|---|---|---|
|
|||
Получение записей интервала |
|||
#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
|
|||
---|---|---|---|
Получение записей интервала |
|||
#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
|
|||
---|---|---|---|
|
|||
Получение записей интервала |
|||
#18+
warren82, а с UNION не быстрее будет (избавившись от OR) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2021, 13:48
|
|||
---|---|---|---|
Получение записей интервала |
|||
#18+
warren82 Сейчас запросы такие (работают очень нешустро) покажите скрипт таблицы и всех индексов + указать размер таблицы а вообще, если запрос тормозит, смотрят его актуальный план и анализируют проблемные части ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2021, 14:11
|
|||
---|---|---|---|
|
|||
Получение записей интервала |
|||
#18+
warren82, распишите все случаи OR в виде отдельных запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2021, 16:27
|
|||
---|---|---|---|
|
|||
Получение записей интервала |
|||
#18+
aleks222, Вы имеете в виду OFFSET-FETCH? Меня скорее беспокоит второй запрос (от начальной границы до конечной). Здесь я не могу взять те же 1000 записей, потому что между 1 и 2 запросом записи в интервале могут удалиться/добавиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2021, 16:46
|
|||
---|---|---|---|
|
|||
Получение записей интервала |
|||
#18+
warren82, а весь этот глум с and, or и not на between не заменить? чтобы 2 запроса были согласованы по данным можно их делать в SNAPSHOT и двумя рекордсетами в одном батче/процедуре. и в одной транзакции ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&mobile=1&tid=1684102]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 237ms |
total: | 386ms |
0 / 0 |