Начало » Использование СУБД » Firebird, HQbird, InterBase » Скорость выборки
Скорость выборки [сообщение #2846] |
Sat, 29 July 2023 16:39 |
sashaua01
Сообщений: 26 Зарегистрирован: July 2022
|
Junior Member |
|
|
Доброго дня.
Подскажите пожалуйста, не могу разобратся.
Есть таблицы
MODELS
|ID|NAME|ID_CURRENCY|......|
PRICES
|ID|ID_MODEL|ID_PRICE|PRICE|ID_STATUS|ID_USER|
Внешний ключ PRICES.ID_MODEL на MODELS.ID
ID_PRICE - код цены, может быть сколько угодно цен на модели.
ID_STATUS - Активная цена или нет, операция смены цены это текущей активной цене установливаем флаг неактивности и вставляем новую запись с новой ценой, сделано для сохранений истории цен.
таблица валют
CURRENCY
|ID|NAME|SHORT_NAME|.....|
таблица курсов
EXCHANGE_RATE
|ID|ID_CURRENCY|MIN_EXCHANGE_RATE|MAX_EXCHANGE_RATE|ID_STATU S|.....|
Внешний ключ EXCHANGE_RATE.ID_CURRENCY на CURRENCY.ID
ID_STATUS -Активный курс или нет, другими словами текущий "рабочий" курс
Делаю выборку
select a.ID id_model from MODELS a
join price c on c.id_model=a.ID and c.ID_PRICE=2 and c.ID_STATUS=1
join currency d on d.id=a.ID_CURRENCY
------ Performance info ------
Prepare time = 31ms
Execute time = 16ms
Avg fetch time = 0,53 ms
Current memory = 9 845 168
Max memory = 9 935 328
Memory buffers = 2 048
Reads from disk to cache = 0
Writes from cache to disk = 0
Fetches from cache = 77 134
Делаю запрос
select a.ID id_model from MODELS a
join EXCHANGE_RATE b on b.ID_CURRENCY=a.ID_CURRENCY and b.ID_STATUS=1
join price c on c.id_model=a.ID and c.ID_PRICE=2 and c.ID_STATUS=1
join currency d on d.id=b.ID_CURRENCY
------ Performance info ------
Prepare time = 31ms
Execute time = 1s 375ms
Avg fetch time = 45,83 ms
Current memory = 9 857 632
Max memory = 9 935 328
Memory buffers = 2 048
Reads from disk to cache = 0
Writes from cache to disk = 0
Fetches from cache = 12 399 373
Почему такая разница в скорости выборки?
В таблице MODELS 23000 записей
В таблице PRICES 115000 записей
В таблице EXCHANGE_RATE 250 записей
FB 2.5.9
[Обновления: Sat, 29 July 2023 16:41] Известить модератора
|
|
|
Переход к форуму:
Текущее время: Wed Dec 18 04:50:39 GMT+3 2024
Общее время, затраченное на создание страницы: 0.01126 секунд
|