Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Данные в snaptab / 15 сообщений из 15, страница 1 из 1
16.03.2011, 10:21
    #37166986
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
Смотрю данные по активности использования таблиц и не понимаю: через get snapshot for tables данные по таблицам вижу, а в административном вью snaptab некоторых таблиц нет. Даже эксперимент провел - деактивировал базу, потом снова запустил и прочитал неск. таблиц - get snapshot данные по прочитанным таблицам выводит, а в snaptab их нету. Почему так может быть?
...
Рейтинг: 0 / 0
16.03.2011, 11:29
    #37167152
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
Andron,

1. Какая версия DB2?
2. Что выдают:
Код: plaintext
1.
db2 get monitor switches | grep TABLE
db2 get dbm cfg | grep TABLE
3. Я правильно понял, что, выполнив:
Код: plaintext
select * from MY_SCHEMA.MY_TABLE fetch first  1  row only
вы не видите результатов в:
Код: plaintext
select * from sysibmadm.snaptab where tabschema='MY_SCHEMA' and tabname='MY_TABLE'
?
...
Рейтинг: 0 / 0
16.03.2011, 11:42
    #37167190
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
1. Версия db2 v9.7.0.2

2. Переключатель для базы (включен для текущей сессии из которой и выполняю все запросы) Table Activity Information (TABLE) = ON 16.03.2011 10:09:26.339657
для инстанса выключен Table (DFT_MON_TABLE) = OFF

3. Да, результатов после того как таблица прочитана в snaptab нету, то же самое если смотреть через функцию snap_get_tab. Но в snaptab есть данные для других таблиц. Причем если например сделать удаление данных из тестовой таблицы то она появляется в snaptab, rows_written не 0, зато значение rows_reads у нее 0 несмотря на то что перед удалением данные выбирались из нее.
...
Рейтинг: 0 / 0
16.03.2011, 18:12
    #37168483
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
Andron1. Версия db2 v9.7.0.2

2. Переключатель для базы (включен для текущей сессии из которой и выполняю все запросы) Table Activity Information (TABLE) = ON 16.03.2011 10:09:26.339657
для инстанса выключен Table (DFT_MON_TABLE) = OFF

3. Да, результатов после того как таблица прочитана в snaptab нету, то же самое если смотреть через функцию snap_get_tab. Но в snaptab есть данные для других таблиц. Причем если например сделать удаление данных из тестовой таблицы то она появляется в snaptab, rows_written не 0, зато значение rows_reads у нее 0 несмотря на то что перед удалением данные выбирались из нее.Все эти sysibmadm.snap* и sysproc.snap* реагируют на соответствующие DFT_MON_* параметры инстанса.
Если параметр выключен, информация для показателей, от него зависящих, не собирается.
get snapshot реагирует на переключатели монитора, установленные в сессии.
Эти сессионные переключатели получают первоначальные значения от соотв. параметров инстанса и потом могут быть изменены командами update monitor switches, а не update dbm cfg.

Сделайте:
Код: plaintext
update dbm cfg using DFT_MON_TABLE ON immediate
и будет у вас эта таблица в выводе.
...
Рейтинг: 0 / 0
18.03.2011, 08:39
    #37171369
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
[quot Mark Barinstein]Andron...
Сделайте:
Код: plaintext
update dbm cfg using DFT_MON_TABLE ON immediate
и будет у вас эта таблица в выводе.

Я уже так делал, включал DFT_MON_TABLE, потом включал в базе - не показывает данные по ROWS_READ все равно. Данные появляются только если сделан update или delete и только в столбце rows_written, rows_read остается равным 0 после нескольких выборок из таблицы.
...
Рейтинг: 0 / 0
18.03.2011, 11:13
    #37171630
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
[quot Andron]Mark Barinsteinпропущено...


Я уже так делал, включал DFT_MON_TABLE, потом включал в базе - не показывает данные по ROWS_READ все равно. Данные появляются только если сделан update или delete и только в столбце rows_written, rows_read остается равным 0 после нескольких выборок из таблицы.И после переустановки соединения с базой тоже?
В 9.7 можно также (и это более предпочтительно):
Код: plaintext
select rows_read from table( mon_get_table ('MY_SCHEMA', 'MY_TABLE', -1))
...
Рейтинг: 0 / 0
18.03.2011, 14:09
    #37172222
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
Mark Barinstein,

если использовать mon_get_table то row_reads показывает :)

И все же получается что имеет место баг с view snaptab?
...
Рейтинг: 0 / 0
18.03.2011, 14:41
    #37172297
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
AndronИ все же получается что имеет место баг с view snaptab?У меня на 9.7.3 это не воспроизводится.
Что это за 9.7.0.2 версия у вас?
Что db2level выдаёт?
...
Рейтинг: 0 / 0
18.03.2011, 14:44
    #37172302
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
DB21085I Instance "db2inst1" uses "32" bits and DB2 code release "SQL09072"
with level identifier "08030107".
Informational tokens are "DB2 v9.7.0.2", "s100514", "IP23088", and Fix Pack
"2".
Product is installed at "/opt/ibm/db2/V9.7".
...
Рейтинг: 0 / 0
21.03.2011, 11:19
    #37174948
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
Теперь разбираюсь с mon_get_table, тут как выясняется тоже не все гладко:

