powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Около справочника курсов валют...
22 сообщений из 22, страница 1 из 1
Около справочника курсов валют...
    #32227506
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди!
Такой вопрос:
есь талица Справочника валют
КодВалюты, ДатаС, ДатаПо, КурсРублей

и журнал операций
Дата КодВалюты СуммаВалюты

Как легче всего получить в запросе данные вида:

Дата КодВалюты СуммаВалюты КурсРублей СуммаРублей

???
Пробую подчиненный - где-то не так...
ХЭЛП!!!
Спасибо!
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32227650
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное, плохо объясняю...
Есть журнал опреаций с датами и справочник валют (интервалы дат).
Как получить в одном запросе результат из журнала опреаций
(дата и проч. радости)
и выцепить на эту (разную в каждой записи результирующего набора)
дату курс указанной в записи валюты?
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32227670
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что является ключем/уникальным индексом для справочника валют?

например будет две такие записи в справочнике валют
USD 03.08.03 04.08.03 30.00
USD 04.08.03 05.08.03 33.00

На 04.08.03 какой будет курс в этом случае?
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32227677
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знач так, энтот вопрос многоим покоя не дает. Есть два решения и оба - плохие.

1. Заведи вспомогательную буферную таблицу, которая должная изменяться тригеррами из основных. В этой таблице храни курс на КАЖДЫЙ ДЕНЬ. Ей же и будешь пользоваться для запросов.

2. Напиши функцию, которая возвращает курс любой валюты на заданный момент, и пользуйся ей в запросах. Вариант более экономный и правильный, но работает ОЧЕНЬ МЕДЛЕННО.
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32227688
А объясните мне глупому, зачем такая хитрая таблица. По моему проще
КодВалюты, Дата, Курс
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32227690
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 vdimas
В этой таблице храни курс на КАЖДЫЙ ДЕНЬ
А еще лучше на каждый час, минуту, секунду и т.п.
Щастья вам

2 VIG
Выкинь дату "ПО", а дальше - пишешь запрос, который тебе вернет курс нужной валюты на нужный день
Как - уже обсуждалось. Можно одним запросом (в 97-м - с извратом), лучше с подзапросом. Типа находишь максимальную дату "С", не превышающую заданную, и берешь оттуда курс.
Ну и используй этот запрос
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32227787
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо всем откликнувшимся, особенно уважаемому Лоху
за конструктивное предложение.

