Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Посмотреть содержимое темпоральных таблиц, возможно?  [new]
medoed
Member

Откуда:
Сообщений: 876
Приветствую, товарищи!
Назрел возможно глупый вопрос, есть темпоральные таблицы в запросе:
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]     Ответить | Цитировать Сообщить модератору
 Re: Посмотреть содержимое темпоральных таблиц, возможно?  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4882
medoed,

Добрый день.

Описание полей временных таблиц с привязкой к сессии можно получить из SYSIBMADM.ADMINTEMPCOLUMNS.
Содержимое временных таблиц в своей сессии можно, естественно, получить запросами.
Сожержимое временных таблиц чужих сессиях - нет.

Кое-какую количественную информацию (в т.ч. размер, кол-во вставленных/удаленных/измененных записей) вы можете получить на сервере командой:
db2pd -db mydb -tcbstats nocatalog file=myfile.txt
Но там нет привязки временных таблиц к сессиям, т.е., если временных таблиц с одним и тем же именем много, то неполнятно будет, какая из них какой сессии принадлежит.
20 май 15, 16:46    [17667740]     Ответить | Цитировать Сообщить модератору
 Re: Посмотреть содержимое темпоральных таблиц, возможно?  [new]
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]     Ответить | Цитировать Сообщить модератору
 Re: Посмотреть содержимое темпоральных таблиц, возможно?  [new]
medoed
Member

Откуда:
Сообщений: 876
Mark Barinstein
medoed,

Добрый день.

Описание полей временных таблиц с привязкой к сессии можно получить из SYSIBMADM.ADMINTEMPCOLUMNS.
Содержимое временных таблиц в своей сессии можно, естественно, получить запросами.
Сожержимое временных таблиц чужих сессиях - нет.

Кое-какую количественную информацию (в т.ч. размер, кол-во вставленных/удаленных/измененных записей) вы можете получить на сервере командой:
db2pd -db mydb -tcbstats nocatalog file=myfile.txt
Но там нет привязки временных таблиц к сессиям, т.е., если временных таблиц с одним и тем же именем много, то неполнятно будет, какая из них какой сессии принадлежит.

Марк, сессия к сожалению чужая. Я админ и скрипт в это время один выполняется на всей базе (таблиц с таким именем будет немного). Мне бы количество записей посмотреть по чужим сессионным таблицам, но SQL запросом как то можно?
20 май 15, 16:56    [17667797]     Ответить | Цитировать Сообщить модератору
 Re: Посмотреть содержимое темпоральных таблиц, возможно?  [new]
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]     Ответить | Цитировать Сообщить модератору
 Re: Посмотреть содержимое темпоральных таблиц, возможно?  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4882
medoed
Я админ и скрипт в это время один выполняется на всей базе (таблиц с таким именем будет немного). Мне бы количество записей посмотреть по чужим сессионным таблицам, но SQL запросом как то можно?

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]     Ответить | Цитировать Сообщить модератору
 Re: Посмотреть содержимое темпоральных таблиц, возможно?  [new]
medoed
Member

Откуда:
Сообщений: 876
Mark Barinstein
medoed
Я админ и скрипт в это время один выполняется на всей базе (таблиц с таким именем будет немного). Мне бы количество записей посмотреть по чужим сессионным таблицам, но SQL запросом как то можно?

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:28    [17667967]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить