|
Deletes an index in a table
Exclui um índice em uma tabela
The DROP INDEX command is used to delete an index in a table.
O DROP INDEX comando é usado para excluir um índice em uma tabela.
This statement is an extension to the ANSI/ISO standard for SQL.
Esta declaração é uma extensão do padrão ANSI / ISO para SQL.
Usage
In a typical online transaction processing (OLTP) environment, concurrent applications are connected to the database server to perform DML operations.
For every query, the optimizer chooses a plan that is based on existing indexes, distribution statistics, and directives. After numerous OLTP transactions,
however, the chosen plan might no longer be the best plan for query execution.
In this case, dropping an inefficient index can sometimes improve performance.
Em um ambiente típico de processamento de transações online (OLTP), os aplicativos simultâneos são conectados ao servidor de banco de dados para executar operações
DML.
Para cada consulta, o otimizador escolhe um plano baseado em índices, estatísticas de distribuição e diretivas existentes.
Após várias transações OLTP, no entanto, o plano escolhido pode não ser mais o melhor plano para a execução da consulta.
nesse caso, eliminar um índice ineficiente às vezes pode melhorar o desempenho.
You must be the owner of the index or have the DBA privilege to use the DROP INDEX statement.
The following example drops the index o_num_ix that joed owns.
The stores_demo database must be the current database:
Você deve ser o proprietário do índice ou ter o privilégio de DBA para usar a instrução DROP INDEX.
O exemplo a seguir elimina o índice o_num_ix que joed possui.
O banco de dados stores_demo deve ser o banco de dados atual:
DROP INDEX stores_demo:joed.o_num_ix;
|
You cannot use the DROP INDEX statement to drop a unique constraint, nor to drop an index that supports a constraint;
you must use the ALTER TABLE . . . DROP CONSTRAINT statement to drop the constraint.
When you drop the constraint, the database server automatically drops any index that exists solely to support that constraint.
If you attempt to use DROP INDEX to drop an index that is shared by a unique constraint, the database server renames the specified index in the sysindexes system
catalog table, declaring a new name in this format:
Você não pode usar a instrução DROP INDEX para eliminar uma restrição exclusiva, nem para eliminar um índice que suporte uma restrição;
você deve usar o ALTER TABLE. . . Instrução DROP CONSTRAINT para eliminar a restrição.
Quando você elimina a restrição, o servidor de banco de dados elimina automaticamente qualquer índice existente apenas para suportar essa restrição.
Se você tentar usar DROP INDEX para descartar um índice que é compartilhado por uma restrição exclusiva, o servidor de banco de dados renomeia o índice
especificado na tabela de catálogo do sistema sysindexes, declarando um novo nome neste formato:
Here tabid and constraint_id are from the systables and sysconstraints system catalog tables, respectively.
The sysconstraints.idxname column is then updated to something like: " 121_13" (where quotation marks show the leading blank space).
If this index is a unique index with only referential constraints sharing it, the index is downgraded to a duplicate index after it is renamed.
Aqui tabid e constraint_id são das tabelas de catálogo do sistema systables e sysconstraints, respectivamente.
A coluna sysconstraints.idxname é então atualizada para algo como:"121_13"(onde as aspas mostram o espaço em branco inicial).
Se este índice for um índice exclusivo com apenas restrições referenciais compartilhando-o, o índice será rebaixado para um índice duplicado após ser renomeado.
In some contexts, an alternative to the DROP INDEX statement is the SET Database Object Mode statement, which can disable a specified index without removing it
from the system catalog.
For more information about this SQL statement, which can also enable an index that is currently disabled, see SET Database Object Mode statement.
Em alguns contextos, uma alternativa à instrução DROP INDEX é a instrução SET Database Object Mode, que pode desabilitar um índice especificado sem removê-lo do
catálogo do sistema.
Para obter mais informações sobre esta instrução SQL, que também pode habilitar um índice atualmente desabilitado, consulte Instrução SET Database Object Mode.
If you include the optional IF EXISTS keywords, the database server takes no action (rather than sending an exception to the application) if no index of the
specified name is registered in the current database.
Se você incluir as palavras-chave IF EXISTS opcionais, o servidor de banco de dados não executará nenhuma ação (em vez de enviar uma exceção ao aplicativo) se
nenhum índice do nome especificado estiver registrado no banco de dados atual.
Example - Exemplo
An index such as the one found in the stores_demo database can be dropped with:
Um índice como o encontrado no banco de dados store_demo pode ser eliminado com:
If necessary, you can specify the index name as the fully qualified four-part object name (database@instance:owner.indexname), as in the following:
Se necessário, você pode especificar o nome do índice como o nome de objeto de quatro partes totalmente qualificado ( banco de dados @ instância: proprietário.nome
do índice ), como a seguir:
DROP INDEX stores_demo@prod:"informix".zip_ix ;
|
Details of existing functions can be found in the sysprocedures system catalog table, as in the following:
Os detalhes das funções existentes podem ser encontrados na tabela de catálogo do sistema sysprocedures , como a seguir:
SELECT idxname FROM sysindices ;
|
The ONLINE keyword of DROP INDEX
For indexes that were not defined with the IN TABLE keyword option, the DBA can reduce the risk of nonexclusive access errors, and can increase the availability
of the indexed table, by including the ONLINE keyword as the last specification of the DROP INDEX statement.
The ONLINE keyword instructs the database server to drop the index while minimizing the duration of an exclusive lock, so that the index can be dropped while
concurrent users are accessing the table.
Para índices que não foram definidos com a opção de palavra-chave IN TABLE, o DBA pode reduzir o risco de erros de acesso não exclusivo e pode aumentar a
disponibilidade da tabela indexada, incluindo a palavra-chave ONLINE como a última especificação de a instrução DROP INDEX.
A palavra-chave ONLINE instrui o servidor de banco de dados a eliminar o índice enquanto minimiza a duração de um bloqueio exclusivo, para que o índice possa ser
eliminado enquanto usuários simultâneos acessam a tabela.
|