request synchronization error
request synchronization error
При выполнении запроса возникает
Ошибка синхронизации запроса
request synchronization error
Подскажите что это за синхронизация?
База в которой делается запрос дастаточно большая (3.5 гектара)
Львинная доля 98% объёма данных занимает таблица из которой и делается запрос
Сервер 1.5 FB
базу бэкапил восстанавливал но таже хрень
Запрос выполняется через IBQuery (Однонаправленый курсор)
Но когда идёт копирование данных происходит
request synchronization error
Ошибка синхронизации запроса
request synchronization error
Подскажите что это за синхронизация?
База в которой делается запрос дастаточно большая (3.5 гектара)
Львинная доля 98% объёма данных занимает таблица из которой и делается запрос
Сервер 1.5 FB
базу бэкапил восстанавливал но таже хрень
Запрос выполняется через IBQuery (Однонаправленый курсор)
Но когда идёт копирование данных происходит
request synchronization error
Наверно пример будет сделать сложно, но можно попробыватьdimitr писал(а):ошибка вылазит из ядра, означает обычно несоответствие операции состоянию дескриптора запроса (типа фетч из неактивного курсора и т.п.). По идее, в нормальных обстоятельствах возникать не должна. Так что похоже на баг, хотелось бы увидеть воспроизводимый пример.
1. Создайте две базы с таблицей состоящей из 32 полей (тип поля Integer)
2. Наполните её тестовыми данными (IBExpert). Количество строк должно привести к размеру базы в 3.5 гектара
3. Используя встроенный сервер сделайте запрос к базе1
Select Field1,field2,field3,field4,field5 from Table
group by Field1,field2,field3,field4,field5
4. Используя тот же сервер залейте результаты запроса во вторую базу.
Это должно привести к ошибке.
Одну из двух баз?Dmitry74 писал(а):2. Наполните её тестовыми данными (IBExpert).
Встроенный во что? Embedded что ли? Оставить запрос открытым, или не надо?Dmitry74 писал(а):3. Используя встроенный сервер сделайте запрос к базе1...
У тебя ж суперсервер, наверное, разве можно использовать "не тот же"?Dmitry74 писал(а):4. Используя тот же сервер залейте результаты запроса во вторую базу.
Если я то же самое сделаю одним "гетерогенным запросом" INSERT INTO ... SELECT FROM ... в IBExpert, то ошибка тоже будет?
Одну из двух баз?Dmitry74 писал(а):2. Наполните её тестовыми данными (IBExpert).
Именно одну! (затем данные перекачаем в другую)
Встроенный во что? Embedded что ли? Оставить запрос открытым, или не надо?Dmitry74 писал(а):3. Используя встроенный сервер сделайте запрос к базе1...
Именно Embedded!
У тебя ж суперсервер, наверное, разве можно использовать "не тот же"?Dmitry74 писал(а):4. Используя тот же сервер залейте результаты запроса во вторую базу.
Похоже Вы правы!
Если я то же самое сделаю одним "гетерогенным запросом" INSERT INTO ... SELECT FROM ... в IBExpert, то ошибка тоже будет?
Не уверен ! У меня именно две разные базы!
(Вынужден собирать данные из разных баз в одну. Жалко что FB пока нельзя делать запрос из нескольких баз одновременно, в oracle это запросто, но зато FB бесплатный и удобный в установке у клиентов )
Сегодня с удивлением узнал что ошибка повторяется и
на версии 1.5.4
Обноружил что FB Сожрал всю память
Самое главное забыл сказать
запрос делается из вьюхи а во вьюхе используется функция Рекурсивная
может из-за неё
Вот её код
на версии 1.5.4
Обноружил что FB Сожрал всю память
Самое главное забыл сказать
запрос делается из вьюхи а во вьюхе используется функция Рекурсивная
может из-за неё
Вот её код
Код: Выделить всё
CREATE PROCEDURE FIND_CHILDREN (
KEY_PARENT BIGINT,
KEY_REF BIGINT,
KEY_BABY BIGINT)
RETURNS (
KEY_CH BIGINT)
AS
DECLARE VARIABLE CNT BIGINT;
DECLARE VARIABLE CD_CH BIGINT;
begin
KEY_CH=0;
if (key_parent=key_baby) then
begin
KEY_CH=1;
suspend;
exit;
end
SELECT rf.parent FROM refdata rf WHERE
rf.reference=:key_ref and
rf.cd_code = :key_baby INTO :CD_CH;
if (CD_CH is null) then
begin
suspend;
exit;
end
if (cd_ch=KEY_PARENT) then
begin
KEY_CH=1;
end
else
execute procedure find_children (:key_parent,:key_ref,:cd_ch) returning_values :key_ch;
suspend;
end