powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DDL триггер
16 сообщений из 41, страница 2 из 2
DDL триггер
    #40134433
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serpv

"create any index" для создания в своей схеме не нужна.


Понял.

Остался вопрос от имени/правами кого запускается DBMS_SCHEDULER.CREATE_JOB - владельца схемы с триггером, юзера исполняющего команду DDL или кого-то другого?
...
Рейтинг: 0 / 0
DDL триггер
    #40134440
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist
serpv

"create any index" для создания в своей схеме не нужна.


Понял.

Остался вопрос от имени/правами кого запускается DBMS_SCHEDULER.CREATE_JOB - владельца схемы с триггером, юзера исполняющего команду DDL или кого-то другого?

Код: plsql
1.
2.
3.
select OWNER,JOB_NAME,JOB_CREATOR
  from dba_scheduler_jobs
 where job_name='<your job name here>';


И
https://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse002.htm#CHDEAHCA You can create a job in another schema by specifying schema.job_name. The creator of a job is, therefore, not necessarily the job owner. The job owner is the user in whose schema the job is created. Jobs are executed with the privileges of the schema in which the job is created.
...
Рейтинг: 0 / 0
DDL триггер
    #40134465
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asmodeus

https://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse002.htm#CHDEAHCA You can create a job in another schema by specifying schema.job_name. The creator of a job is, therefore, not necessarily the job owner. The job owner is the user in whose schema the job is created. Jobs are executed with the privileges of the schema in which the job is created.


Отлично, спасибо.

Продолжаю.

Из под System (у которого grant create any trigger to system/MYUSER) пытаюсь создать DDL триггер в схеме MYUSER

Код: plsql
1.
2.
3.
4.
CREATE OR REPLACE
  TRIGGER MYUSER.MYUSER_CREATE_TABLE_INDEX_TRG
    AFTER CREATE
    ON DATABASE



получаю ошибку:
авторORA-01031: привилегий недостаточно
01031. 00000 - "insufficient privileges"

каких прав не хватает system или есть ограничение на создание ON DATABASE в юзеровских схемах??
...
Рейтинг: 0 / 0
DDL триггер
    #40134470
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist

Из под System (у которого grant create any trigger to system/MYUSER) пытаюсь создать DDL триггер в схеме MYUSER

Код: plsql
1.
2.
3.
4.
CREATE OR REPLACE
  TRIGGER MYUSER.MYUSER_CREATE_TABLE_INDEX_TRG
    AFTER CREATE
    ON DATABASE



получаю ошибку:
авторORA-01031: привилегий недостаточно
01031. 00000 - "insufficient privileges"


каких прав не хватает system или есть ограничение на создание ON DATABASE в юзеровских схемах??
https://docs.oracle.com/cd/E18283_01/server.112/e17118/statements_7004.htm In addition to the preceding privileges, to create a trigger on DATABASE, you must have the ADMINISTER DATABASE TRIGGER system privilege.
Данная привилегия должна быть не только у создателя триггера, но и у (будущего) владельца.
...
Рейтинг: 0 / 0
DDL триггер
    #40134478
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asmodeus
PaulWist

Из под System (у которого grant create any trigger to system/MYUSER) пытаюсь создать DDL триггер в схеме MYUSER

Код: plsql
1.
2.
3.
4.
CREATE OR REPLACE
  TRIGGER MYUSER.MYUSER_CREATE_TABLE_INDEX_TRG
    AFTER CREATE
    ON DATABASE



получаю ошибку:
пропущено...


каких прав не хватает system или есть ограничение на создание ON DATABASE в юзеровских схемах??

https://docs.oracle.com/cd/E18283_01/server.112/e17118/statements_7004.htm In addition to the preceding privileges, to create a trigger on DATABASE, you must have the ADMINISTER DATABASE TRIGGER system privilege.

Данная привилегия должна быть не только у создателя триггера, но и у (будущего) владельца.

ОК, догадывался, но найти в доке не смог.

С меня пиво!!!
...
Рейтинг: 0 / 0
DDL триггер
    #40134706
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продолжу здесь.

Вопрос: как определить/выбрать используемые индексы в запросах и соотвественно, найти те индексы, которые не используются??
...
Рейтинг: 0 / 0
DDL триггер
    #40134708
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотреть планы запросов.
...
Рейтинг: 0 / 0
DDL триггер
    #40134711
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm
Смотреть планы запросов.


