Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Залипание после запросов
|
|||
|---|---|---|---|
|
#18+
Помогите советом, знатоки! Пишу утилиту к чужой БД. Несколько слов о БД: InterBase, в базе 21 таблица, размер около 15 Мб. Делаю запрос над таблицей Data (в ней всего около 200 000 записей). Select D.* from Data D where D.Parnumber=12 and D.Data_Date='0:30 15.12.2003' and D.Object=2 Order By D.Item Вроде все просто. Таких запросов циклично около 50. Отлаживаю прогрмму в Delphi 5.5. Сервер БД - Firebird 1.0 Так вот, запросы судя по отладчику обрабатываются быстро, но после всего этого программа залипает. Смотрю: параметр Firebird Guardian - Number of Attachments - число вложений (или как это еще назвать) медленно растет. Так жду около 5 минут, потом, когда Number of Attachments падает до 1, программа отмокает. Данные я только читаю, не записываю, после запроса делаю откат Rollback. Такое подозрение, что идет перезапись данных на диск, что весьма странно, или это нормально? Где можно еще поковырять, какие свойства посмотреть? Мучаюсь уже неделю. ICQ 134811783 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2003, 14:17 |
|
||
|
Залипание после запросов
|
|||
|---|---|---|---|
|
#18+
Во первых нельзя ли сделать эти 50 запросов одним? В большинстве случаев это возможно. Во вторых давай текст открытия/закрытия и говори где конкретно виснет. И кто виснет? Комп или твое приложение? Или сервак? Вообще странно - кажется Guardian показывал число подключений, а не открытых запросов. Ты все через один Connection делаешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2003, 15:36 |
|
||
|
Залипание после запросов
|
|||
|---|---|---|---|
|
#18+
Nick74 Запросов у меня было по началу около 2200, потом я оптимизировал код и сделал запросы более глобальные. Так что это уже не поможет. Далее... Виснет сервак, как я понимаю. Он перегружен неосвобожденными запросами. Открытие базы: if SiconSisOpen then exit; if not dmSicon.dbSicon.Connected then dmSicon.dbSicon.DatabaseName:=PathBaseSicon; try if not dmSicon.dbSicon.Connected then dmSicon.dbSicon.Connected:=true; SiconSisOpen:=true; except MessageDlg( '...........', mtError ,[mbOk], 0); end; Запросы : CurrIbQ.SQL.Clear; CurrIbQ.SQL.Add(strSQL); try CurrIbQ.Open; // ЗАЛИПАЕТ ЗДЕСЬ !!! except MessageDlg('..........',mtWarning,[mbOk],0); Result:=false; end; // обработка данных // обработка данных // обработка данных CurrIbQ.Close; if dmSicon.transSicon.Active then dmSicon.transSicon.Rollback; { запрос strSQL типа : Select D.* from Data D where D.Parnumber=12 and D.Data_Date='0:30 15.12.2003' and D.Object=2 Order By D.Item } Закрываю базу: dmSicon.dbSicon.Connected:=false; BasesSiconIsOpen:=false; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2003, 11:58 |
|
||
|
Залипание после запросов
|
|||
|---|---|---|---|
|
#18+
Предложения (Просто попробовать - вдруг поможет?): 1. Сделай запрос не на форме, а создающийся каждый раз в рантайм и удаляющийся после вызова 2. Когда прога вешается запусти другую, которая делает, скажем, select простой какой-нибудь. Если она не повиснет, значит дело не в серваке? 3. Попробуй запросы группировать транзакциями штук по 50. 4. Включи CodeGuard, проверь нет ли утечек памяти - вдруг да выдаст что-то ценное. Кстати, у тебя IBX и IB какой? Обработка данных включает их редактирование??? Может, у тебя DeadLock какой-нибудь висит? ПОсмотри еще уровень изоляции чтобы стоял ReadCommited ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 10:10 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32376622&tid=2115108]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 260ms |
| total: | 388ms |

| 0 / 0 |
