Начало » Использование СУБД » 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] Известить модератора  
 |  
	| 
		
	 | 
 
 
 |  
	| 
		
 |  
	| 
		
 |  
	| 
		
 |  
	| 
		
 |   
Переход к форуму:
 
 Текущее время: Tue Nov 04 16:02:57 GMT+3 2025 
 Общее время, затраченное на создание страницы: 0.01648 секунд 
 |