![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ускорить запуск [D7, IB7]
Ugrael © (2004-06-24 12:26:00)Доброго времени суток.
Кто что посоветует по поводу ускорения запуска\работы клиентских приложений на IB7?Как хотя бы сократить время заегрузки при первом запуске?Будет ли работать быстрее если запрос посылать не select * from tableа select pole1,pole2 from table
а то база большая-ждать долго.
ps:это помимо оптимизации посредством bakup/restore
jack128 (2004-06-25 20:49:00) [1]
> Там четко вроде сказано
> что берется все только во втором случае список (всех) полей
> указывается явно.
Может я не понял задачу.. Мне показалось, что помимо вопроса - вставлять в запрос оператор where или нет, так же поставлен вопрос что и на сколько лудше/: select * from или select pole1, pole2 from Причем я сделал допущение (наверно несколько смелое с моей стороны), что в таблицы есть еще поля помимо указанных. Исходя из этого я сказал, что явное указание полей положительно сказывается на скорости работы. И уж естественно я не хотел сказать, что это ускорение возникает из-за оотсутствия обращения к системным таблицам, хотя бы потомы, что оно (обращение к сис таблицам) есть всегда: в первом случае - запрос для определения списка полей в таблице, а во втором - запрос на проверку - а существуют ли заданные поля в заданной таблице.
Sergey Masloff (2004-06-25 19:21:00) [2]jack128 © (25.06.04 07:22) [7]
>> select *
>> от select f1,f2...
>> отличается очень немногим по скорости и от размера таблицы
>> не зависит
>скорость закачки данных зависит напрямую от того сколько и >каких полей ты выбираешь в запросе ;-)
Исходный пост читать не пробовал? Там четко вроде сказано
что берется все только во втором случае список (всех) полей указывается явно. Считаете
select rdb$field_name from rdb$relation_fields where rdb$relation_name = :tblname
займет времени больше чем сотые доли секунды? Вместе с фетчем? Даже если полей в таблице 255?
Ильш (2004-06-25 08:49:00) [3]а лучше при запуске вообще ничего не тащить!
тащить только по запросу клиента!
кнопищку нажимать наущить юзеря и усё :)
Жук (2004-06-25 08:38:00) [4]Основное правило ускорения - не тащить на клиента лишнюю информацию.
jack128 (2004-06-25 07:22:00) [5]
> Быстрее, если запрос не
> select * from table, и не
> select pole1,pole2 from table,
> а select * from table where ...
не-а - запрос будет отрабатывать даже медленнее. а вот данные фетчатся будут быстрее. Если по полям по которым ставится условие where - индексированны, то скорость выполнения ипадет не на много, а вот скорость фетча может возрасти очень сильно если условие очень жесткое (например where id = 10)
> select *
> от select f1,f2...
> отличается очень немногим по скорости и от размера таблицы
> не зависит
скорость закачки данных зависит напрямую от того сколько и каких полей ты выбираешь в запросе ;-)
Sergey Masloff (2004-06-25 00:34:00) [6]DrPass © (25.06.04 00:26) [5]
>выбирать полбазы в программу
не полбазы. Всю судя по всему ;-)
DrPass (2004-06-25 00:26:00) [7]
> Как хотя бы сократить время заегрузки при первом запуске
Не нужно при запуске выбирать полбазы в программу
Sergey Masloff (2004-06-25 00:14:00) [8]select *
от select f1,f2...
отличается очень немногим по скорости и от размера таблицы не зависит (ну даже если у тебя в таблице 255 полей то это все равно фигна по сравнению с мировой революцией...).
А вот все содержимое таблицы на клиента тащить это обычно жестоко...
HSolo (2004-06-24 14:24:00) [9]http://ibase.ru/develop.htm
в целом, и раздел "Оптимизация запросов" в частности
Ugrael (2004-06-24 13:21:00) [10]разумно.вообщем это приходило в голову, просто может кто еще чего посоветует. 8)
Наталия (2004-06-24 13:04:00) [11]Быстрее, если запрос не
select * from table, и не
select pole1,pole2 from table,
а select * from table where...