|
|
|
Поиск sequence по БД
|
|||
|---|---|---|---|
|
#18+
Добрый день. Появилась необходимость отследить последовательность, которая используется при вставке в таблицу БД, когда идет определенное действие в интерфейсе(установка флажка). Простейшая таблица с 2-мя полями, в одном из которых ID, как раз генерится. Есть ли какой-то способ отследить sequence, которая используется при этом? По Код: plsql 1. не работает, скорее всего эта последовательность лежит в пакете(или я не прав). Но в данной таблице ее нет. Тоже бы хотелось узнать, из-за чего. Пробовал искать по all_source и фильтровать по last_ddl_time, но там не увидел ничего кроме таблиц(что логично). Заранее спасибо за инфу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 12:02 |
|
||
|
Поиск sequence по БД
|
|||
|---|---|---|---|
|
#18+
1. последовательность не может быть в пакете 2. последовательность "дергается" либо в клиентской программе, производящей вставку, либо в триггере 3. любой SQL можно отследить, включив трассировку сессии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 12:05 |
|
||
|
Поиск sequence по БД
|
|||
|---|---|---|---|
|
#18+
Reflector, Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 12:11 |
|
||
|
Поиск sequence по БД
|
|||
|---|---|---|---|
|
#18+
Reflectorselect * from dba_sequences a where a.LAST_NUMBER=147212 если без трассы select * from dba_sequences a where a.LAST_NUMBER between 147212 and 147212+CACHE_SIZE+??? еще немного dba_sequences учитывает cache ps можно попробовать ... LAST_NUMBER like '147___' ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 12:20 |
|
||
|
Поиск sequence по БД
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. Вероятность попасть на конкретный номер зависит от атрибутов сиквенса, для некоторых значений равна нулю, а для некоторых меньше единицы. Отсортируй список и ткни пальцем в близкие значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 12:24 |
|
||
|
Поиск sequence по БД
|
|||
|---|---|---|---|
|
#18+
Stax, Спасибо, помогло. Просто есть последовательность, очень похожая. Но ее last_number=147321, а БД на данный момент вставляется запись id=147217. Правильно ли я понимаю, что есть определенный "запас" для интерфейса? И будет ли правильным, если я, имитируя этот запрос буду вставлять запись Код: plsql 1. ? Ведь он вставит значение не из кэша, верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 12:45 |
|
||
|
Поиск sequence по БД
|
|||
|---|---|---|---|
|
#18+
цацхе 10, Спасибо большое за помощь, видел такую последовательность, но решил, что это не моя:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 12:48 |
|
||
|
Поиск sequence по БД
|
|||
|---|---|---|---|
|
#18+
ReflectorВедь он вставит значение не из кэша, верно? мож неправильно понимаю вопрос если есть cache, то именно из кеша тоесть если cache 100 то токо "раз" sequence.nextval совпадет с LAST_NUMBER ps я (почти) всегда использовал cache ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 13:26 |
|
||
|
Поиск sequence по БД
|
|||
|---|---|---|---|
|
#18+
Reflector, А у меня вообще сумашедшая идея для дебаггинга возникла ( для случая, когда имя последовательности известно, но не ясно, кто её дергает ) 1) последовательность переименовываем как-нибудь 2) Создаем package со старым именем последовательности, в нем функцию Nextval 3) В "функционирующем" случае из этой функции дергаем Nextval из последовательности 4) а вот когда хотим "дебаггинг", пусть Nextval генерирует исключение (exception) и вот тогда по call-stack 'у в некоторых случаях можно будет понять, кто вызвал Nextval ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 17:02 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=136&tid=1884852]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
74ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 391ms |

| 0 / 0 |
