powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Процедура медленнее, чем просто SQL?
6 сообщений из 6, страница 1 из 1
Процедура медленнее, чем просто SQL?
    #34076147
kmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрев на количество сетевого трафика и прикинув % системных ресурсов, уходящий на обработку TCP/IP, переконвертацию EBCDIC<->ASCII, решил протестировать, будет ли полегче, если запихать в процедуру.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE PROCEDURE doone( IN in_tid integer, IN  in_bid INTEGER, IN  in_aid INTEGER, IN  in_delta integer )     LANGUAGE SQL
BEGIN atomic
	 UPDATE accounts SET     Abalance = Abalance + in_delta WHERE   Aid = in_aid;
	 UPDATE tellers SET    Tbalance = Tbalance + in_delta WHERE  Tid = in_tid;
	 UPDATE branches SET    Bbalance = Bbalance + in_delta WHERE  Bid = in_bid;
	 INSERT INTO history(Tid, Bid, Aid, delta) VALUES (in_tid,in_bid,in_aid,in_delta);
END
Получил замедление на 15%. Что я делаю не так?
...
Рейтинг: 0 / 0
Процедура медленнее, чем просто SQL?
    #34076555
poiuytr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как измерял замедление?
...
Рейтинг: 0 / 0
Процедура медленнее, чем просто SQL?
    #34076576
kmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дёргал 10тыс раз процедуру и тот же набор в просто SQL..
...
Рейтинг: 0 / 0
Процедура медленнее, чем просто SQL?
    #34077463
warIord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на 7-ке этот параметр экземпляра сервера называется KEEPDARI, на старших версиях не знаю, индикатор сохранения процессов вызова пакетов, установив в YES увеличиваем скорость 'отработки' хп на потоковых вызовах (как в вашем тесте) в разы, поскольку манагер не тратит время на переразмещение процесса хп при каждом ее вызове.
...
Рейтинг: 0 / 0
Процедура медленнее, чем просто SQL?
    #34077663
kmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это, видимо, KEEPFENCED в 8/9? Оно стоит в YES, но я как-то думал, что SQL-ные процедуры отрабатываются прямо в агенте...
...
Рейтинг: 0 / 0
Процедура медленнее, чем просто SQL?
    #34092553
kmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажется, перемудрили чего-то...
Без процедуры:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Counted RETIRED_INSNS events (Retired instructions (includes exceptions, interrupts, resyncs)) with a unit mask of 0x00 (No unit mask) count  1000000 
samples  %        image name               app name                 symbol name
 719         1 . 7853   libdb2e.so. 1              libdb2e.so. 1              sqloxltc_track(sqlo_xlatch*, char const*, unsigned int, SQLO_LT_VALUES)
 537         1 . 3334   libdb2e.so. 1              libdb2e.so. 1              sqlplrq(sqle_agent_privatecb*, SQLP_LOCK_INFO*)
 523         1 . 2986   libdb2e.so. 1              libdb2e.so. 1              .plt
 503         1 . 2489   libdb2e.so. 1              libdb2e.so. 1              sqkfDynamicResourceMgr<sqkfChannel>::RollupStats()
 491         1 . 2191   libdb2e.so. 1              libdb2e.so. 1              sqkfDynamicResourceMgr<sqkfBuffer>::RollupStats()
 482         1 . 1968   libdb2e.so. 1              libdb2e.so. 1              sqlbfix(SQLB_FIX_CB*)
 477         1 . 1844   libdb2e.so. 1              libdb2e.so. 1              stmmPCgetCRC(unsigned char const*, unsigned int)

С использованием процедуры:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Counted RETIRED_INSNS events (Retired instructions (includes exceptions, interrupts, resyncs)) with a unit mask of 0x00 (No unit mask) count  1000000 
samples  %        image name               app name                 symbol name
 1910        3 . 3138   libdb2e.so. 1              libdb2e.so. 1              sqlogmblkEx
 1485        2 . 5764   libdb2e.so. 1              libdb2e.so. 1              sqloMemGetFileBaseName
 1266        2 . 1965   libdb2e.so. 1              libdb2e.so. 1              sqlnq_memPool::init()
 1048        1 . 8182   libdb2e.so. 1              libdb2e.so. 1              SMemPool::MemTreePut(SMemNode*, unsigned int, SqloChunkSubgroup*)
 988         1 . 7141   libdb2e.so. 1              libdb2e.so. 1              SMemPool::MemTreeGet(unsigned int, unsigned int, void**, SqloChunkSubgroup**, SMemLostNode
**)
 976         1 . 6933   libdb2e.so. 1              libdb2e.so. 1              .plt
 731         1 . 2683   libdb2e.so. 1              libdb2e.so. 1              SMemPool::allocateMemoryBlock(unsigned int, unsigned int, unsigned int, unsigned int, unsi
gned int, void**, SqloChunkSubgroup**, SMemLostNode**, SMemLogEvent*)
 720         1 . 2492   libdb2e.so. 1              libdb2e.so. 1              sqloxltc_track(sqlo_xlatch*, char const*, unsigned int, SQLO_LT_VALUES)
 688         1 . 1937   libdb2e.so. 1              libdb2e.so. 1              sqlofmblkEx
Или может у меня как-то супер-криво настроена БД?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Процедура медленнее, чем просто SQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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