Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Записать все используемые таблицы  [new]
наивный
Guest
вот такой наивный вопрос. Есть набор аппликух, в код которых можно конечно посмотреть, но они используют еще кучу библиотек и в целом оценить, какие они используют таблицы - задача непростая. А нужно составить такой список. Вопрос: есть ли такая возможность по сессии отследить все таблицы которые в ней использовались?
21 апр 10, 15:57    [8664538]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
включить трассировку
21 апр 10, 16:11    [8664671]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
наивный,

если винда и лень разбираться в трассировочном файле, то есть такая тулзень ORACLE STATEMENT TRACER.
21 апр 10, 16:15    [8664710]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
Viewer
Member

Откуда: Самара
Сообщений: 5369
comphead
наивный,
если винда и лень разбираться в трассировочном файле, то есть такая тулзень ORACLE STATEMENT TRACER.

Во-первых: Statement Tracer for Oracle
Во-вторых: Statement Tracer for Oracle allows you to visualize requests to a server for compilation and execution, including:
* SQL queries texts.
* DDL statements.
* Anonymous PL/SQL blocks and stored procedures execution requests.
* Input (in) and output (out) parameters for all the request types.
* Notifications on commit and rollback of transactions.

А с какими таблицами работают хранимки - остаётся за бортом этой тулзы ...
21 апр 10, 16:24    [8664820]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
Viewer
comphead
наивный,
если винда и лень разбираться в трассировочном файле, то есть такая тулзень ORACLE STATEMENT TRACER.

Во-первых: Statement Tracer for Oracle
Во-вторых: Statement Tracer for Oracle allows you to visualize requests to a server for compilation and execution, including:
* SQL queries texts.
* DDL statements.
* Anonymous PL/SQL blocks and stored procedures execution requests.
* Input (in) and output (out) parameters for all the request types.
* Notifications on commit and rollback of transactions.

А с какими таблицами работают хранимки - остаётся за бортом этой тулзы ...


1. ладно уж обращать внимание на то что слово оракл поставил на первое место, тем более что в гугле он по этим словам нашел бы то что нужно

2. согласен, про ХП подумал уже после поста.
21 апр 10, 16:29    [8664880]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
AmKad
Member

Откуда:
Сообщений: 5222
Viewer

А с какими таблицами работают хранимки - остаётся за бортом этой тулзы ...

Ну здесь на помощь приходит DBA_DEPENDENCIES.
21 апр 10, 16:29    [8664881]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
наивный
Guest
comphead
наивный,

если винда и лень разбираться в трассировочном файле, то есть такая тулзень ORACLE STATEMENT TRACER.


спасибо, попробовал. Неплохая игрушка - для бесплатной. Но мне не подходит (хоть у меня и винда) - она похоже ловит только ГУевые клиенты, а мне нужно как раз фоновые процессы потрейсить. Попробую посмотреть трассировку - насколько ее легко будет проанализировать. А вот еще возможность - дело в том что все запросы делаются через одну центральную функцию. Облегчает ли это задачу? Можно ли в эту функцию вставить такую мульку типа - дай мне все таблицы которые я только что использовал? Сорри, понимаю, что очень наивные вопросы, но я не специалист в оракле. Но обучаемый :-). Если кинете ключевое слово или линк, то дальше попробую сам.
21 апр 10, 16:31    [8664914]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
AmKad
Viewer

А с какими таблицами работают хранимки - остаётся за бортом этой тулзы ...

Ну здесь на помощь приходит DBA_DEPENDENCIES.


оно то конечно хорошо. а если вызов хранимки в хранимке ) придется парсить хранимку на вхождения имен други ХП или типов.
21 апр 10, 16:34    [8664947]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
AmKad
Member

Откуда:
Сообщений: 5222
наивный
А вот еще возможность - дело в том что все запросы делаются через одну центральную функцию.

1) Ф-ия ораколовая?
2) Если да то SQL динамический или статический?
3) Если статический то все используемые таблицы вытаскиваются одним запросом из DBA_DEPENDENCIES.
21 апр 10, 16:36    [8664979]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2855
наивный
вот такой наивный вопрос. Есть набор аппликух, в код которых можно конечно посмотреть, но они используют еще кучу библиотек и в целом оценить, какие они используют таблицы - задача непростая. А нужно составить такой список. Вопрос: есть ли такая возможность по сессии отследить все таблицы которые в ней использовались?


использовались или могли использоваться?
21 апр 10, 16:39    [8665015]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
AmKad
Member

Откуда:
Сообщений: 5222
comphead
AmKad
Viewer

