Показать сообщение отдельно
Старый 11.01.2009, 09:00   #3  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Сообщение от ZVV Посмотреть сообщение
забыли создать индекс
Не, создать не забыл, а вот в приведенный листинг не включил.

X++:
create index pf_i on pink_floyd(upper(table_name));
Если бы индекс не создал - вот этого не было бы:

X++:
demas@ORCL> select column_name, num_distinct, hidden_column, virtual_column from dba_tab_cols where 
table_name='PINK_FLOYD';

COLUMN_NAME                    NUM_DISTINCT HID VIR
------------------------------ ------------ --- ---
TABLE_NAME                                  NO  NO
SYS_NC00002$                                YES YES
Цитата:
Сообщение от ZVV Посмотреть сообщение
Да нет, суть поста немножко не в этом, как я понял. Скорее в основном он в том, чтоб знать о том, что статистика на эти спрятанные колонки должна быть собрана. Ну и в том, что она не собирается автоматом когда вы создаёте индекс (FBI), а при этом создаётся только статистика на сам индекс.
При создании индекса статистика не создается даже на индекс. Ее надо собрать.

Цитата:
Сообщение от ZVV Посмотреть сообщение
А dbms_stats.gather_table_stats собирает статистику на эти колонки так же хорошо, как и dbms_stats.gather_scheme_stats - проверьте сами.
Дык не в том вопрос. dbms_stats.gather_scheme_stats - стандартная периодическая операция выполняемая минимум раз в неделю. Почему именно scheme? Потому что мне лень все таблички перебирать

А если мы уже используем dbms_stats.gather_scheme_stats, то смысл в exec dbms_stats.gather_table_stats пропадает.
За это сообщение автора поблагодарили: mazzy (2).