hwm onsite что это

Каково это – работать в офисе заказчика?

В сервисных компаниях есть проекты, над которыми IT-специалисты работают не в собственном офисе, а на территории заказчика. Это называется работать онсайт – на стороне клиента. Как правило, такого подхода требуют масштабные проекты, где важно, чтобы участники команды могли лично общаться между собой, а заказчик вел непрерывный диалог с бизнес-аналитиками, разработчиками и тестировщиками, чтобы избежать недопонимания.

Сотрудники московского ЕРАМ с опытом работы на стороне клиента рассказали, каково это – оторваться от обжитого офиса и покорить новые высоты.

Антон, инженер-разработчик:

Я пришел в ЕРАМ в 2010 году, и первый же мой проект был в офисе клиента. С тех пор я постоянно работаю у заказчика и считаю, что полезен компании в первую очередь как онсайт-разработчик.

Такая работа требует постоянной личной коммуникации с несколькими командами – теми, кто представляет заказчика, и с коллегами из ЕРАМ. Взаимодействовать с людьми бывает тяжелее, чем решать самые сложные технические задачи. Сначала работать онсайт комфортно только любителям живого общения, но со временем коммуникативные навыки развиваются у всех. Основываясь на своем опыте, могу сказать: всегда эффективнее потратить десять минут и обсудить проблему лично, чем написать два-три десятка писем.

Первое время придется жить, что называется, по чужим порядкам. Человеку, пришедшему со стороны, процессы заказчика могут показаться сложными, запутанными и нелогичными. Бороться с этим можно и нужно, но не на первых порах.

Поработав онсайт, вы увидите, чем обусловлены эти запутанные процессы, и убедитесь, что распутать их не так просто, как кажется со стороны. Возможно, вы поймете, как и что можно улучшить в процессах на стороне заказчика, не ломая их при этом целиком. На текущем проекте я, например, разработал утилиту для автоматизированного тестирования, которая ускоряет тестирование, позволяет держать регресс под контролем, и сейчас ею пользуются, она прижилась.

Иван, лид команды тестировщиков:

Основное преимущество работы у заказчика – постоянное взаимодействие с ним. Мы знаем, чего он хочет, а тот, в свою очередь, всегда знает, что и на каком этапе мы делаем. Когда IT-специалисты работают из своего офиса, вдали от заказчика, риск, что его поймут неправильно, возрастает. Можно работать удаленно, внедрять очередной релиз и вдруг обнаружить, что подходишь к реализации несколько иначе, чем заказчик. На онсайт-проектах шансы фатального недопонимания стремятся к нулю.

Работать на стороне клиента – это большая ответственность. Для заказчика мы, онсайт-работники, и есть ЕРАМ. По нам судят о компании в целом, нам задают любые вопросы. Я представитель ЕРАМ и оставить их без ответа не могу, даже если меня как бизнес-аналитика они не касаются. Но не стоит бояться, что на стороне заказчика сидят страшные люди и задают сложные вопросы – ничего экстремального в такой работе нет.

В офисе заказчика обнаруживаются его скрытые ожидания – вещи настолько для него очевидные, что ему и в голову не приходит такое проговаривать. Скажем, в банке изменились политики безопасности, и теперь весь внутренний трафик нужно шифровать. Сидя в офисе ЕРАМ, команда может не узнать об этом вплоть до самого релиза. Чем это чревато, все мы понимаем. Для тех, кто работает онсайт, пропустить важные новости невозможно. У сотрудников ЕРАМ есть почта на домене клиента, куда приходит внутрикорпоративная рассылка; новости обсуждаются в офисе. Еще один плюс: заказчик видит нас, понимает, чем мы заняты, может в любой момент задать нам вопрос и получить на него ответ.

