Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как очистить заголовки блоков самому, не ждать зависания следующих транзакций? / 13 сообщений из 13, страница 1 из 1
12.02.2021, 18:55
    #40044931
receiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как очистить заголовки блоков самому, не ждать зависания следующих транзакций?
Были на схеме таблицы размерами в миллионы строк.
Девелоперы эти миллионы удалили, оставив по десятку строк в таблице.
Консистентность сохранена.
Тестеры что-то делают и простые селекты генерят большое количество redo_size.
В результате, запрос вместо 0,05 сек начинает работать минуту.
я так понимаю, что имеет место отложенная очистка блока.
можно ли эту очистку выполнять вручную?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
     624404  consistent gets
     579373  physical reads
 

   25990548  redo size

 
        220  bytes sent via SQL*Net to client
        380  bytes received via SQL*Net from client
          1  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          0  rows processed

Для примера, объем используемых блоков данных в таблице 80Kb,
а размер таблицы 2Gb
...
Рейтинг: 0 / 0
12.02.2021, 19:19
    #40044934
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как очистить заголовки блоков самому, не ждать зависания следующих транзакций?
receiver,

hwm урежьте.
alter table ... move + ребилд индексов
...
Рейтинг: 0 / 0
12.02.2021, 19:22
    #40044936
receiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как очистить заголовки блоков самому, не ждать зависания следующих транзакций?
oragraf,

за индексы сенкс, но
alter table MY_TABLE move
выполнял, но без изменения параметров в user_tables
(
...
Рейтинг: 0 / 0
12.02.2021, 19:26
    #40044939
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как очистить заголовки блоков самому, не ждать зависания следующих транзакций?
receiver,

А что ты ожидал увидеть в user_tables? У тебя большое количество физ.чтений на десяток строк, как ты говоришь. кроме того, если только move был - значит индексы инвалиды. Есть ли партиции и т.п.?
...
Рейтинг: 0 / 0
12.02.2021, 20:34
    #40044965
receiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как очистить заголовки блоков самому, не ждать зависания следующих транзакций?
oragraf,

я ожидал увидеть уменьшение параметра blocks с 38800
на какую-нибудь значимую величину
)
...
Рейтинг: 0 / 0
12.02.2021, 20:45
    #40044971
receiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как очистить заголовки блоков самому, не ждать зависания следующих транзакций?
oragraf,

а что сделает команда move без параметров,
без имени табличного пространства, например?
...
Рейтинг: 0 / 0
12.02.2021, 21:08
    #40044977
кит северных морей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как очистить заголовки блоков самому, не ждать зависания следующих транзакций?
receiver,

перестроит сегмент с текущими параметрами в том же табличном пространстве.
...
Рейтинг: 0 / 0
12.02.2021, 21:11
    #40044979
receiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как очистить заголовки блоков самому, не ждать зависания следующих транзакций?
кит северных морей,

спасибо я, собственно, прежде чем спросить, прочитал doc про move,
но тогда вопрос остается - я думал уменьшить объем блоков с удаленными
данными.
а в чем смысл перестраивать сегмент с теми же параметрами в том же табличном пространстве?
...
Рейтинг: 0 / 0
12.02.2021, 21:15
    #40044984
кит северных морей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как очистить заголовки блоков самому, не ждать зависания следующих транзакций?
receiver,

сбросить HWM и убрать блоки с удаленными данными :)

я могу ошибаться, но user_tables.blocks - данные с последнего сбора статистики, а не фактические. посмотрите в dba_extents.
...
Рейтинг: 0 / 0
12.02.2021, 22:06
    #40044993
receiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как очистить заголовки блоков самому, не ждать зависания следующих транзакций?
кит северных морей,
Ну конечно!
Конечно в user_tables это после сбора статистики!
что ж я так все забыл - даже стыдно стало. (

Спасибо!

и, все таки, сабж вопроса - как можно очистить заголовки блоков вручную,
пока тестеры не пришли в понедельник и не стали жаловаться,
что вместо обычных 0,05 сек запрос висит минуту?
...
Рейтинг: 0 / 0
12.02.2021, 22:12
    #40044997
кит северных морей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как очистить заголовки блоков самому, не ждать зависания следующих транзакций?
receiver,

чем вас move не устраивает? блоки формируются заново, чистить ничего не надо. ну или самому вычитать всю таблицу целиком один раз чем-нибудь.
...
Рейтинг: 0 / 0
12.02.2021, 22:44
    #40045005
receiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как очистить заголовки блоков самому, не ждать зависания следующих транзакций?
кит северных морей,

наоборот! очень устраивает, про что я и написал!
в dba_segments увидел, что блоки с 38000 штук превратились в 65!

))) я снова чушь написал! конечно, раз блоки отбрасываются, то они и чистятся.
просто мне трудно оперативно самому посмотреть - я посылаю операторы DBA, у которого
есть доступ. он мне пишет результаты - испорченный телефон.

Кит, еще раз спасибо!
...
Рейтинг: 0 / 0
15.02.2021, 00:47
    #40045306
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как очистить заголовки блоков самому, не ждать зависания следующих транзакций?
receiver,

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


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