powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Unsuccessful metadata update при удалении данных
23 сообщений из 23, страница 1 из 1
Unsuccessful metadata update при удалении данных
    #40066784
nekoriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Пишу тест производительности Firebird. Запускаю 1000 потоков. Каждый поток выполняет удаление своей порции данных в БД.

Использую компонент FirebirdSql.Data.FirebirdClient на C#.

Firebird 2.5. Режим Superserver.

Возникает много ошибок:
unsuccessful metadata update request depth exceeded. (Recursive definition?)

На 100 потоках нет ошибок.

В режиме Classic server проблем нет.
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40066790
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nekoriu
unsuccessful metadata update request depth exceeded. (Recursive definition?)
1000 активных клонов одного и того же запроса. Процедура ?
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40066856
nekoriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В потоке выполняются такие команды:
EXECUTE BLOCK
AS
DECLARE VARIABLE id integer;
...

BEGIN
-- пользователь, от имени которого удаляется
emp_id = 0;
flag = 1; -- по умолчанию 1, чтобы хотя бы раз запрос выполнился
while (flag = 1) do
begin
flag = 0; -- в каждой итерации сбросить на 0, чтобы выйти из цикла, когда записи кончатся
in autonomous transaction -- автономная транзакция - для commit посaле обработки каждых 2000 удалений
do
begin
for select first 2000 ecd_id from table1 cd where cd.uso_id = Auso_id
into :id
do
begin
flag = 1; -- в этой итерации записи есть, значит нужна как минимум следующая
delete from table1session where ecd_id = :id;
execute procedure del_something(:id, :emp_id) returning_values :res;
end
end
end

flag = 1; -- по умолчанию 1, чтобы хотя бы раз запрос выполнился
while (flag = 1) do
begin
flag = 0; -- в каждой итерации сбросить на 0, чтобы выйти из цикла, когда записи кончатся
in autonomous transaction -- автономная транзакция - для commit после обработки каждых 2000 удалений
do
begin
for select first 2000 s.mss_id from table2 s where s.uso_id = Auso_id
into :mss_id do
begin
flag = 1;
update table3 set mss_id = null where mss_id = :mss_id;
delete from table4 where mss_id = :mss_id;
...
end
end
end

END
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40066870
nekoriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предыдущее сообщение в более понятном виде.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
EXECUTE BLOCK
AS
DECLARE VARIABLE id integer;
...

BEGIN
    -- пользователь, от имени которого удаляется
    emp_id = 0;
    flag = 1; -- по умолчанию 1, чтобы хотя бы раз запрос выполнился
    while (flag = 1) do
    begin
        flag = 0; -- в каждой итерации сбросить на 0, чтобы выйти из цикла, когда записи кончатся
        in autonomous transaction -- автономная транзакция - для commit посaле обработки каждых 2000 удалений
        do
        begin
            for select first 2000 ecd_id from table1 cd where cd.uso_id = Auso_id
                into :id
            do
            begin
                flag = 1; -- в этой итерации записи есть, значит нужна как минимум следующая
                delete from table1session where ecd_id = :id;
                execute procedure del_something(:id, :emp_id) returning_values :res;
            end
        end
    end

    flag = 1; -- по умолчанию 1, чтобы хотя бы раз запрос выполнился
    while (flag = 1) do
    begin
        flag = 0; -- в каждой итерации сбросить на 0, чтобы выйти из цикла, когда записи кончатся
        in autonomous transaction -- автономная транзакция - для commit после обработки каждых 2000 удалений
        do
        begin
            for select first 2000 s.mss_id from table2 s where s.uso_id = Auso_id
                into :mss_id do
            begin
                flag = 1;
                update table3 set mss_id = null where mss_id = :mss_id;
                delete from table4 where mss_id = :mss_id;
            ...
            end
        end
    end

END
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40066894
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой сильный способ отстрелить себе ногу! Так вот для кого вакансии со словом "ниндзя"...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40066940
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nekoriu,

ты всё ещё не видишь процедуру ?
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40066958
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nekoriu,

Код: sql
1.
2.
  update table3 set mss_id = null where mss_id = :mss_id;
  delete from table4 where mss_id = :mss_id;


на какой-то бред похоже.
a:=5;
if a = 6 then ... // т.е. кусок кода который всегда даст false. А выше - не удалит ни одной записи.
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40066969
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

table3 это не table4
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40066970
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

а, проглядел
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067082
nekoriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, чего плохого в коде?
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067085
nekoriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторты всё ещё не видишь процедуру ?

Вижу. Какие проблемы возникают из-за процедуры?
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067087
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nekoriu,

а что в ней в этой процедуре?
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067099
nekoriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В процедуре выполняются команды select, много команд delete, update, suspend, insert в лог,
много вызовов других процедур. Код не мой, побродил немного по нему.
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067121
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nekoriu
Какие проблемы возникают из-за процедуры?
Нет проблем ? Тогда всё хорошо :)

Выше всё написано:
nekoriu
request depth exceeded. (Recursive definition?)
hvlad
1000 активных клонов одного и того же запроса
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067122
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nekoriu
Запускаю 1000 потоков.
Плохая идея.

А сочетании с
nekoriu
Firebird 2.5. Режим Superserver.
- очень плохая идея.
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067125
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nekoriu
В процедуре выполняются команды select, много команд delete, update, suspend, insert в лог,
много вызовов других процедур. Код не мой, побродил немного по нему.

...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067156
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с тыщами коннектов только классик... но и там щастя нет
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067160
nekoriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор1000 активных клонов одного и того же запроса.
У каждого потока свое значение Auso_id.
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067162
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nekoriuчего плохого в коде?

Всё, начиная с идеи отрезать кошке хвост по частям.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067168
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nekoriu
автор1000 активных клонов одного и того же запроса.

У каждого потока свое значение Auso_id.И шо ?
Может прочитать внимательно то, что было уже дважды написано ?
Может задуматься - а зачем мне это пишут, а почему именно это мне пишут ?
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067176
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да ладно вам. Человек тест производительности пишет, а не реальную прогу.

Правда тестирование многопоточного удаления весьма странное занятие.

nekoriu,

я тебе и без твоего теста скажу Superserver 2.5 ничего хорошего в многопоточном тесте не покажет. Хочешь тестировать многопоточность SS тестируй в 3.0 и 4.0.
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067185
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
Человек тест производительности пишет,
для этого есть TPC
http://www.tpc.org/

а человек занимается программистским онанизмом в особо извращенной форме.
...
Рейтинг: 0 / 0
Unsuccessful metadata update при удалении данных
    #40067252
nekoriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Unsuccessful metadata update при удалении данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]