Сложности в такой работе скорее бытовые. Иногда политика безопасности клиента не позволяет зайти с офисного компьютера на почту ЕРАМ, на Sharepoint, на наш GitHub. Может быть ограничен доступ в Интернет, и тогда приходится пользоваться Yota-модемами – их выдают нам в ЕРАМ. Мы не всегда можем лично участвовать во внутренних мероприятиях ЕРАМ, занятиях по английскому – только если подключаться онлайн. Но я всё равно не отрываюсь от компании и, например, провожу собеседования – это можно делать и удаленно.

Работа онсайт не всегда означает конкуренцию. Мне повезло провести пять лет в месте, где сотрудники разных компаний были одной сплоченной командой.

Находясь в офисе заказчика, нужно заводить знакомства, привыкать к новым правилам; разбираться, кто и как может повлиять на твою работу и проект, и, как ни смешно, тестировать, что можно есть в новой столовой. Мой лайфхак – поскорее найти человека, который близок вам по духу, имеет отношение к проекту и знает, как устроены процессы в компании. Важно, чтобы его чувство юмора было похоже на ваше: шутки помогают наводить мосты и поддерживать хорошие отношения. Такой человек познакомит вас с коллегами, поделится информацией, предупредит о подводных камнях того или иного решения в проекте… И об опасных блюдах в местной столовой.

В работе онсайт есть безусловные плюсы: понять потребности будущих пользователей легче, находясь рядом с ними. Часто разработку заказывает один, контролирует другой, а пользуется продуктом третий. Этот третий может быть для нас ключевой фигурой, и искать его чаще всего надо в офисе заказчика.

Идти в офис клиента не стоит людям вспыльчивым и импульсивным. Даже высококлассный специалист, если он будет несдержан или груб, может навредить проекту, испортить отношения между заказчиком и подрядчиком. Рано или поздно такого человека заменят. Тому, кто придет ему на смену, придется работать с негативным опытом заказчика и заново завоевывать его доверие.

Работа в офисе ЕРАМ похожа на эксперимент в лаборатории, где для исследований созданы все условия. У нас гибкий график, дресс-кода нет, здесь и кикер тебе, и настольный теннис. Компьютеры достаточно мощные, хорошая инфраструктура для разработки (сервера, сеть). Сидишь себе и разрабатываешь, никто тебя не дергает. Работа у заказчика сродни выходу из стерильной лаборатории в большой и куда более сложный мир. Тут нужно работать по процессам клиента, а иногда и активно участвовать в их улучшении, разбираться не только в своей специализации, решать разные проблемы. Там ты видишь, как живет бизнес клиента, как он развивается, с какими ограничениями приходится сталкиваться при реализации новых возможностей изо дня в день.

Работа онсайт дает много возможностей для развития. Так, я пришел на проект разработчиком, умел управлять небольшой командой программистов, немного поглядывал в сторону тестирования и аналитики, планировал небольшие итерации в ограниченном интервале времени. В офисе клиента мне довелось многое повидать и многому научиться; я вижу, что очень вырос. Сейчас я помогаю выстраивать процессы, организую работу всех аналитиков, разработчиков и тестировщиков нашего семейства приложений, местами помогаю нашей команде поддержки, взаимодействую с бизнес-заказчиками из нашего и других подразделений и подрядчиками.

Читайте также:  Что значит фром по английски

Я часто имею дело с подрядчиками, с коллегами из других подразделений, линейными руководителями и топ-менеджерами. Знаете, что я из этого понял? Что все мы люди. Топ-менеджеры серьезные, нервные, требовательные, но тоже люди. Иногда они приходят к нам поговорить о проекте, узнать наше мнение. Подрядчики тоже люди, и им тоже иногда нужно идти навстречу, а не занимать позицию «Ты обещал – делай теперь как хочешь». Все могут ошибаться, у всех есть проблемы, и все мы можем понять друг друга – стоит только захотеть.

Источник

Русские Блоги

Описание Oracle High Water Mark (HWM: High Water Mark)

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

ORACLE разделен на 4 уровня логического хранения: табличное пространство, сегмент, область и блок.