И большущее спасибо тому, кто нароет и кинет в этот топик ссылку на
упоминаемый Лохом вариант - не находится он... 8((((
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32227935
Можно и одним запросом. По всем полям группировка, по полю Курс - Last, по полю Дата - условие - <=............
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32227983
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Л.П
А причем здесь VIG ?
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32228184
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 VIG
Извини, борода, обознался
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32228310
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мля, что за тупой чел Лох Позорный

прикололся над одним из моих вариантов и тут предложил доверчивому вопрошающему вариант, аналогичный моему второму. :)

Когда в таблицах несколько сотен тысяч записей, то мой второй вариант (он же предложенный позже лохом) РЕАЛЬНО НЕ РАБОТАЕТ. Т.е. работает, но как-то весьма постепенно. Большинство крупных проектов используют в этом случае кэш с разной степенью детализации (сутки или 12 часов). Это старый и известный способ. В году 365.25 дней в среднем. Даже если у тебя десяток валют и база используется пяток лет, то размер этой таблицы по нынешним меркам будет смехотворен.
Зато все запросы на больших объемах данных с применением второго варианта работают в сотню раз быстрее.

Лох, ты нахрена людей в заблуждение вводишь? Ну сбацает он сейчас по-быстрому самый легкий вариант. Через пол-года его дернут за яйцо и спросят: "ты че программер херов тут наваял, анаста3.14здило ждать как твое корыто работает..."

Под MS SQL целостность буферной таблицы легко контроллируется триггерами. На всяких MDB целлостность никак не контроллируется, извращаются, обычно как могут (в погоне за целлостностью). Но это уже отдельный топик.
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32228314
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читать:

Зато все запросы на больших объемах данных с применением первого варианта (кеш) работают в сотню раз быстрее.
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32228328
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На ринг вызываются...
В "Красном" углу - Лох Позорный
В "Синем" углу - vdimas
Гонг!
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32228332
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да куда уж мне глупому до мудрого вдимаса
Про твои советы мое мнение в соседнем топике

Если ты не видишь разницы между использованием функций в запросе (что действительно тормозит) и написанием простого запроса - флаг тебе в руки
Мне даже интересно поглядеть на такой крупный проект, в котором система перестанет курс нормально выдавать если его ввести более чем один раз в день. Ну или чаще чем раз в 12 часов, или какая у тебя там степень детализации. Так что, парень (дефка?), храни курс на каждую миллисекунду. Щастья вам.

2 VIG
Профессионалы с любителями не боксируют
Это ж избиение получится
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32228356
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Лох Позорный

Мда... углубления в словоблудия ...

Если ты не видишь разницы между использованием функций в запросе (что действительно тормозит) и написанием простого запроса - флаг тебе в руки

Когда я предлагал функцию, то имел ввиду функцию на MS SQL, а они в запросах нормально работают, как часть запроса, можешь проверить. Суть не в этом - вставь тело функции непосредственно в запрос (не в этом ли я должен усмотреть разницу? :) ) По быстродействию - одна херня, не устраивает. Я уже перепробовал все варианты еще 2 года назад. Кэширование - на порядки быстрее. (Хоть слово "кеширование" отдает ненормализацией и геммороем)

Дело в том что сервак, на каждую строчку интересуемых данных, для который известна сумма, дата и код валюты, должен в этом запросе дважды просмотреть таблицу из предложенного тобою и мною варианта хранения только изменений (это очевидно, но для кого не очевидно, можно на екзекушн план посмотреть). У меня так было в одном из первых проектов. Работало нормально, пока количество строк в основных таблицах не стало приближаться к нескольким сотням тысяч. Мля, никто не говорит что этот вариант не сработает. На заведомо малых объемах он вполне потянет. А на реальных - херушки.


Про твои советы мое мнение в соседнем топике

Насчет второго топика видел еще вчера, но как-то впадлу отвечать на очевидное. Ты, видно, имеешь манеру не особенно вдаваться в смысл прочитанного, сразу тянет поотвечать, "поучаствовать". Но раз уж речь зашла - ща отвечу в том же топе.
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32228368
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут на сервере табличку сгенерил с пару десятками мильонов записей. При правильном индексировнаии - время выполнения какое-то смешное пара десятков (редко сотен) миллисекунд. А тут 100 тыс. записей - и тормоза.

Я энту табличку как-нибудь до сотен мильонов записей доведу - не думаю что время сильно увеличиться. Правда места на диске жалко :(
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32228370
am (a_mitin)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есь талица Справочника валют
КодВалюты, ДатаС, ДатаПо, КурсРублей

Зачем человека с пути (истинного) сбиваете?
Предложенный им вариант хранения инфы очень даже хорош (в случае, если [ДатаПо] поддерживается автоматом таким образом, чтобы небыло ни нахлестов ни дырок в последовательности, на триггерах это можно организовать). Хорош он и по производительности (курсы на любой день достаются обычным between), и по объему хранимой инфы (не надо на каждый день данные хранить)!
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32228378
am (a_mitin)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правда для курсов валют я использую сейчас вариант №2 vdimas (он же - вариант ЛП). Сейчас записей в таблице 7500 - производительность хорошая.
А вот для других, более сложных задач используется вариант с интервалами дат. Сейчас в одной из таких таблиц под 3,5 млн. записей - полет нормальный ;)
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32228390
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 am
Зачем человека с пути (истинного) сбиваете?
Предложенный им вариант хранения инфы очень даже хорош

вот и я про то же

2 Сенин Виктор
А тут 100 тыс. записей - и тормоза
Тут - это где?

2 vdimas
Кэширование - на порядки быстрее
А я и не говорил что медленнее. Но

НЕВАЖНО НАСКОЛЬКО БЫСТРО РАБОТАЕТ ВАША ПРОГРАММА, ЕСЛИ ОНА РАБОТАЕТ НЕПРАВИЛЬНО

Насчет второго топика видел еще вчера
При том, что оно (мое мнение) появилось там только сегодня?
С ума сойти...
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32228397
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП
>>А тут 100 тыс. записей - и тормоза
>Тут - это где?

Это я для vdimas'a было сооБчение
По поводу цитаты:"Работало нормально, пока количество строк в основных таблицах не стало приближаться к нескольким сотням тысяч. "
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32228428
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу замечания am (надо ли хранить дату "ПО"). Только что дошло.
Хорошее замечание.
Тянет на классический пример сознательной денормализации для увеличения производительности. (во завернул )
Что ж поделать, иногда приходится...
...
Рейтинг: 0 / 0
Около справочника курсов валют...
    #32229132
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 am (a_mitin)
Согласен, хранить дату ПО - прикольно.
Почти не уступает кэшу по производительности (там все-таки индексация была), зато здесь табличка маленькая.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Около справочника курсов валют...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]