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

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

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

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

???
Пробую подчиненный - где-то не так...
ХЭЛП!!!
Спасибо!
...
Рейтинг: 0 / 0
05.08.2003, 15:30
    #32227650
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Около справочника курсов валют...
Наверное, плохо объясняю...
Есть журнал опреаций с датами и справочник валют (интервалы дат).
Как получить в одном запросе результат из журнала опреаций
(дата и проч. радости)
и выцепить на эту (разную в каждой записи результирующего набора)
дату курс указанной в записи валюты?
...
Рейтинг: 0 / 0
05.08.2003, 15:45
    #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
05.08.2003, 15:52
    #32227677
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Около справочника курсов валют...
Знач так, энтот вопрос многоим покоя не дает. Есть два решения и оба - плохие.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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