1.2 Область: Состоит из ряда смежных блоков.Это также основная единица распределения пространства ORACLE.Например, когда мы создаем таблицу, Дейв, сначала ORACLE выделит для этой таблицы область пространства. Постоянно ВСТАВЛЯЙТЕ данные Дейву. Когда исходная область не может вместить вставленные данные, ORACLE расширяется в единицах областей, что означает, сколько областей выделено Дейву, а не количество блоков.

1.3 Сегмент: он состоит из серии областей. В общем, когда создается объект (таблица, индекс), ему назначается сегмент. Таким образом, в некотором смысле сегмент является конкретным Данные. Например, CREATE TABLE, Дейв, этот сегмент является сегментом данных, и CREATE INDEX ON Dave (NAME), ORACLE также выделит сегмент этому индексу, но это сегмент индекса. Информация о сегменте запроса может быть представлена ​​через словарь данных: SELECT * FROM USER_SEGMENTS получить.

1.4 Табличное пространство: содержит сегменты, регионы и блоки. Данные табличного пространства физически хранятся в файле данных, в котором они расположены. База данных должна иметь хотя бы одно табличное пространство.

Табличное пространство (tableSpace) сегмент (сегмент) экстент (экстент) блок (блок) связь

Когда мы создавали таблицу, даже если я не вставлял ни одной строки записей, ORACLE по-прежнему выделил ей 8 блоков. Конечно, это связано с параметрами INITIAL и MINEXTENTS оператора создания таблицы. Например:

Описание параметра создания таблицы Oracle

2.1 Официальное описание веб-сайта выглядит следующим образом

To manage space, Oracle Database tracks the state of blocks in the segment.The high water mark (HWM) is the point in a segment beyond which data blocks are unformatted and have never been used.

MSSM uses free lists to manage segment space.At table creation, no blocks in the segment are formatted.When a session first inserts rows into the table, the database searches the free list for usable blocks.If the database finds no usable blocks, then it preformats a group of blocks, places them on the free list, and begins inserting data into the blocks.In MSSM,a full table scan reads all blocks below the HWM.

ASSM does not use free lists and so must manage space differently.When a session first inserts data into a table, the database formats a single bitmap block instead of preformatting a group of blocks as in MSSM. The bitmap tracks the state of blocks in the segment, taking the place of the free list. The database uses the bitmap to find free blocks and then formats each block before filling it with data.ASSM spread out inserts among blocks to avoid concurrency issues.

Oracle автоматическое управление пространством сегментов (ASSM: автоматическое управление пространством сегментов)

Every data block in an ASSM segment is in one of the following states:

These blocks are unformatted and have never been used.

These blocks are in one of the following states:

(1)Allocated, but currently unformatted and unused

(2)Formatted and contain data

(3)Formatted and empty because the data was deleted

Figure 12-23depicts an ASSM segment as ahorizontal series of blocks. At table creation, the HWM is at the beginning of the segment on the left. Because no data has been inserted yet, all blocks in the segment are unformatted and never used.

Figure 12-23 HWM at Table Creation

Suppose that a transaction inserts rows into the segment. The database must allocate a group of blocks to hold the rows.The allocated blocks fall below the HWM.The database formats a bitmap block in this group to hold the metadata, but does not preformat the remaining blocks in the group.

InFigure 12-24, the blocks below the HWM are allocated, whereas blocks above the HWM are neither allocated or formatted. As inserts occur, the database can write to any block with available space.The low high water mark (low HWM) marks the point below which all blocks are known to be formatted because they either contain data or formerly contained data.

Figure 12-24 HWM and Low HWM

InFigure 12-25, the database chooses a block between the HWM and low HWM and writes to it. The database could have just as easily chosen any other block between the HWM and low HWM, or any block below the low HWM that had available space. InFigure 12-25, the blocks to either side of the newly filled block are unformatted.

Figure 12-25 HWM and Low HWM