db2 => select varchar(tabname, 20) as tabname, rows_read, table_scans from table(mon_get_table('DB2INST1', '', -1))

TABNAME ROWS_READ TABLE_SCANS
-------------------- -------------------- --------------------

0 record(s) selected.

db2 => select count(*) from employee

1
-----------
42

1 record(s) selected.

db2 => select varchar(tabname, 20) as tabname, rows_read, table_scans from table(mon_get_table('DB2INST1', '', -1))

TABNAME ROWS_READ TABLE_SCANS
-------------------- -------------------- --------------------
EMPLOYEE 0 0

1 record(s) selected.

db2 =>



Как видим несмотря на то что была выборка из employee, данные мониторинга об этом ничего не говорят.

Зато если сделать такой запрос:

db2 => select count (*) from staff

1
-----------
35

1 record(s) selected.

db2 => select varchar(tabname, 20) as tabname, rows_read, table_scans from table(mon_get_table('DB2INST1', '', -1))

TABNAME ROWS_READ TABLE_SCANS
-------------------- -------------------- --------------------
EMPLOYEE 0 0
STAFF 35 1

2 record(s) selected.



Как видим для таблицы staff мониторинг возвращает данные а для employee нет. Почему? Таблицы вроде обычные, из учебной схемы. Я бы списал все на какой нибудь кэш, где данные "застревают" но почему так избирательно?
...
Рейтинг: 0 / 0
21.03.2011, 12:04
    #37175053
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
AndronКак видим для таблицы staff мониторинг возвращает данные а для employee нет. Почему? Таблицы вроде обычные, из учебной схемы. Я бы списал все на какой нибудь кэш, где данные "застревают" но почему так избирательно?Может зависеть плана запроса.
Если план - index access only, то rows_read не будет увеличиваться.
У меня при select count(*) from employee именно index access only.
Access plan
Код: plaintext
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.
Original Statement:
------------------
select count(*) 
from employee


Optimized Statement:
-------------------
SELECT Q3.$C0 
FROM 
   (SELECT COUNT(*) 
   FROM 
      (SELECT $RID$ 
      FROM BARIN_M.EMPLOYEE AS Q1) AS Q2) AS Q3

Access Plan:
-----------
	Total Cost: 		0,0487617
	Query Degree:		1

        Rows 
       RETURN
       (   1)
        Cost 
         I/O 
         |
          1 
       GRPBY 
       (   2)
      0,0484113 
          0 
         |
         42 
       IXSCAN
       (   3)
      0,0441799 
          0 
         |
         42 
 INDEX:    BARIN_M 
        XEMP2
         Q1
...
Рейтинг: 0 / 0
21.03.2011, 12:08
    #37175067
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
Сравните с:
select count(*) from staff
Код: plaintext
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.
Original Statement:
------------------
select count(*) 
from staff


Optimized Statement:
-------------------
SELECT Q3.$C0 
FROM 
   (SELECT COUNT(*) 
   FROM 
      (SELECT $RID$ 
      FROM BARIN_M.STAFF AS Q1) AS Q2) AS Q3

Access Plan:
-----------
	Total Cost: 		7,60821
	Query Degree:		1

        Rows 
       RETURN
       (   1)
        Cost 
         I/O 
         |
          1 
       GRPBY 
       (   2)
       7,60786 
          1 
         |
         35 
        TBSCAN 
       (   3)
       7,60432 
          1 
         |
         35 
  TABLE :    BARIN_M 
        STAFF
         Q1
...
Рейтинг: 0 / 0
21.03.2011, 12:38
    #37175156
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
Действительно, если посмотреть в mon_get_index то для индекса XEMP2 у таблицы employee есть сканы, а у таблицы staff индексных сканирований нет. Спасибо, Марк!
...
Рейтинг: 0 / 0
22.03.2011, 09:10
    #37176572
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
А как сбросить данные мониторинга, которые я получаю через функции, например mon_get_tab ? Reset monitor не сбрасывает.
...
Рейтинг: 0 / 0
22.03.2011, 11:12
    #37176769
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные в snaptab
AndronА как сбросить данные мониторинга, которые я получаю через функции, например mon_get_tab ? Reset monitor не сбрасывает.Эти показатели для функций mon_* реагируют на соотв. параметры mon_* БД.
Код: plaintext
db2 get db cfg for  my_dbname | grep -i mon_
По каждому показателю в доке есть информация, при каком именно включённом параметре () информация начинает собираться.

Например, pool_data_l_reads :
В 'Table 1. Table Function Monitoring Information' (это для функций mon_*) для ф-ции MON_GET_BUFFERPOOL указано, что оно собирается, если параметр DATA OBJECT METRICS (MON_OBJ_METRICS) установлен в BASE.
Для ф-ции MON_GET_UNIT_OF_WORK этот же самый счётчик будет собираться, если параметр REQUEST METRICS (MON_REQ_METRICS) установлен в BASE.
Т.е. чтобы сбросить такой счётчик, надо выключить и включить (хотя бы в BASE) соотв. параметр БД.

Для rows_read написано, что для MON_GET_TABLE оно собирается всегда, т.е. вне зависимости от установленных параметров.
Т.е. чтобы сбросить такой счётчик, надо реактивировать БД (выгнать из неё всех, а потом пустить).
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Данные в snaptab / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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