Ммм, вы предлагаете парсить сотни текстов планов, что бы вынуть индексы или же есть другие средства для поиска содержащие статистику использования индексов??

PS Хочу узнать какие индексы используются, а какие висят "мёртвым" грузом и напрягают сервер.
...
Рейтинг: 0 / 0
DDL триггер
    #40134715
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWist
есть другие средства для поиска содержащие статистику использования индексов??


Есть. Проявлю уважение к вашему интеллекту и не буду подсказывать слова для поиска.

PaulWist
Хочу узнать какие индексы используются, а какие висят "мёртвым" грузом и напрягают сервер.


Для начала лучше понять, стоит ли игра свеч.

Код: plsql
1.
2.
3.
4.
select segment_name, segment_type, round(sum(bytes)/1024/1024/1024, 2) GB
  from dba_segments
 group by segment_name, segment_type
 order by 3 desc;
...
Рейтинг: 0 / 0
DDL триггер
    #40134718
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm

Для начала лучше понять, стоит ли игра свеч.




Код: plsql
1.
2.
select count(1) 
  from dba_segments where segment_type = 'INDEX'



автор126118

Как по вашему, стоит игра или нет??
...
Рейтинг: 0 / 0
DDL триггер
    #40134721
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist
Продолжу здесь.

Вопрос: как определить/выбрать используемые индексы в запросах и соотвественно, найти те индексы, которые не используются??

Технически - MONITORING USAGE для версий до 12.2 или включенный по умолчанию с версии 12.2 Index Usage Tracking DBA_INDEX_USAGE .

Практически все равно приходится общаться с разработчиками и вдумчиво анализировать запросы.
...
Рейтинг: 0 / 0
DDL триггер
    #40134728
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asmodeus

Технически - MONITORING USAGE для версий до 12.2 или включенный по умолчанию с версии 12.2 Index Usage Tracking DBA_INDEX_USAGE .

Практически все равно приходится общаться с разработчиками и вдумчиво анализировать запросы.


Спасибо за ссылку.

Я подозревал, что всё плохо, но что так хе..во не ожидал

Код: plsql
1.
2.
3.
select count(1) from DBA_INDEX_USAGE
--
-- 2391 из 126118



О чём после этого говорить с программёрами
...
Рейтинг: 0 / 0
DDL триггер
    #40134736
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist,

А таблиц в пользовательских схемах сколько?
...
Рейтинг: 0 / 0
DDL триггер
    #40134742
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asmodeus
PaulWist,

А таблиц в пользовательских схемах сколько?


Не поверите - 64506

Причём PK/FK нет как "класса".

Вот уж эти новомодные "течения" в программировании.
...
Рейтинг: 0 / 0
DDL триггер
    #40134743
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist
Asmodeus
PaulWist,

А таблиц в пользовательских схемах сколько?


Не поверите - 64506
В среднем по два индекса на таблицу (один из которых, скорее всего, первичный ключ) - не так много, чтобы говорить о значительных накладных расходах.

Опять же. Если я правильно понимаю, речь у нас идет о неком коробочном продукте с широкой функциональностью. Вполне возможно, что часть функций продукта просто не используется в вашей организации, соответственно, статистики использования объектов будут сильно искажены. Можно ради интереса посмотреть (если это 1С), сколько пустых таблицы у пользователей. У меня в одной из систем таких было больше половины. Но 1Сник сказал, что это нормально, т.к. система покупалась "на вырост" и большинство модулей пока не задействованы.

Еще вариант: оракл, работая с небольшими таблицами (а в 1С их масса - нормализация и универсализация под разные движки), вполне может отдавать предпочтения полному просмотру таблиц вместо доступа через индексы. Таблица подрастает - индекс становится более актуальным.

В любом случае, не стоит делать поспешных выводов и размахивать шашкой.
...
Рейтинг: 0 / 0
DDL триггер
    #40134752
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asmodeus
В среднем по два индекса на таблицу (один из которых, скорее всего, первичный ключ) - не так много, чтобы говорить о значительных накладных расходах.



Это не 1С, но по архитектуре очень похоже.

PK/FK - нет, от слова совсем.

Система эксплуатируется уже 10 лет, я так понимаю, почти все таблицы, которые могли увеличиться уже подросли.

Asmodeus

В любом случае, не стоит делать поспешных выводов и размахивать шашкой.


Вообщем ДА, ... будем наблюдать.

Спасибо за тред.
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DDL триггер
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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