Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.02.21;
Скачать: CL | DM;

Вниз

Вопросы оптимальности и производительности   Найти похожие ветки 

 
Ragazor   (2009-02-19 16:12) [0]

Предположим есть TADOStoredProc или TADOQuery компонент на датамодуле. Использование их ведётся не с целью получить данные в грид, а что-нибудь выполнить(какой-то апедйт, выборку айдишки, и др.). Этот компонент всегда создан и для работы делается только присвоение параметров и вызов.
Далее, если взять и создать процедурку, которая будет работать не с этими компонентами, а будет создавать их, тоесть
with TADOStoredProc.Create() do
try
 ...
finally
 Free;
end;

Вопрос, какой из методов будет работать быстрее и оптимальнее?


 
Sergey13 ©   (2009-02-19 16:16) [1]

Если и будет отличаться, то на милисекунды. Зато искать по коду где что ты создаешь и/или присваиваешь будешь часами.
Гораздо эфективнее ИМХО работать над содержимым SQL запроса.


 
Johnmen ©   (2009-02-19 16:27) [2]

середина поста [38] http://delphimaster.net/view/2-1233786340/
читать, думать, просвещаться...


 
Ragazor   (2009-02-19 16:50) [3]


> 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.
Вопрос касался совсем другого, а ваш ответ похож на это:
"Ребята чё выбрать мазду или форд?
- Езди на велосипеде!" :)


 
Ragazor   (2009-02-19 16:54) [4]

Ну в целом понятно, разницы нет и на мой взгляд. Но вот, поидее присвоение параметров через .Value работает медленнее чем .AsInteger, .AsString и тд...
а тут уже одинокую процедурку не попользуешь так просто.


 
MsGuns ©   (2009-02-19 17:48) [5]

>прочитал, но чьё-то заявление без каких-либо объяснений никак не заставляет просвящаться, а тем >более верить сказанному.

К объяснениям уважаемого Sniknik по этой теме рекомендую относиться просветительски, а также верить им - они того заслуживают


 
sniknik ©   (2009-02-19 21:23) [6]

> заявление без каких-либо объяснений
ищи в дайджестах, мне их уже приводить надоело, и все кстати без толку, те кому объяснялось не хотят просвящаться, жаждут доказательств которых в итоге не понимают...
т.что новых не будет, или верь, или как хочеш.

> Причины впрочем мне и не нужны, я и так юзаю TADODataSet.
?
Предположим есть TADOStoredProc или TADOQuery компонент на датамодуле.
???

не важно, что уже ты ездишь "на  велосипеде", вопрос то ты ставишь про мазду или форд... телепатов нет.

> Вопрос касался совсем другого, а ваш ответ похож на это:
> "Ребята чё выбрать мазду или форд?
> - Езди на велосипеде!" :)
вполне правомерный ответ кстати, т.к. по опущенному контексту ясно, что машина выбирается исключительно для поездок за хлебом, в булочную магазин за 2 дома от тебя...
ну типа того.

хочешь быстроты и оптимальности? учись правильно работать, т.к. на кривой логике тебя никакие наиоптимальнейшие методы не спасут.
а хорошо построить логику не понимая как работает то что используешь, на компонентах которые практически специально это скрывают..., ну довольно трудновато.

>  ... компонент всегда создан ...
> ... взять и создать процедурку ...
обычно "препарсенный"(/компилированный) запрос работает немного быстрее, т.е. во втором случае на время перекомпиляций/парсинга параметров будет медленнее, при прочих равных.
правда и статический запрос можно написать так, что он будет постоянно перекомпилироваться, например указав * вместо списка полей.

ну и оптимальнее конечно для командных запросов не TADOStoredProc, а TADOCommand. + настройки выполнения - асинхронный/не возвращающий данные, для быстроты.


 
Ragazor   (2009-02-20 10:43) [7]

?
Предположим есть TADOStoredProc или TADOQuery компонент на датамодуле.
???

Это Пример компонентов для любитей позадавать глупые вопросы типа "а какие ты компоненты юзаешь" и тд.
Корень и смысл в слове "Предположим". Тоесть, какие они там будут на самом деле абсолютно не важно для темы.

И спасибо sniknik за единственный ответ по теме.



Страницы: 1 вся ветка

Текущий архив: 2010.02.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
15-1258553129
test
2009-11-18 17:05
2010.02.21
Коллайдер


15-1260394219
Юрий
2009-12-10 00:30
2010.02.21
С днем рождения ! 10 декабря 2009 четверг


6-1212496216
TForumHelp
2008-06-03 16:30
2010.02.21
DC++


11-1211897838
Стас
2008-05-27 18:17
2010.02.21
Как присвоить длину поля EditBox переменной?


8-1203148371
nuflin
2008-02-16 10:52
2010.02.21
чем шейдеры 3 отличаются от шейдеров 1(2) ????