The low HWM is important in afull table scan.Because blocks below the HWM are formatted only when used, some blocks could be unformatted, as inFigure 12-25. For this reason,the database reads the bitmap block to obtain the location of the low HWM. The database reads all blocks up to the low HWM because they are known to be formatted, and then carefully reads only the formatted blocks between the low HWM and the HWM.

Assume that a new transaction inserts rows into the table, but the bitmap indicates that insufficient free space exists under the HWM. InFigure 12-26, the database advances the HWM to the right, allocating a new group of unformatted blocks.

Читайте также:  что делать если в подполье конденсат

Figure 12-26 Advancing HWM and Low HWM

When the blocks between the HWM and low HWM are full, the HWM advances to the right and the low HWM advances to the location of the old HWM. As the database inserts data over time, the HWM continues to advance to the right, with the low HWM always trailing behind it.Unless you manually rebuild, truncate, or shrink the object, the HWM never retreats.

Описание блока данных Oracle

2.2 Высшая точка HWM в сегменте таблиц Oracle

Оператор Select сканирует данные в таблице, но сколько блоков хранилища сканируется? Это не означает, что Oracle сканирует такие большие блоки данных, но Oracle сканирует данные ниже максимальной отметки. блок данных. Теперь представьте, что если это была недавно созданная пустая таблица и вы выполнили операцию Select, то, поскольку максимальная отметка HWM находится в самой нижней позиции 0, нет блока данных для сканирования, и время сканирования будет чрезвычайно коротким. И если на этот раз вы сначала вставите десять миллионов фрагментов данных, а затем используете оператор delete для удаления этих десяти миллионов фрагментов данных. Поскольку было вставлено 10 миллионов фрагментов данных, сейчас самая высокая точка. Когда десять миллионов частей данных удаляются позже, поскольку оператор удаления не влияет на максимальную отметку, максимальная отметка остается здесь для десяти миллионов частей данных. В этот раз используйте оператор select для повторного сканирования. Хотя в данный момент в таблице нет данных, поскольку сканирование основано на максимальной отметке, пространство для хранения 10 миллионов фрагментов данных необходимо сканировать один раз, то есть на этот раз Время, необходимое для сканирования, равно времени, необходимому для сканирования 10 миллионов единиц данных. Так что иногда люди всегда говорят, почему в моей таблице не так мало данных, но это все еще так медленно.

При ручном управлении пространством сегмента (ручное управление пространством сегмента) в сегменте есть только один HWM, но в автоматическом управлении пространством сегмента (Automatic Segment Space Management), добавленном в Oracle 9i Release 1, существует еще одна концепция низкого HWM. Почему низкий уровень HWM с HWM? Это вызвано особенностями автоматического управления пространством сегментов. В средствах управления пространством сегмента, когда данные вставляются, если они вставляются в новый блок данных, блок данных будет автоматически отформатирован и будет ожидать доступа к данным. При автоматическом управлении пространством сегментов после вставки данных в новый блок данных блок данных не форматируется, но блок данных форматируется при первом доступе к блоку данных. Итак, нам нужен еще один водяной знак, чтобы отметить блоки, которые были отформатированы. Этот водяной знак называется низким HWM. Вообще говоря, низкий HWM определенно ниже или равен HWM.

2.3. Исправьте максимальную отметку в таблице ORACLE.

В ORACLE выполнение операции удаления для таблицы не приведет к понижению верхней отметки таблицы. При полном сканировании таблицы всегда будут считываться все блоки на экстенте ниже максимальной отметки. Если отметка максимального уровня не будет снижена после выполнения операции удаления, производительность оператора запроса будет низкой. Такие операции, как восстановление, усечение, сжатие и перемещение, снизят высокий уровень воды.

2.3.1 Выполнить команду восстановления таблицы alter table table_name move;

Когда вы создаете объект, такой как таблица, независимо от того, вставляете вы данные или нет, он будет занимать несколько блоков, и ORACLE также выделит для него необходимое пространство. Точно так же после освобождения свободного пространства с помощью ALTER TABLE MOVE некоторое пространство все еще зарезервировано для Этот стол.

2.3.2 Выполнить изменение таблицы имя_таблицы сжимать пространство;

Эта команда является новой функцией Oracle 10g, и перед выполнением этой команды необходимо разрешить перемещение строк. Alter table имя_таблицы включить перемещение строк;

2.3.3 Перестроить таблицу

Скопируйте данные, которые нужно сохранить, во временную таблицу t, удалите исходную таблицу, а затем переименуйте временную таблицу t как исходную.

2.3.4 Импорт и экспорт с логикой: Emp / Imp

2.3.5. Altertable table_name deallocate unused

DEALLOCATE UNUSED освобождает неиспользуемое пространство над HWM, но не освобождает свободное пространство под HWM и не перемещает положение HWM.

2.3.6 Рекомендуется использовать усечение.

2.3.7 Некоторые примечания

(1) Если это INEXTENT, вы можете освободить alter table tablename, чтобы освободить все неиспользуемое пространство над HWM.

(2) Если MINEXTENT> HWM, освободите место над MINEXTENTS. Если вы хотите освободить пространство над HWM, используйте KEEP 0.

SQL>alter table tablesname deallocate unused keep 0;

(3) Команда усечения таблицы отбрасывания (значение по умолчанию) может полностью освободить пространство над MINEXTENT (вернуться в операционную систему) и сбросить HWM.

(4) Если вы хотите переместить только HWM и не хотите, чтобы таблица была заблокирована в течение длительного времени, вы можете использовать хранилище повторного использования усеченной таблицы, чтобы сбросить только HWM.

(5) ALTER TABLE MOVE переместит HWM, но при MOVE требуется двойное табличное пространство, и если в таблице есть индекс, индекс необходимо восстановить.

(6) Таблица DELETE не сбрасывает HWM и не освобождает свободное пространство (то есть пространство, освобожденное с помощью DELETE, может использоваться только самим объектом для будущих INSERT / UPDATE и не может использоваться другими объектами)

(1) Вы можете использовать команду alter table test_tab shrink space для перемещения hwm в оперативный режим,

(2) Если вы хотите одновременно сжать индекс таблицы, вы можете опубликовать: alter table test_tab shrink space cascade

2.4 Возможности HWM

2.4.1 ORACLE использует HWM для разграничения используемых блоков и неиспользуемых блоков в сегменте.

Например, когда мы создаем таблицу, ORACLE выделяет сегмент для этого объекта. В этом сегменте, даже если мы не вставляем никаких записей, выделяется по крайней мере одна область, первая область является первой. Блок называется заголовком сегмента (SEGMENT HEADE), некоторая информация хранится в заголовке сегмента, а информация HWM в базе хранится здесь.

В настоящее время, поскольку первый блок первой области используется для хранения некоторой информации заголовка сегмента, хотя фактические записи не хранятся, он считается использованным. В настоящее время HWM находится во втором блоке. Когда мы продолжаем вставлять данные После прибытия в таблицу первый блок больше не может соответствовать вновь вставленным данным. В настоящее время ORACLE использует блок выше верхней отметки для хранения новых данных, и в то же время сам HWM также перемещается вверх. То есть, когда мы продолжаем При вставке данных HWM будет продолжать двигаться вверх, так что блоки под HWM указывают на используемые блоки, а блоки над HWM указывают на блоки, которые были выделены, но никогда не использовались.

Читайте также:  Что значит чужой человек

2.4.2 Когда HWM вставляет данные, он будет перемещаться вверх, когда существующего пространства недостаточно, и оно расширяется, но не будет перемещаться вниз при удалении данных.

ORACLE не освобождает пространство для использования другими объектами по простой причине: пространство зарезервировано для вновь вставленных строк и для адаптации к росту существующих строк. Самая высокая занимаемая площадь называется самой высокой оценкой использования (HWM),

2.4.3 Информация HWM хранится в заголовке сегмента.

Информация о самом HWM хранится в заголовке сегмента. Когда пространство сегмента управляется вручную, ORACLE управляет распределением пространства внутри сегмента через FREELIST (односвязный список). Когда пространство сегмента управляется автоматически (ASSM), ORACLE С помощью BITMAP можно управлять распределением пространства в сегменте.

2.4.4 Полное сканирование таблицы ORACLE предназначено для чтения всех блоков ниже верхней отметки (HWM).

Таким образом, возникает проблема: когда пользователь выполняет полное сканирование таблицы, ORACLE всегда должен сканировать от сегмента до HWM, даже если он ничего не находит. Эта задача продлевает время полного сканирования таблицы.

Например, путем прямой загрузки и вставки (с помощью APPEND для запроса вставки) или с помощью блока данных прямого пути SQL * LOADER, непосредственно размещенного на HWM. Пространство под ним потрачено впустую.

3. Сопутствующие тесты

1) Создайте тестовую таблицу

SQL> create table tt (id number);

Таблица на данный момент не анализируется, это исходные данные, то есть 8 блоков данных.

SQL>SELECT segment_name,segment_type,blocks FROM dba_segmentsWHERE segment_name=’TT’;

SQL> SELECT table_name,num_rows,blocks,empty_blocks FROM user_tablesWHERE table_name=’TT’;

2) Вставьте тестовые данные в таблицу

4for i in 1..10000 loop

5insert into tt values(i);

PL/SQL procedure successfully completed.

3) Просмотрите информацию таблицы в то время

SQL> SELECT table_name,num_rows,blocks,empty_blocks FROM user_tablesWHERE table_name=’TT’;

SQL>SELECT segment_name,segment_type,blocks FROM dba_segmentsWHERE segment_name=’TT’;

На данный момент количество баз данных, занятых таблицей TT, составляет уже 24. Но информация, отображаемая user_tables, по-прежнему пуста. Потому что нет статистического анализа.

4) Собираем статистику

SQL> exec DBMS_STATS.GATHER_TABLE_STATS(‘SYS’,’TT’);

PL/SQL procedure successfully completed.

SQL>SELECT segment_name,segment_type,blocks FROM dba_segmentsWHERE segment_name=’TT’;

SQL> SELECT table_name,num_rows,blocks,empty_blocks FROM user_tablesWHERE table_name=’TT’;

На данный момент user_tables уже имеет данные, показывающие, что используются 20 блоков данных. Но empty_blocks по-прежнему пуст. Здесь стоит обратить внимание. В этом поле будут данные только после использования анализа для сбора статистики.

5) Используйте анализ для сбора статистики

SQL> ANALYZE TABLE TT COMPUTE STATISTICS;

SQL> SELECT table_name,num_rows,blocks,empty_blocks FROM user_tablesWHERE table_name=’TT’;

— Здесь отображаются 3 пустые базы данных. Примечание: 20 + 3 = 23. На единицу занято меньше 24 блоков данных. Поскольку есть блок базы данных, он зарезервирован как заголовок сегмента.

SQL>SELECT segment_name,segment_type,blocks FROM dba_segmentsWHERE segment_name=’TT’;

6) Удалить данные без снижения высокого уровня воды

SQL> delete from tt;

10000 rows deleted.

SQL>SELECT segment_name,segment_type,blocks FROM dba_segmentsWHERE segment_name=’TT’;

SQL> SELECT table_name,num_rows,blocks,empty_blocks FROM user_tablesWHERE table_name=’TT’;

SQL> analyze table tt compute statistics;

SQL> SELECT table_name,num_rows,blocks,empty_blocks FROM user_tablesWHERE table_name=’TT’;

SQL>SELECT segment_name,segment_type,blocks FROM dba_segmentsWHERE segment_name=’TT’;

7) усеченная таблица, может снизить высокий уровень воды

SQL> truncate table tt;

SQL>SELECT segment_name,segment_type,blocks FROM dba_segmentsWHERE segment_name=’TT’;

SQL> SELECT table_name,num_rows,blocks,empty_blocks FROM user_tablesWHERE table_name=’TT’;

—Информация сегмента не изменилась, соберите статистику, чтобы увидеть

SQL> exec dbms_stats.gather_table_stats(‘SYS’,’TT’);

PL/SQL procedure successfully completed.

SQL> SELECT table_name,num_rows,blocks,empty_blocks FROM user_tablesWHERE table_name=’TT’;

SQL>SELECT segment_name,segment_type,blocks FROM dba_segmentsWHERE segment_name=’TT’;

—Информация в разделе была изменена, но раздел empty_blocks не изменился.Этот раздел можно изменить только с помощью анализа.

SQL> analyze table tt compute statistics;

SQL> SELECT table_name,num_rows,blocks,empty_blocks FROM user_tablesWHERE table_name=’TT’;

SQL>SELECT segment_name,segment_type,blocks FROM dba_segmentsWHERE segment_name=’TT’;

4. Разница между изменением перемещения стола и сжатием

В следующих двух блогах есть инструкции:

Разница между изменением перемещения стола и сжатием пространства

Описание на MOS, ID: 577375.1:

После 10g дефрагментация устраняет новую функцию сокращения пространства миграции строк

SQL>alter table shrink space [ | compact | cascade ];

compact: этот параметр можно использовать при относительно большой нагрузке на систему без уменьшения HWM. Если нагрузка на систему низкая, используйте напрямую alter table table_name shrink space, чтобы сделать это за один шаг

cascade: этот параметр автоматически представляет собой каскадный индекс при сжатии таблицы, что эквивалентно rebulid index.

Следующий SQL основан на обычных таблицах

Сжатие должно включать функцию переноса строк.

alter table table_name enable row movement ;

Сохранение HWM равносильно сжатию данных в блоке

alter table table_name shrink space compact;

Стол отвода и нижний HWM

alter table table_name shrink space;

Сжать таблицы и связанные индексы, уменьшить HWM

alter table table_name shrink space cascade;

Индекс втягивания и нижний HWM

alter index index_name shrink space

Хотя усадку можно использовать в 10 г, есть некоторые ограничения:

2). Таблицы с индексами на основе функций или индексами соединения растровых изображений не поддерживаются.

3) Таблицы сопоставления или таблицы с индексированием не поддерживаются.

4). Сжатая таблица не поддерживается

Используйте desc table_name, чтобы проверить, есть ли в таблице LOB-поле. Если в таблице нет LOB-поля, напрямую измените перемещение таблицы; затем перестройте индекс

Если таблица содержит LOB-поля, такие как следующий SQL:

SQL>alter table owner.table_name move tablespace tablespace_name lob (lob_column) store as lobsegment tablespace tablespace_name;

Вы также можете переместить лобовой объект отдельно, но индекс в таблице также будет недействительным. Поэтому в конце операции вам необходимо перестроить индекс.

SQL>alter table owner.table_name move lob(lob_column) store as lobsegment tablespace tablespace_name ;

Сначала используйте следующий SQL, чтобы узнать, какие индексы находятся в таблице:

Для обычных индексов прямое восстановление параллельной сетевой логики,

Для многораздельных индексов каждый раздел необходимо перестраивать отдельно,

Для составных индексов разделов каждый подраздел необходимо перестраивать отдельно.

Move уменьшает HWM за счет перемещения данных, поэтому требуется больше места на диске. Сжатие приведет к большему числу отмен и повторов посредством удаления и вставки.

Пространство сжатия сжимается до минимального значения хранилища данных, а перемещение измененной таблицы (без параметров) сжимается до начального указанного значения, или вы можете использовать хранилище тестового перемещения измененной таблицы (начальное 500 КБ), чтобы указать размер сжатия, что может достичь эффекта пространства сжатия.

Короче говоря, использование Move будет более эффективным, но приведет к сбою индекса. Сжатие приведет к отмене и повторению, и скорость будет относительно низкой.

Источник

Сказочный портал