Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
васечкин
Guest
Собираю статистику по таблице с помощью DBMS_STATS.GATHER_TABLE_STATS.
После того как процедура отрабатывает успешно, значение в last_analyzed по той таблице,
по которой собиралась статистика, не обновляется.
Почему так?
SQL*Plus: Release 11.2.0.3.0 Production on Mon Jun 16 19:50:48 2014

Copyright (c) 1982, 2011, Oracle. All rights reserved.


Connected to:
Oracle Database 11g Release 11.2.0.3.0 - 64bit Production

SQL> exec DBMS_STATS.GATHER_TABLE_STATS (ownname=>'VASYA', tabname=>'CODES');

PL/SQL procedure successfully completed.

SQL> exec DBMS_STATS.GATHER_TABLE_STATS (ownname=>'VASYA', tabname=>'DEAL');

PL/SQL procedure successfully completed.

SQL> select table_name, last_analyzed from dba_tables where lower(table_name)='deal';

TABLE_NAME LAST_ANAL
------------------------------ ---------
A_DEALOPS 27-AUG-13

SQL> select table_name, last_analyzed from dba_tables where lower(table_name)='codes';

TABLE_NAME LAST_ANAL
------------------------------ ---------
C_CODES 16-JUN-14
18 июн 14, 12:02    [16181096]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
dba123
Member

Откуда:
Сообщений: 1054
васечкин,

+ dba_tab_partitions, dba_ind_partitions, dba_indexes,DBA_PART_COL_STATISTICS,dba_tab_columns
18 июн 14, 12:10    [16181189]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
васечкин
Guest
dba123
васечкин,

+ dba_tab_partitions, dba_ind_partitions, dba_indexes,DBA_PART_COL_STATISTICS,dba_tab_columns


dba_tab_columns показывает, что статистика по таблице 16 июня не собиралась, хотя это не так.

секционирование не используется, так как версия SE One.
18 июн 14, 12:15    [16181238]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
dba123
Member

Откуда:
Сообщений: 1054
васечкин,

Создайте в своей схеме таблицу T, соберите статистику и покажите что last_analyzed не меняется
18 июн 14, 12:25    [16181347]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
xtender
Member

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

PUBLISH=false? тогда publish_pending_stats
18 июн 14, 12:29    [16181385]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
васечкин
SQL> select table_name, last_analyzed from dba_tables where lower(table_name)='deal';

TABLE_NAME LAST_ANAL
------------------------------ ---------
A_DEALOPS 27-AUG-13
это как это? :)
18 июн 14, 12:30    [16181397]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
васечкин
Guest
dba123
васечкин,

Создайте в своей схеме таблицу T, соберите статистику и покажите что last_analyzed не меняется


статистика не меняется только по определённой существующей таблице.

если создать новую таблицу и собрать по ней статистику, то всё отработает.
18 июн 14, 12:40    [16181466]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
васечкин
Guest
xtender
васечкин
SQL> select table_name, last_analyzed from dba_tables where lower(table_name)='deal';

TABLE_NAME LAST_ANAL
------------------------------ ---------
A_DEALOPS 27-AUG-13
это как это? :)

а это я описался на форуме. имя таблицы a_dealops и c_codes.
18 июн 14, 12:40    [16181472]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
васечкин
Guest
xtender
васечкин,

PUBLISH=false? тогда publish_pending_stats


SQL*Plus: Release 11.2.0.3.0 Production on Wed Jun 18 12:46:34 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Release 11.2.0.3.0 - 64bit Production

SQL> select name, isspecified from v$spparameter sp where SP.NAME like '%pending%';

NAME
--------------------------------------------------------------------------------
ISSPEC
------
optimizer_use_pending_statistics
FALSE
18 июн 14, 12:47    [16181520]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
васечкин
Guest
xtender
васечкин,

PUBLISH=false? тогда publish_pending_stats


SQL> SELECT DBMS_STATS.get_prefs('PUBLISH') FROM dual;

DBMS_STATS.GET_PREFS('PUBLISH')
--------------------------------------------------------------------------------
TRUE
18 июн 14, 12:54    [16181574]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
васечкин
Guest
отработало...
у меня вопрос: что нужно поменять, чтобы статистика автоматом обновлялась по таблице?
чтобы не приходилось каждый раз выполнять EXEC DBMS_STATS.publish_pending_stats.



SQL> EXEC DBMS_STATS.publish_pending_stats('VASYA','A_DEALOPS');

PL/SQL procedure successfully completed.

SQL> select table_name, last_analyzed from dba_tables where lower(table_name)='a_dealops';

TABLE_NAME                     LAST_ANAL
------------------------------ ---------
A_DEALOPS                      16-JUN-14
18 июн 14, 12:58    [16181598]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
xtender
Member

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

так ты смотри префсы именно таблицы. точнее просто измени
18 июн 14, 13:05    [16181666]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
xtender
Member

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

select * 
from dba_tab_stat_prefs 
where preference_name='PUBLISH' and upper(preference_value)='FALSE'
order by 1,2,3
18 июн 14, 13:06    [16181687]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
dba123
Member

Откуда:
Сообщений: 1054
васечкин,

Экспорт статистики для этой таблицы сделай на всякий случай, если база промышленная.
18 июн 14, 13:19    [16181812]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
dba123
васечкин,

Экспорт статистики для этой таблицы сделай на всякий случай, если база промышленная.
по умолчанию старая сохраняется, насколько помню 30 дней - проверить лучше в доке. Так что можно просто восстановить
18 июн 14, 13:24    [16181862]     Ответить | Цитировать Сообщить модератору
 Re: После сбора статистики по таблице не обновляется last_analyzed в dba_objects.  [new]
васечкин
Guest
большое всем спасибо!
18 июн 14, 13:27    [16181890]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить