Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / IBM DB2, WebSphere, IMS, U2, etc |
![]() ![]() |
medoed Member Откуда: Сообщений: 954 |
Приветствую, товарищи! Назрел возможно глупый вопрос, есть темпоральные таблицы в запросе: from SESSION.JOURNAL t join SESSION.DETAIL t0 on t.id=t0.ID_JOURNAL Сама она создается примерно так: DECLARE GLOBAL TEMPORARY TABLE SESSION.JOURNAL (ID NOT NULL) WITH REPLACE ON COMMIT DELETE ROWS NOT LOGGED; Понятно что в запросе темпоральные таблицы вяжутся с другими, а как посмотреть их содержимое налету, чтобы оценить кол-во записей, понять состав? В MSSQL я мог в студии увидеть содержание #t темповых таблиц, а тут как? Буду рад советам и рекомендациям, спасибо! P.S> DB2 9.7 Windows |
20 май 15, 15:53 [17667416] Ответить | Цитировать Сообщить модератору |
Mark Barinstein Member Откуда: Москва Сообщений: 4968 |
medoed, Добрый день. Описание полей временных таблиц с привязкой к сессии можно получить из SYSIBMADM.ADMINTEMPCOLUMNS. Содержимое временных таблиц в своей сессии можно, естественно, получить запросами. Сожержимое временных таблиц чужих сессиях - нет. Кое-какую количественную информацию (в т.ч. размер, кол-во вставленных/удаленных/измененных записей) вы можете получить на сервере командой: db2pd -db mydb -tcbstats nocatalog file=myfile.txtНо там нет привязки временных таблиц к сессиям, т.е., если временных таблиц с одним и тем же именем много, то неполнятно будет, какая из них какой сессии принадлежит. |
20 май 15, 16:46 [17667740] Ответить | Цитировать Сообщить модератору |
knudsen Member Откуда: Москва Сообщений: 311 |
medoed,
AUTOCOMMIT OFF
CREATE GLOBAL TEMPORARY TABLE TEMP13 (TMP1 CHAR(3) NOT NULL, TMP2 VARCHAR(24) NOT NULL); COMMIT; insert into TEMP13 VALUES('WWW','RRRRRRRRRRRRRRRR'); SELECT * FROM TEMP13; COMMIT; SELECT * FROM TEMP13; DROP TABLE TEMP13; COMMIT; в первом SELECTе будет записть, а вот уже во втором - шиш |
20 май 15, 16:47 [17667747] Ответить | Цитировать Сообщить модератору |
medoed Member Откуда: Сообщений: 954 |
Марк, сессия к сожалению чужая. Я админ и скрипт в это время один выполняется на всей базе (таблиц с таким именем будет немного). Мне бы количество записей посмотреть по чужим сессионным таблицам, но SQL запросом как то можно? |
||
20 май 15, 16:56 [17667797] Ответить | Цитировать Сообщить модератору |
knudsen Member Откуда: Москва Сообщений: 311 |
medoed, А можно монитор напустить на пользователей (только места жрёт очень) типа так: CREATE EVENT MONITOR STMT_IBMUSER FOR STATEMENTS WHERE AUTH_ID='USERTST' WRITE TO TABLE CONNHEADER (TABLE USERTST.STMT_IBMUSER_CONN IN USERSPACE1) , STMT (TABLE USERTST.STMT_IBMUSER_STMT IN USERSPACE1 ); SET EVENT MONITOR STMT_IBMUSER STATE 1; CREATE GLOBAL TEMPORARY TABLE TEMP13 (TMP1 CHAR(3) NOT NULL, TMP2 VARCHAR(36) NOT NULL); insert into TEMP13 VALUES('WWW','RRRRRRRRRRRRRRRR'); select ROWS_READ , ROWS_WRITTEN from "USERTST"."STMT_IBMUSER_STMT" WHERE "STMT_TEXT" like '%insert%'; DROP TABLE TEMP13; |
20 май 15, 17:07 [17667852] Ответить | Цитировать Сообщить модератору |
Mark Barinstein Member Откуда: Москва Сообщений: 4968 |
select m.TABNAME, m.ROWS_READ, m.ROWS_INSERTED, m.ROWS_UPDATED, m.ROWS_DELETED from table (values 'JOURNAL', 'DETAIL') t(tabname) , table(mon_get_table('SESSION', t.tabname, -1)) m |
||
20 май 15, 17:07 [17667853] Ответить | Цитировать Сообщить модератору |
medoed Member Откуда: Сообщений: 954 |
Отвечу кратко -зачед! ![]() |
||||
20 май 15, 17:28 [17667967] Ответить | Цитировать Сообщить модератору |
Все форумы / IBM DB2, WebSphere, IMS, U2, etc | ![]() |