|
Почему ADO + IBProvider медленней IBExpert?
|
|||
---|---|---|---|
#18+
Использую embedded FB 2.5 + IBProvider + ADO. Программа на C++. Обнаружил что одна и та же ХП (средней сложности запрос), возвращающая 2000 записей, работает через ADO 1.6c, та же ХП через IBExpert - менее 0.8с (т.е. разница стабильно в 2 раза). В IBExpert установлена опция fetch all data. Замер времени делаю у себя в программе - на выполнение ХП и получение рекордсета, IBExpert понятно что сам замеряет время. Выполнение команды неасинхронное (никаких циклов и sleep). Я понимаю что oledb+ADO это лишняя прослойка по сравнению с нативным интерфейсом fbclient, но в 2 раза дольше?? Уровень изоляции в обоих случаях read committed (в ADO - default). Видимо особенность не в fetch, а именно в том что FB является embedded - на что в IBProvider теряется время? ------ Performance info ------ Prepare time = 0ms Execute time = 875ms Avg fetch time = 0,43 ms Current memory = 35 168 532 Max memory = 52 388 368 Memory buffers = 2 052 Reads from disk to cache = 1 594 Writes from cache to disk = 0 Fetches from cache = 265 847 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2008, 16:35 |
|
Почему ADO + IBProvider медленней IBExpert?
|
|||
---|---|---|---|
#18+
FinderВидимо особенность не в fetch, а именно в том что FB является embedded Подключись IBExpert к embedded и перезамерь. И хотелось бы увидеть, как ты в программе меряешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2008, 06:47 |
|
Почему ADO + IBProvider медленней IBExpert?
|
|||
---|---|---|---|
#18+
Сорри. По поводу быстродействия вопрос снят: тесты приложения я запускал в Debug сборке из-под VS8, предполагая что fbclient.dll все равно релизный и сильно на скорость это не должно влиять. Был неправ - тест под релизным приложением дает примерно такие же результаты как и под IBExpert. Заклинило вчера под вечер... Также выяснил что _IBProvider_x3_free_i.dll (v.3.0.0.3464) отказывается понимать в строке подключения "dbclient_type=fb2.5", работает только при "dbclient_type=fb2.0", но это видимо вопрос к разработчикам провайдера. Часто при запуске тяжелых запросов IBExpert выдет сообщение "Zu wenig Arbeitsspeicher" - очевидно о нехватке памяти (какой именно? MaxFileSystemCache < DefaultDbCachePages*PageSize=32832, каш файловой системы должен использоваться, откуда такая ошибка???). Чем лечить (на машинке 2Gb памяти, размер базы - 300Mb, PageSize=16384)? Может установить большее значение MaxFileSystemCache = 65536 (у меня в конфиге он заремирован, но 65536 это дефолтное значение)? Сейчас DefaultDbCachePages = 2048. В доке прочитал про эти параметры, но так полностью и не разобрался. Какие вообще могут быть рекомендации по настройке параметров embedded FB? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2008, 11:32 |
|
Почему ADO + IBProvider медленней IBExpert?
|
|||
---|---|---|---|
#18+
очепятка, читать надо так: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2008, 11:33 |
|
Почему ADO + IBProvider медленней IBExpert?
|
|||
---|---|---|---|
#18+
Если установить DefaultDbCachePages=MaxFileSystemCache=65535, таинственный "Zu wenig Arbeitsspeicher" возникает еще чаще ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2008, 11:37 |
|
Почему ADO + IBProvider медленней IBExpert?
|
|||
---|---|---|---|
#18+
Тяжёлые запросы - это с натуральной сортировкой по длинным строкам? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2008, 13:20 |
|
Почему ADO + IBProvider медленней IBExpert?
|
|||
---|---|---|---|
#18+
сортировки конечно в запросах есть, но не по длинным строкам. Вообще на эту ошибку в IBExpert я регулярно натыкаюсь при экспериментах с запросами (когда надо убрать тормоза с EXECUTE SCRIPT - приходится тестировать различные варианты). Я не думаю что эта ошибка возникает только у меня, судя по немецкому тексту в ее сообщении - это нечто фирменно-родное от IBExpert. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2008, 13:32 |
|
Почему ADO + IBProvider медленней IBExpert?
|
|||
---|---|---|---|
#18+
Finderсудя по немецкому тексту в ее сообщении - это нечто фирменно-родное от IBExpert. Пожалуй, прафф. Однако за местом на диске и размером tmp-шника при выполнении сортировки всё равно последи. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2008, 13:34 |
|
Почему ADO + IBProvider медленней IBExpert?
|
|||
---|---|---|---|
#18+
авторОднако за местом на диске и размером tmp-шника при выполнении сортировки всё равно последи. Интересная мысль, видимо, я что-то пропустил - у меня БД состоит из одного файла, tmp-шный очевидно генерится самим FB или IBExpert где-то по дефолтному пути. Как их найти? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2008, 13:45 |
|
Почему ADO + IBProvider медленней IBExpert?
|
|||
---|---|---|---|
#18+
FinderКак их найти? Лично я считаю логичным временные файлы искать во каталоге для временных файлов. А Вы? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2008, 15:22 |
|
Почему ADO + IBProvider медленней IBExpert?
|
|||
---|---|---|---|
#18+
Ловить в профиле пользователя - мне кажется делом неблагодарным (слишком их там много, главное чтобы не кончалось место на диске, а его там хватает с запасом). Возможно в IBExpert где-то настраивается предопределенный путь к временным файлам или какое-то ограничение на их размер? Я надеялся что кто-то ранее сталкивался с таким сообщением об ошибке, все же IBExpert штука довольно распространенная... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2008, 12:32 |
|
|
start [/forum/topic.php?fid=42&tid=1599933]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 265ms |
0 / 0 |