А с какими таблицами работают хранимки - остаётся за бортом этой тулзы ...

Ну здесь на помощь приходит DBA_DEPENDENCIES.


оно то конечно хорошо. а если вызов хранимки в хранимке ) придется парсить хранимку на вхождения имен други ХП или типов.

Иерархический запрос.
21 апр 10, 16:40    [8665037]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
-2-
Member

Откуда:
Сообщений: 15330
наивный,

audit all by session и надеяться, что приложение обратилось ко всему,что можно.
21 апр 10, 16:44    [8665097]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
AmKad
comphead
AmKad
Viewer

А с какими таблицами работают хранимки - остаётся за бортом этой тулзы ...

Ну здесь на помощь приходит DBA_DEPENDENCIES.


оно то конечно хорошо. а если вызов хранимки в хранимке ) придется парсить хранимку на вхождения имен други ХП или типов.

Иерархический запрос.


проблема ж не в том, чтоб запрос сварганить. а в парсинге, это уже обсуждалось.
сложно увидеть закомментарен ли вызов и прочее, а не дай бог вызывается скрипт из таблицы какой то, то вообще не найдем.
21 апр 10, 16:45    [8665110]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
наивный
Guest
AmKad
наивный
А вот еще возможность - дело в том что все запросы делаются через одну центральную функцию.

1) Ф-ия ораколовая?
2) Если да то SQL динамический или статический?
3) Если статический то все используемые таблицы вытаскиваются одним запросом из DBA_DEPENDENCIES.


нет :-(... Аппликухи написаны на ANSI-C с динамическим SQL, соответственно под функцией я подразумевал тоже C-функцию - в нее вызывающая программа передает динамически сформированный SQL (как строку), а та делает практически exec sql execute immediate
21 апр 10, 16:46    [8665124]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
наивный
AmKad
наивный
А вот еще возможность - дело в том что все запросы делаются через одну центральную функцию.

1) Ф-ия ораколовая?
2) Если да то SQL динамический или статический?
3) Если статический то все используемые таблицы вытаскиваются одним запросом из DBA_DEPENDENCIES.


нет :-(... Аппликухи написаны на ANSI-C с динамическим SQL, соответственно под функцией я подразумевал тоже C-функцию - в нее вызывающая программа передает динамически сформированный SQL (как строку), а та делает практически exec sql execute immediate


ну батенька, тогда вам только трасса в руки. + долгие часы вызовов всех функций )
21 апр 10, 16:50    [8665167]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
Viewer
Member

Откуда: Самара
Сообщений: 5369
Можно попробовать поиграться с Fine-Grained Auditing (DBMS_FGA)
21 апр 10, 16:50    [8665172]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
Viewer
Member

Откуда: Самара
Сообщений: 5369
Viewer
Можно попробовать поиграться с Fine-Grained Auditing (DBMS_FGA)

... хотя в вашем случае, пожалуй, это будет как повесить радиомаяк на шею каждому китайцу ... пеленговать умаяшься ...
21 апр 10, 16:55    [8665231]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
наивный
Guest
Viewer
Можно попробовать поиграться с Fine-Grained Auditing (DBMS_FGA)


хмм... выглядит многообещающе...Спасибо!
21 апр 10, 16:55    [8665240]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
-2-
Member

Откуда:
Сообщений: 15330
Viewer
Можно попробовать поиграться с Fine-Grained Auditing (DBMS_FGA)
А чем обычный аудит не разница?
21 апр 10, 17:00    [8665294]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
Viewer
Member

Откуда: Самара
Сообщений: 5369
-2-
А чем обычный аудит не разница?

Скажем так, вторую ссылку (DBMS_FGA) я дал с прицелом на то, что она выводит практически на все гайды по аудиту. А убегая домой/одной ногой за дверью, скептически отозвался о написанном at 5 minutes before ... :)

"Главное чтобы костюмчик сидел" (c)
21 апр 10, 19:26    [8666606]     Ответить | Цитировать Сообщить модератору
 Re: Записать все используемые таблицы  [new]
наивный
Guest
-2-
наивный,

audit all by session и надеяться, что приложение обратилось ко всему,что можно.


спасибо всем за советы. Пока решил пойти другим путем: покопаться в парсерах на си. Они как бы должны уметь выдавать список таблиц, используемых в SQL. Пока разбираюсь с кодом sqlite, может есть у кого лучшие идеи? (сорри за небоьшой оффтоп, но раз уж начал здесь...)
22 апр 10, 13:06    [8670500]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить