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

Вниз

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

 
irish   (2004-06-15 21:08) [0]

Иногда на выполнение запроса к базе требуется много времени (мин. 20 и больше). Как сделать так, чтобы во время выполнения этого запроса приложение не "подвисало", чтобы пользователь имел доступ к элементам управления формы?


 
Johnmen ©   (2004-06-15 21:46) [1]

http://delphimaster.net/view/3-1086877190/


 
sniknik ©   (2004-06-16 00:32) [2]

> мин. 20 и больше
запрос к ленинской библиотеке на содержание 18-го тома? ;о))

чтобы приложене не "подвисало" универсальное средство делать "тормозящее" действие в отдельном потоке. или воспользоватся готовым из какого нибудь поддерживающего компанента. (но смысл все одно - отдельный поток)


 
Danilka ©   (2004-06-16 08:07) [3]


> (мин. 20 и больше)

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

:))


 
bushmen ©   (2004-06-16 11:18) [4]

>какие терпеливые юзеры

Они, наверное, до этого на счетах считали по паре месяцев :)


 
Alexander_K ©   (2004-06-16 12:06) [5]

Danilka ©   (16.06.04 08:07) [3]  bushmen ©   (16.06.04 11:18) [4]

Да ладно, бывают иногда здоровые базы, и запросы мощьные (связано около 10 таблиц и т.д.), так что и с индексами все равно тормозит.
Правда такие запросы обычно выполняются для какой-нибудь статистики, и довольно редко, но в моей практике встречаются.

А по существу: правильно тебе сказали про потоки. Почитай про TThread, посмотри в примерах, там есть проги с их использованием.


 
Alexander_K ©   (2004-06-16 12:09) [6]

А вообще, посмотри еще, может тебе где-нибудь в БД индексы построить надо - заметно убыстряет выполнение запросов


 
Danilka ©   (2004-06-16 13:29) [7]

[5] Alexander_K ©   (16.06.04 12:06)
Чего только не бывает. Но 20 минут - это клиника. Если запросы к базе на 20 минут, значит либо база спроектирована неверно, либо запрос корявый, третьего не дано.
Иногда, лучше добавить избыточности в базу, чем так вешать всех.

По мне, так запрос со временем выполнения на 10 секунд это уже что-то не так и надо выправлять ситуацию, а тут - на два порядка...


 
Johnmen ©   (2004-06-16 13:38) [8]

>Danilka ©   (16.06.04 13:29) [7]

Не соглашусь. Т.к., например, сбор сложной статистики может идти долго. При этом может выполняться более 1 запроса.
И это вовсе не значит, что все будут вешаться...
:)


 
Danilka ©   (2004-06-16 14:02) [9]

Alexander_K ©
Johnmen ©

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


 
irish   (2004-06-16 14:55) [10]

Ладно, ладно, шутники. Все поля не проиндексируешь, а сканирование одной таблицы по неиндексированному полю - 2,5 мин.
А за идею TThread спасибо!


 
Danilka ©   (2004-06-16 14:59) [11]

[10] irish   (16.06.04 14:55)

> Все поля не проиндексируешь

Почему? :))
По крайней мере те, по которым будет сортировка/фильтрация - запросто.


 
irish   (2004-06-16 15:11) [12]

Похоже, не все так просто. "Часики" все равно висят. И приоритет роли не играет...


 
irish   (2004-06-16 15:19) [13]

>Danilka ©
Информация накапливающегося характера
И что лучше: разместить больше информации или проиндексировать все поля? (а поиск может проводится по всем) :))



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

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

Наверх




Память: 0.5 MB
Время: 0.049 c
1-1088351380
tytus
2004-06-27 19:49
2004.07.11
TEdit


1-1088071668
Aleksandr.
2004-06-24 14:07
2004.07.11
Как определить, является файл бинарным или текстовым?


1-1088084783
Новенький
2004-06-24 17:46
2004.07.11
Вопрос по WebBrowser у.


4-1086076656
Shc
2004-06-01 11:57
2004.07.11
Как поместить календарь на форму?


1-1088514418
homer
2004-06-29 17:06
2004.07.11
Delphi 5 не понимает свои коды!