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

Вниз

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

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

Наверх





Память: 0.47 MB
Время: 0.03 c
3-1087129292
AlexG
2004-06-13 16:21
2004.07.11
Использование результата сохраненной процедуры.


3-1086973523
Vetek
2004-06-11 21:05
2004.07.11
SQL-запрос - выборка популярных значений


3-1087143909
mafuka
2004-06-13 20:25
2004.07.11
InterBase


1-1087796493
ПсихЪ
2004-06-21 09:41
2004.07.11
Функции из DCU


6-1084459501
NLO
2004-05-13 18:45
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский