AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.01.2009, 13:38   #21  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Андре Посмотреть сообщение
Не, создать не забыл, а вот в приведенный листинг не включил.
Это был оффтоп-юмор, именно что забыли включить в листинг, то что вы его реально создали и так понятно.

Цитата:
Сообщение от Андре Посмотреть сообщение
При создании индекса статистика не создается даже на индекс. Ее надо собрать.
А вот тут вы не правы! Цитата из ссылки:
Цитата:
However, and here comes the trap, when a function-based index is created, Oracle will now (since 10g) automatically calculate the statistics associated with the index...
Проверка:
Код:
>sqlplus scott/tiger@zvvdb

SQL*Plus: Release 11.1.0.6.0 - Production on Sun Jan 11 12:20:42 2009

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

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> set linesize 125
SQL> Drop Table Mytable
  2  /

Table dropped.

SQL> Create Table Mytable(A Varchar2(30))
  2  /

Table created.

SQL> Insert Into Mytable
  2     Select Object_name
  3       From All_objects
  4      Where Rownum < 11
  5  /

10 rows created.

SQL> Create Index Mytable_fbi On Mytable(Upper(A))
  2  /

Index created.

SQL> Create Index Mytable_ni On Mytable(A)
  2  /

Index created.

SQL> Select Table_name, Num_rows, Last_analyzed
  2    From User_tables
  3   Where Table_name = 'MYTABLE'
  4  /

TABLE_NAME                       NUM_ROWS LAST_ANA
------------------------------ ---------- --------
MYTABLE

SQL> Select Table_name, Column_name, Num_distinct
  2    From User_tab_cols
  3   Where Table_name = 'MYTABLE'
  4  /

TABLE_NAME                     COLUMN_NAME                    NUM_DISTINCT
------------------------------ ------------------------------ ------------
MYTABLE                        A
MYTABLE                        SYS_NC00002$

SQL> Select Table_name, index_name, distinct_keys, num_rows
  2    From User_indexes
  3   Where Table_name = 'MYTABLE'
  4  /

TABLE_NAME                     INDEX_NAME                     DISTINCT_KEYS   NUM_ROWS
------------------------------ ------------------------------ ------------- ----------
MYTABLE                        MYTABLE_NI                                10         10
MYTABLE                        MYTABLE_FBI                               10         10

SQL>
Так что, как видите, начиная с 10-ки статистика на индекс собирается автоматом, и именно об этом пишет автор в приведённой цитате. И именно в этом основной смысл статьи, что на индекс то статистика собралась, но надо не забыть и про hidden columns. До 10-ки действительно не собиралась статистика на индекс автоматом, если не указать compute statistics, и проблемы, соответсвенно, такой не было.
При этом, в документации Оракла есть такая фраза:
Цитата:
After creating a function-based index, collect statistics on both the index and its base table using the DBMS_STATS package. Such statistics will enable Oracle Database to
correctly decide when to use the index.
А по поводу этого:
Цитата:
Сообщение от Андре Посмотреть сообщение
Дык не в том вопрос. dbms_stats.gather_scheme_stats - стандартная периодическая операция выполняемая минимум раз в неделю. Почему именно scheme? Потому что мне лень все таблички перебирать

А если мы уже используем dbms_stats.gather_scheme_stats, то смысл в exec dbms_stats.gather_table_stats пропадает.
Да, это стандартная операция, но, возможно, вы захотите чтоб оптимизатор захотел использовать ваш новый индекс "по-максимуму" до того как запустится "развнедельная" операция. В этой ситуации вам dbms_stats.gather_table_stats очень даже поможет.

И не всё так однозначно с dbms_stats.gather_table/scheme_stats.
Начиная с 10-ки есть, конечно, джоб GATHER_STATS_JOB, который типа делает всё сам.
Но в 9-ке мне приходилось, например, делать сбор статистики по гораздо более сложной схеме, чем "dbms_stats.gather_scheme_stats раз в неделю", потому что на огромных объёмах схемы такая концепция становится крайне непродуктивной. Приходилось разделять как-то таблицы на группы и собирать статистику по частям, какие-то чаще, какие-то реже, ну и т.д.. В зависимости от структуры данных.
А лень таблички перебирать - это только до тех пор, пока полная статистика на схему не начинает день-другой пересобираться.
__________________
Zhirenkov Vitaly

Последний раз редактировалось ZVV; 11.01.2009 в 13:48. Причина: грамматика
За это сообщение автора поблагодарили: Андре (2).
Старый 11.01.2009, 13:41   #22  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от egorych Посмотреть сообщение
А кстати никто не разбирался, родной, Аксаптовский job и пакет "правильно" статистику собирает?
Да, "правильно"...
__________________
Zhirenkov Vitaly
Старый 11.01.2009, 13:53   #23  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
X++:
 ,  ,   10-     ..
Да, действительно. Спасибо.
Теги
ax3.0, oracle

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Установка Dynamics 4.0 под Oracle Paul_ST DAX: Администрирование 6 20.04.2007 16:36
aEremenko: История об установке Microsoft Dynamics Ax 4.0 и Oracle 10G Blog bot DAX Blogs 0 28.10.2006 16:01
переход существующего приложения c MS SQL на ORACLE velk DAX: Администрирование 22 27.07.2006 10:30
Знатокам Oracle listener DAX: Администрирование 1 23.01.2004 10:53
"On MSSQL" or "On Oracle" alpine DAX: Прочие вопросы 5 19.03.2002 11:38

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:58.