SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Скорость выборки
icon5.gif  Скорость выборки [сообщение #2846] Sat, 29 July 2023 16:39 Переход к предыдущему сообщению
sashaua01 в настоящее время не в онлайне  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]

Известить модератора

 
Сообщение не прочитано icon5.gif
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: Как прервать загрузку блоба?
Следующая тема: Запрос на выборку строки с самой свежей датой
Переход к форуму:
  


Текущее время: Wed Dec 18 07:36:34 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00787 секунд