![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопросы оптимальности и производительности
Ragazor © (2009-02-19 16:12:00)Предположим есть TADOStoredProc или TADOQuery компонент на датамодуле. Использование их ведётся не с целью получить данные в грид, а что-нибудь выполнить(какой-то апедйт, выборку айдишки, и др.). Этот компонент всегда создан и для работы делается только присвоение параметров и вызов.
Далее, если взять и создать процедурку, которая будет работать не с этими компонентами, а будет создавать их, тоесть
with TADOStoredProc.Create() do
try
...
finally
Free;
end;
Вопрос, какой из методов будет работать быстрее и оптимальнее?
Ragazor (2009-02-20 10:43:00) [1]?
Предположим есть TADOStoredProc или TADOQuery компонент на датамодуле.
???
Это Пример компонентов для любитей позадавать глупые вопросы типа "а какие ты компоненты юзаешь" и тд.
Корень и смысл в слове "Предположим". Тоесть, какие они там будут на самом деле абсолютно не важно для темы.
И спасибо sniknik за единственныйответ по теме.
sniknik (2009-02-19 21:23:00) [2]> заявление без каких-либо объяснений
ищи в дайджестах, мне их уже приводить надоело, и все кстати без толку, те кому объяснялось не хотят просвящаться, жаждут доказательств которых в итоге не понимают...
т.что новых не будет, или верь, или как хочеш.
> Причины впрочем мне и не нужны, я и так юзаю TADODataSet.
?
Предположим есть TADOStoredProcили TADOQueryкомпонент на датамодуле.
???
не важно, что уже ты ездишь "на велосипеде", вопрос то ты ставишь про мазду или форд... телепатов нет.
> Вопрос касался совсем другого, а ваш ответ похож на это:
> "Ребята чё выбрать мазду или форд?
> - Езди на велосипеде!" :)
вполне правомерный ответ кстати, т.к. по опущенному контексту ясно, что машина выбирается исключительно для поездок за хлебом, в булочную магазин за 2 дома от тебя...
ну типа того.
хочешь быстроты и оптимальности? учись правильно работать, т.к. на кривой логике тебя никакие наиоптимальнейшие методы не спасут.
а хорошо построить логику не понимая как работает то что используешь, на компонентах которые практически специально это скрывают..., ну довольно трудновато.
> ... компонент всегда создан ...
> ... взять и создать процедурку ...
обычно "препарсенный"(/компилированный) запрос работает немного быстрее, т.е. во втором случае на время перекомпиляций/парсинга параметров будет медленнее, при прочих равных.
правда и статический запрос можно написать так, что он будет постоянно перекомпилироваться, например указав * вместо списка полей.
ну и оптимальнее конечно для командных запросов не TADOStoredProc, а TADOCommand. + настройки выполнения - асинхронный/не возвращающий данные, для быстроты.
MsGuns (2009-02-19 17:48:00) [3]>прочитал, но чьё-то заявление без каких-либо объяснений никак не заставляет просвящаться, а тем >более верить сказанному.
К объяснениям уважаемого Sniknik по этой теме рекомендую относиться просветительски, а также верить им - они того заслуживают
Ragazor (2009-02-19 16:54:00) [4]Ну в целом понятно, разницы нет и на мой взгляд. Но вот, поидее присвоение параметров через .Value работает медленнее чем .AsInteger, .AsString и тд...
а тут уже одинокую процедурку не попользуешь так просто.
Ragazor (2009-02-19 16:50:00) [5]
> Sergey13 © (19.02.09 16:16) [1]
> Если и будет отличаться, то на милисекунды. Зато искать
> по коду где что ты создаешь и/или присваиваешь будешь часами.
>
> Гораздо эфективнее ИМХО работать над содержимым SQL запроса.
>
ну насчет поисков, это спорный вопрос, мне тяжеле браться вдруг за мышу лезть искать в визуальных компонентах нужный квери или датасет залезать ему в СКУЛЬ текст...скоко ж надо телодвижений сделать.
намного проще в коде в нужном месте видеть сразу
SpExecute('sp_MyTable_Update', ['@ID', '@ID2'], [12, 3], ADOConn)
где процедурка примерно принимает такое...
procedure SpExecute(ProcName, ArrayOfParams, ArrayOfValues, ADOConnection)
to Johnmen.
прочитал, но чьё-то заявление без каких-либо объяснений никак не заставляет просвящаться, а тем более верить сказанному. Причины впрочем мне и не нужны, я и так юзаю TADODataSet.
Вопрос касался совсем другого, а ваш ответ похож на это:
"Ребята чё выбрать мазду или форд?
- Езди на велосипеде!" :)
Johnmen (2009-02-19 16:27:00) [6]середина поста [38] http://www.delphimaster.ru/cgi-bin/forum.pl?id=1233786340&n=18
читать, думать, просвещаться...
Sergey13 (2009-02-19 16:16:00) [7]Если и будет отличаться, то на милисекунды. Зато искать по коду где что ты создаешь и/или присваиваешь будешь часами.
Гораздо эфективнее ИМХО работать над содержимым SQL запроса.