|
Быстрый поиск в таблице значений по датам | ☑ | ||
---|---|---|---|---|
0
Регистр
14.10.23
✎
08:58
|
Таблица значений курсов валют с двумя колонками: Дата и Курс
Даты идут с пропусками, например: 02.09.2023 470 03.09.2023 471 07.09.2023 460 В таблице примерно 2 тыс. строк Обращение к ней идет очень часто, выбирается курс на определенную дату. Естественно, добавлен индекс по дате, и если такая дата есть в таблице - поиск проходит быстро, но если нет - (например 05.09.2023) - приходится делать линейный перебор строк. Как ускорить поиск ? (советы "открой для себя регистр сведений "Курсы валют" - не подходят, т.к. эта таблица курсов берется из SQL базы другой (не 1С) программы, и по условиям задачи работать надо именно с этой таблицей) |
|||
1
Волшебник
14.10.23
✎
09:42
|
Можно добавить пропущенные даты с сохранением предыдущего курса
|
|||
2
Регистр
14.10.23
✎
09:53
|
(1) Спс. А то я уже собирался колхозить собственные индексы.
|
|||
3
Смотрящий
14.10.23
✎
10:14
|
(2) Таблицу в запрос, в запросе эмулировать СрезПоследних
|
|||
4
Злопчинский
14.10.23
✎
10:33
|
(0) линейный перебор строк... Капец... Даже тупо половинным делением и то получится порядка 10 операций...
. А в снеговик не завезли для ТЗ типа как в ИТЗ 7.7 НайтиБлижайшуюМеньше, НайтиБлижайшуюБольше? |
|||
5
Волшебник
14.10.23
✎
10:39
|
(4) В восьмёрке есть индексация таблиц значений, в том числе по нескольким колонкам, но поиск только на равенство
|
|||
6
H A D G E H O G s
14.10.23
✎
12:42
|
(0) Зачем нужно делать полный перебор, если даты нет?
|
|||
7
Злопчинский
14.10.23
✎
14:23
|
(6) найти ближайшую ранешнюю. Если дата не найдена тогда от этой даты, циклом назад можно ещё и так
|
|||
8
Кирпич
14.10.23
✎
14:26
|
(0) Если нет на 05.09.2023, то отнять день и искать снова. Ищи на 04.09.2023, ищи на 03.09.2023 и т.д пока не найдешь. Если пропуски маленькие, то будет быстро.
|
|||
9
H A D G E H O G s
14.10.23
✎
14:26
|
(7) Спасибо. Понял, что ближайшую.
|
|||
10
Волшебник
14.10.23
✎
15:45
|
(8) Китайское программирование. Лучше сделать ограничение в 3 такие китайские попытки, а то можно попасть в длительный цикл
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |