powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB Embedded 2.5.2 - запрос с подзапросом работает очень медленно
3 сообщений из 3, страница 1 из 1
FB Embedded 2.5.2 - запрос с подзапросом работает очень медленно
    #39839965
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем здравствуйте!

Используется FB Embedded 2.5.2 + FireDAC (2013 v 7.0.1.3119), размер базы 1.6 Гб

Наткнулся на такую проблему:

Запрос с подзапросом внутри выполняется стабильно для любых переменных за 4.5 сек:

Код: sql
1.
2.
3.
4.
5.
6.
 
select F.FILEGUID, F.DATA from FILES F  
  where F.FILEGUID in
       (select a.FILEGUID FROM DOCS a 
	    where a.PARENTFILEGUID='AF3F258F-F180-4A5D-85CB-8DC40C23B1D9' and a.FILETYPE in (24,70)
		)



если отдельно выполнить подзапрос (за 10..25 мсек):
Код: sql
1.
2.
select a.FILEGUID FROM DOCS a 
	    where a.PARENTFILEGUID='AF3F258F-F180-4A5D-85CB-8DC40C23B1D9' and a.FILETYPE in (24,70)



и вставить из него ответ в итоговый:
Код: sql
1.
2.
 select F.FILEGUID, F.DATA from FILES F  
  where F.FILEGUID in ('guid1','guid2' .... 'guidX')



то такой запрос выполняется в итоге за 10-40 мсек.


Попробовал выполнить запрос через FlameRobin 0.9.3 (git hash 5ece15b) Unicode
получилось быстрее: 2.6 сек.
авторExecuting statement...
Statement executed (elapsed time: 0.000s).
1291586 fetches, 9 marks, 220185 reads, 7 writes.
0 inserts, 0 updates, 0 deletes, 218 index, 161771 seq.
Delta memory: 53588 bytes.
Total execution time: 2.628s
Script execution finished.


Временное решение: выполняю подзапрос отдельно, возвращаю строки и формирую итоговый запрос
( where F.FILEGUID in ('guid1','guid2', .... 'guidX') ),

работает быстро, но... почему СУБД не может "так же" ..?

Может кто-то сталкивался с такой или похожей проблемой?



Спасибо!
...
Рейтинг: 0 / 0
FB Embedded 2.5.2 - запрос с подзапросом работает очень медленно
    #39839970
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql2012,

Может, попробовать JOIN?
Меня эти IN всегда напрягают.
...
Рейтинг: 0 / 0
FB Embedded 2.5.2 - запрос с подзапросом работает очень медленно
    #39839973
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery,

да, изменил, проблема решена!

Спасибо!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB Embedded 2.5.2 - запрос с подзапросом работает очень медленно
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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