Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / не убивается extended-статистика по столбцам, где есть функциональный индекс / 6 сообщений из 6, страница 1 из 1
28.10.2016, 11:10
    #39336023
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не убивается extended-статистика по столбцам, где есть функциональный индекс
Народ, 12-й оракл собрал extended статистику по полю, где есть индекс. Мне нужно эту статистику убить. Использую SYS.DBMS_STATS.DROP_EXTENDED_STATS. При попытке удаления получаю exception, что примечательно 20000.

Код: plaintext
1.
2.
3.
ORA-20000: extension "(DECODE("IS_ACTIVE",'Y','Y',NULL))" is not droppable
ORA-06512: at "SYS.DBMS_STATS", line 47207
ORA-06512: at line 4

кто-нибудь сталкивался с такой проблемой?
...
Рейтинг: 0 / 0
28.10.2016, 11:19
    #39336034
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не убивается extended-статистика по столбцам, где есть функциональный индекс
можно конечно убивать индекс, но как-то хотелось написать скрипт, а так он будет усложнён - бэкапить ddl индекса, сносить статистику, восстанавливать его. В общем жесть.
...
Рейтинг: 0 / 0
28.10.2016, 12:56
    #39336158
SeaGate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не убивается extended-статистика по столбцам, где есть функциональный индекс
Shtock,

Как на счет delete_column_stats для виртуальной колонки индекса?

Код: plsql
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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
SQL> create table t(is_active)
  2  as
  3  select decode(mod(object_id,2), 0, 'Y', 'N')
  4    from dba_objects
  5  /
SQL> 
SQL> create index t_i on t(decode(is_active, 'Y', 'Y', null));
SQL> 
SQL> exec dbms_stats.gather_table_stats( '', 't', method_opt=> q'#for columns (DECODE("IS_ACTIVE",'Y','Y',NULL))#')
SQL> 
SQL> -- exec dbms_stats.drop_extended_stats( '', 't', q'#(DECODE("IS_ACTIVE",'Y','Y',NULL))#')
SQL> 
SQL> col table_name for a10
SQL> col extension_name for a40
SQL> col extension like extension_name
SQL> 
SQL> select *
  2    from user_stat_extensions
  3   where table_name = 'T';


TABLE_NAME EXTENSION_NAME                           EXTENSION                                CREATOR            DROPPABLE
---------- ---------------------------------------- ---------------------------------------- ------------------ ---------
T          SYS_NC00002$                             (DECODE("IS_ACTIVE",'Y','Y',NULL))       SYSTEM             NO
SQL> 
SQL> explain plan for select * from t where decode(is_active,'Y', 'Y',null)='Y';
SQL> 
SQL> select * from table(dbms_xplan.display);


PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------
Plan hash value: 2153619298

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      | 48805 |   190K|    48   (7)| 00:00:01 |
|*  1 |  TABLE ACCESS FULL| T    | 48805 |   190K|    48   (7)| 00:00:01 |
--------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter(DECODE("IS_ACTIVE",'Y','Y',NULL)='Y')

Note
-----
   - automatic DOP: Computed Degree of Parallelism is 1 because of parallel threshold
SQL> 
SQL> exec dbms_stats.delete_column_stats( '', 'T', q'#SYS_NC00002$#')
SQL> 
SQL> explain plan for select * from t where decode(is_active, 'Y', 'Y',null)='Y';
SQL> 
SQL> select * from table(dbms_xplan.display);


PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------
Plan hash value: 2858887366

--------------------------------------------------------------------------------------------
| Id  | Operation                           | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                    |      |   975 |  3900 |    44   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID BATCHED| T    |   975 |  3900 |    44   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN                  | T_I  |   390 |       |    89   (0)| 00:00:01 |
--------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access(DECODE("IS_ACTIVE",'Y','Y',NULL)='Y')

Note
-----
   - automatic DOP: Computed Degree of Parallelism is 1 because of parallel threshold



Shtockкто-нибудь сталкивался с такой проблемой?
На мой взгляд, ошибка нормальна. Флаг FORCE бы еще добавили в DROP_EXTENDED_STATS разве что.
...
Рейтинг: 0 / 0
28.10.2016, 14:23
    #39336262
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не убивается extended-статистика по столбцам, где есть функциональный индекс
Без удаления индекса всё равно не получается, а если расширенная статистика не дропнута, то есть виртуальные колонки. А раз есть виртуальные колонки то при попытке изменения родительских валятся exception.
...
Рейтинг: 0 / 0
28.10.2016, 14:30
    #39336277
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не убивается extended-статистика по столбцам, где есть функциональный индекс
ShtockБез удаления индекса всё равно не получается, а если расширенная статистика не дропнута, то есть виртуальные колонки. А раз есть виртуальные колонки то при попытке изменения родительских валятся exception.Виртуальные столбцы есть и от функционального индекса.
...
Рейтинг: 0 / 0
28.10.2016, 14:51
    #39336304
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не убивается extended-статистика по столбцам, где есть функциональный индекс
Что-то затупил. Ведь при удалении индекса расширенная статистика сама сносится.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / не убивается extended-статистика по столбцам, где есть функциональный индекс / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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