Главная страница
    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.47 MB
Время: 0.032 c
3-1086951857
kondryuk
2004-06-11 15:04
2004.07.11
Выход за пределы диапазона


3-1087446671
r9000
2004-06-17 08:31
2004.07.11
Определение номера колонки редактируемой таблицы.


1-1088198532
jktu
2004-06-26 01:22
2004.07.11
Вопрос о формуле


6-1084463903
Nic2
2004-05-13 19:58
2004.07.11
Чтение потока из сокета


1-1088592098
plt
2004-06-30 14:41
2004.07.11
Выделение группы объектов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский