Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2010.02.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
2-1261139465
ford
2009-12-18 15:31
2010.02.21
TIdHTTP и Transfer-Encoding: chunked


2-1261476735
Евгений11111
2009-12-22 13:12
2010.02.21
Обход в цикле элементов (Edit1, Edit2, Edit3 и т.д.)одного класса


3-1235109329
Дмитрий
2009-02-20 08:55
2010.02.21
[Delphi 2006, Access] Загрузка файла в базу данных


2-1261467325
pg81
2009-12-22 10:35
2010.02.21
Как передать адрес метода из dll в приложение и присвоить его соб


2-1261068749
Б
2009-12-17 19:52
2010.02.21
Как установить размеры клиентской части окна?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский