Как удалить индекс oracle
Используя запрос DROP можно удалить таблицы (TABLE), индексы (INDEX) и базы данных (DATABASE).
DROP TABLE
DROP TABLE, применяемый в базе данных Oracle.
Обычно с таблицей в базе данных связано несколько объектов, например индекс, создаваемый первичным ключом, или ограничение UNIQUE, налагаемое на столбцы таблицы.
При удалении таблицы Oracle автоматически удаляет и любой связанный с ней индекс. Для удаления таблицы из БД необходимо выполнить команду DROP TABLE:
DROP TABLE Пример 1
Удаление таблицы:
Когда существуют ограничения для других таблиц, на которые ссылается удаляемая таблица, можно пользоваться каскадной конструкцией CASCADE CONSTRAINTS:
DROP TABLE. Пример 2
Удаление таблицы с ограничениями целостности:
DROP TABLE table CASCADE CONSTRAINTS;
DROP TABLE, применяемый в mySQL
DROP TABLE. Пример 3
Для удаления таблицы также используется запрос:
DROP TABLE. Пример 4
В случае, если необходимо установить проверку на существование таблицы при удалении (если существует удалить таблицу) запрос принимает следующий вид:
DROP TABLE IF EXISTS table;
Данный запрос будет выполнен в том случае, если удаляемая таблица существует в базе данных.
DROP INDEX
Данный запрос DROP INDEX используется для удаления индексов в таблице.
DROP INDEX, применяемый в базе данных Oracle:
Когда индекс в базе данных больше не нужен, разработчик может удалить его командой DROP INDEX. После удаления индекса эффективность поиска с использованием столбца или столбцов, ограниченных индексом, больше не повышается и упоминание об индексе исчезает из словаря данных. Индекс, применяемый для первичного ключа, удалить нельзя.
Синтаксис оператора DROP INDEX одинаков для удаления индекса любого типа (уникальности, битовой карты или В-дерева). Чтобы каким-то образом улучшить индекс, нужно сначала удалить его, а потом создать новый.
DROP INDEX. Пример 1
DROP INDEX my_index;
DROP INDEX, применяемый в mySQL:
DROP INDEX. Пример 2
Для удаления индексов (INDEX) используется запрос:
DROP INDEX my_index ON table;
Данный запрос удаляет индексы, указанные в my_index из таблицы table, но она не работает в версиях MySQL до 3.22. В версиях 3.22 и более поздних используется команда:
ALTER TABLE table_name DROP INDEX index_name;
DROP DATABASE
DROP DATABASE. Пример 1
DROP DATABASE database;
Запрос DROP DATABASE удаляет базу данных database.
TRUNCATE TABLE
Запрос TRUNCATE TABLE используется для того, чтобы удалить данные внутри таблицы, тем самым не затрагивая саму таблицу. В нужном случае TRUNCATE TABLE может быть очень полезен.
TRUNCATE TABLE, примеры использования TRUNCATE TABLE
TRUNCATE TABLE. Пример 1
TRUNCATE TABLE table;
DROP SEQUENCE
DROP SEQUENCE используется для удаления последовательности.
DROP SEQUENCE. Пример 1
DROP SEQUENCE sequence_name;
DROP SYNONYM
DROP SYNONYM используется для удаления синонимов.
DROP SYNONYM. Пример 1
DROP SYNONYM synonym_name;
Для удаления общих синонимов необходимо воспользоваться командой DROP PUBLIC SYNONYM.
DROP SYNONYM. Пример 2
DROP PUBLIC SYNONYM synonym_name;
В Oracle PL/SQL метод DELETE удаляет все элементы из коллекции любого типа. Эта операция немедленно освобождает память, выделенную для удаляемых элементов.
Синтаксис
Синтаксис метода коллекций DELETE в Oracle PL/SQL.
Параметры или аргументы
collection_name - имя коллекции один из следующих типов associative arrays или nested tables.
DELETE(n) - удаляет элемент, индекс которого равен n , если этот элемент существует; в противном случае он ничего не делает.
DELETE(m,n) удаляет все элементы, индексы которых находятся в диапазоне m..n , если существуют как m , так и n , а m ; в противном случае он ничего не делает.
Примечание
Пример
Рассмотрим некоторые пример, чтобы понять как использовать метод коллекций DELETE в Oracle PL/SQL.
Пример метода DELETE с Nested Tables
В этом примере мы используем Nested Tables и делаем следующее:
- объявляем переменную Nested Tables
- инициализируем ее шестью элементами
- удаляем и затем восстанавливаем второй элемент
- удаляем ряд элементов, а затем восстанавливаем один из них
- и в конце удаляем все элементы
Восстановленные элементы занимают ту же память, что и соответствующие удаленные элементы. Процедура print_nt печатает переменную Nested Tables после инициализации и после каждой операции DELETE.
CREATE OR REPLACE PROCEDURE print_nt (nt nt_type) ISПример метода DELETE с Associative Arrays
Следующий пример заполняет Associative Arrays, индексированный строкой, и удаляет все элементы, что освобождает выделенную им память. Затем пример заменяет удаленные элементы, то есть добавляет новые элементы, которые имеют те же индексы, что и удаленные элементы. Новые элементы замены не занимают ту же память, что и соответствующие удаленные элементы. Наконец, пример удаляет один элемент, а затем ряд элементов. Процедура print_aa_str показывает эффекты операций.
Use the DROP INDEX statement to remove an index or domain index from the database.
When you drop an index, Oracle Database invalidates all objects that depend on the underlying table, including views, packages, package bodies, functions, and procedures.
When you drop a global partitioned index, a range-partitioned index, or a hash-partitioned index, all the index partitions are also dropped. If you drop a composite-partitioned index, all the index partitions and subpartitions are also dropped.
In addition, when you drop a domain index:
Oracle Database invokes the appropriate routine.
If any statistics are associated with the domain index, then Oracle Database disassociates the statistics types with the FORCE clause and removes the user-defined statistics collected with the statistics type.
CREATE INDEX and ALTER INDEX for information on creating and modifying an index
The domain_index_clause of CREATE INDEX for more information on domain indexes
ASSOCIATE STATISTICS and DISASSOCIATE STATISTICS for more information on statistics type associations
The index must be in your own schema or you must have the DROP ANY INDEX system privilege.
Specify the schema containing the index. If you omit schema , then Oracle Database assumes the index is in your own schema.
Specify the name of the index to be dropped. When the index is dropped, all data blocks allocated to the index are returned to the tablespace that contained the index.
Restriction on Dropping Indexes You cannot drop a domain index if the index or any of its index partitions is marked IN_PROGRESS .
FORCE applies only to domain indexes. This clause drops the domain index even if the indextype routine invocation returns an error or the index is marked IN PROGRESS . Without FORCE , you cannot drop a domain index if its indextype routine invocation returns an error or the index is marked IN PROGRESS .
Dropping an Index: Example This statement drops an index named ord_customer_ix_demo , which was created in "Compressing an Index: Example":
Порядок столбцов в операторе «Создание индекса» может повлиять на производительность запроса. Как правило, когда вы создаете композитный индекс, столбец часто использует в первом.
Если мы создадим композитный индекс для ускорения скорости запроса, такого как COL1, COL2 и COL3; затем только доступ к COL1 или только для доступа к Coll1 и COL2 будет ускорить. Но только доступ к COL2, только COL3 или запрос только COL2 и COL3 не будет использовать индексы.
Есть ли ограниченное количество кандидатов?
Стол может построить ряд индексов. Тем не менее, чем больше индексов, тем больше стоимость модификации таблицы. В частности, все индексы на таблице должны быть обновлены при вложении или удалении строк. Кроме того, при обновлении столбцов все индексы, содержащие столбец, должны быть обновлены.
Что такое индекс делеции?
- Он не ускоряет скорость запроса. Эта таблица может быть маленькой, или может быть много линий без записей индекса в таблице.
- Запрос программы не использует индексы
- Удалить оригинальный индекс до восстановления
Вы можете создать индекс, параллельный для создания индекса, используя головы
Вышеуказанные две операции - это экономия временной экономии, которые, конечно, создают параллельное создание, требует большего количества процессов, тогда требуется больше ресурсов. Огромные варианты уменьшают поколение Redo, и созданные большие показатели параллельно могут улучшить производительность.
Индекс недоступен:
Когда вы ввели много данных в таблицу, вы можете сделать индекс сначала непригодными, импортировать данные и восстановить индекс, который может повысить эффективность импорта. Вы можете создать неиспользуемый индекс, который может изменить статус индекса как нелюбимый, например, при создании неисправности индекса индекс помечен как непригодным для использования. Когда индекс разбиемого раздела помечен как неиспользуемый, индекс других разделов доступен. Индекс индекса или раздела, который нельзя использовать, должны быть восстановлены, удалены или воссозданы до того, как его можно будет использовать. Таблица усечения сделает неиспользуемый индекс, который будет доступен.
Параметр Skip_unusable_indexes установлен на true:
- Заявление о DML таблицы продолжается, но не поддерживает индекс
- Если есть недоступное ограничение, то DML бросит ошибку, чтобы остановить выполнение.
- Для неразделенных индексов оптимизатор не учитывает недоступный индекс при создании плана выполнения для оператора SELECT. Единственным исключением является явное указать индекс с использованием аннотаций INDEX ().
- Для индекса раздела, который недоступен для одного или нескольких разделов, если оптимизатор не может определить, может ли какой-либо раздел индекса можно отключить при компиляции запроса, оптимизатор не учитывает индекс. Это верно для таблиц разделов и не разделов. Единственным исключением является явное указать индекс с использованием аннотаций INDEX ().
Skip_unusable_indexes Параметры Это только false:
- Если существует недоступный индекс или раздел индекс, оператор DML этих индексов или разделов индекса будет завершен.
- Для оператора SELECT, если есть индекс или индекс раздела, который нельзя использовать, оптимизатор выполняет план без использования неиспользуемого индекса, то оператор продолжается. Однако, если оптимизатор выбирает неприятный индекс или неиспользуемый индекс раздела, оператор сообщит об ошибке для выполнения.
Индекс невидимый:
От базы данных Oracle 11G 1st вы можете создавать невидимые индексы или невидимые существующие индексы. Если вы не установите параметр инициализации OPTIONIZER_INVISIBLE_INDEXES, чтобы TRUE на сеансе или системном уровне, оптимизатор будет игнорировать невидимый индекс. В отличие от недопустимых индексов, невидимые индексы поддерживаются во время оператора DML. Хотя индекс раздела может быть установлен невидимым, видно, что другие индексы раздела можно увидеть без установки отдельного индекса раздела. С невидимым индексом вы можете сделать следующее:
- Проверьте индекс перед удалением индекса.
- Временную структуру индекса для некоторых из приложений или модулей, не влияющих на все приложение.
Взвешивание индекса или индекс реконструкции
Индекс реконструкции | Слияние индекса |
---|---|
Может быстро переместить индексы в другие табличные пространства | Не может перемещать индексы в другие табличные пространства |
Высокий накладной расход, нужно больше дискового пространства | Низкий накладной расход, нет больше дискового пространства |
Создайте новое дерево, уменьшите глубину дерева как можно больше | Мистер Листья в той же ветке дерева |
Возможность быстрого изменения параметров хранения и табличного пространства без необходимости удаления исходного индекса | Быстро выпустить индекс листьев для использования |
Блок индекса B дерева BLEX может быть выпущен, и эти блоки листьев объединяются с использованием следующего утверждения:
Рисунок 21-1 иллюстрирует влияние сочетания индекса ALTER для индекса VMOORE. Перед операцией первые два листа были более 50%. Следовательно, мусор может быть уменьшен и полностью заполнен первым блоком, а второй блок выделяется.
Рассмотреть расходы до отключения или удаления ограничений
Поскольку уникальные ограничения и ограничения первичных ключей имеют индекс, рассмотреть вопрос о незакреплении или удалении уникальных или первичных ключевых ограничений, рассмотрите возможность удаления и создания стоимости индекса. Если индекс уникальной кнопки или ограничения первичного ключа очень большой, вы можете сэкономить время, включив ограничения, а не удалять и воссоздать индекс. Вы также можете выбрать указать индекс, чтобы сохранить или удалить при удалении или отключении уникальных или первичных ключевых ограничений.
Давайте введем конкретный экземпляр синтаксиса SQL:
Здесь, наведенные и следующие параметры хранения указаны здесь
- Создать уникальный индекс
- Создайте индекс, связанный с ограничениями, могут быть реализованы несколько методов
- Создать отличный индекс
- Создайте большое временное пространство табличного стола, используйте его для создания индекса
- Используйте ALTER пользователь для переключения временного пространства табличного пространства
- Создать индекс
- Удалить это большое временное пространство табличного стола, переключитесь на исходное пространство временного стола, используя команду ALTER USER
- Создать индекс онлайн
- Создать индекс функции
- Создать сжатый индекс
- Создайте неверный индекс
- Создать невидимый индекс
- Индекс реконструкции
- Индекс недоступен
- Сделать индексы невидимыми
- Индекс монитора
- Контролировать использование места индекса
- Удалить индекс
- Связанный словарь данных
Взгляд головы DBA описывает информацию индекса для всех таблиц в базе данных. Взгляд всей заголовки описывает информацию индекса на всех доступных таблицах. Заголовок пользователя ограничен информацией индекса, принадлежащей пользователю. Некоторые столбцы в этих представлениях содержат статистику, сгенерированную пакетом DBMS_STATS или аналитическим утверждением.
DBA_INDEXES
ALL_INDEXES
USER_INDEXES
Следующий вид описывает информацию о перечисленных столбцах
DBA_IND_COLUMNS
ALL_IND_COLUMNS
USER_IND_COLUMNS
Таблица описания этих представлений на основе выражений индексации функций
DBA_IND_EXPRESSIONS
ALL_IND_EXPRESSIONS
USER_IND_EXPRESSIONS
Эти взгляды содержат информацию каждого индекса раздела, информацию о уровне разбиения, параметры хранения раздела и различной статистики раздела, создаваемых пакетом DBMS_STATS
DBA_IND_PARTITIONS
ALL_IND_PARTITIONS
USER_IND_PARTITIONS
Эти взгляды содержат индексированную статистику оптимизатора
DBA_IND_STATISTICS
ALL_IND_STATISTICS
USER_IND_STATISTICS
Статистика последнего анализа индекса анализа . Validate Структурное заявление
INDEX_STATS
INDEX_HISTOGRAM
Содержит информацию об использовании индекса, сгенерированную по индексу ALTE . Мониторинг использования
V$OBJECT_USAGE
Читайте также: