DB2 - Exemplos simples - INDEX



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

DB2 - Exemplos simples - INDEX

Creates or deletes an index in a table
Cria ou exclui um índice em uma tabela

The following SQL creates an index named "idx_lastname" on the "LastName" column in the "Persons" table:
O seguinte SQL cria um índice denominado "idx_lastname" na coluna "LastName" da tabela "Persons":

    CREATE INDEX idx_lastname
        ON Persons (LastName);

If you want to create an index on a combination of columns, you can list the column names within the parentheses, separated by commas:
Se quiser criar um índice em uma combinação de colunas, você pode listar os nomes das colunas entre parênteses, separados por vírgulas:

    CREATE INDEX idx_pname
           ON Persons (LastName, FirstName);

Example 1 - Exemplo 1:

Create an index named UNIQUE_NAM on the PROJECT table.
The purpose of the index is to ensure that there are not two entries in the table with the same value for project name (PROJNAME).
The index entries are to be in ascending order.

Crie um índice denominado UNIQUE_NAM na tabela PROJECT.
O objetivo do índice é garantir que não haja duas entradas na tabela com o mesmo valor para o nome do projeto (PROJNAME).
As entradas do índice devem estar em ordem crescente.

    CREATE UNIQUE INDEX UNIQUE_NAM
           ON PROJECT(PROJNAME)

Example 2 - Exemplo 2:

Create an index named JOB_BY_DPT on the EMPLOYEE table.
Arrange the index entries in ascending order by job title (JOB) within each department (WORKDEPT).

Crie um índice denominado JOB_BY_DPT na tabela EMPLOYEE.
Organize as entradas de índice em ordem crescente por cargo (JOB) dentro de cada departamento (WORKDEPT).

    CREATE INDEX JOB_BY_DPT
           ON EMPLOYEE (WORKDEPT, JOB)

Example 3 - Exemplo 3:

The nickname EMPLOYEE references a data source table called CURRENT_EMP.
After this nickname was created, an index was defined on CURRENT_EMP.
The columns chosen for the index key were WORKDEBT and JOB.
Create an index specification that describes this index.
Through this specification, the optimizer will know that the index exists and what its key is.
With this information, the optimizer can improve its strategy to access the table.

O apelido EMPLOYEE faz referência a uma tabela de origem de dados chamada CURRENT_EMP.
Depois que esse apelido foi criado, um índice foi definido em CURRENT_EMP.
As colunas escolhidas para a chave de índice foram WORKDEBT e JOB.
Crie uma especificação de índice que descreva esse índice.
Por meio desta especificação, o otimizador saberá que o índice existe e qual é sua chave.
Com essas informações, o otimizador pode aprimorar sua estratégia de acesso à tabela.

    CREATE UNIQUE INDEX JOB_BY_DEPT
           ON EMPLOYEE (WORKDEPT, JOB)
          SPECIFICATION ONLY

Example 4 - Exemplo 4:

Create an extended index type named SPATIAL_INDEX on a structured type column location.
The description in index extension GRID_EXTENSION is used to maintain SPATIAL_INDEX.
The literal is given to GRID_EXTENSION to create the index grid size.

Crie um tipo de índice estendido denominado SPATIAL_INDEX em um local de coluna de tipo estruturado.
A descrição na extensão de índice GRID_EXTENSION é usada para manter SPATIAL_INDEX.
O literal é fornecido a GRID_EXTENSION para criar o tamanho da grade do índice.

    CREATE INDEX SPATIAL_INDEX ON CUSTOMER (LOCATION)
           EXTEND USING (GRID_EXTENSION (x'000100100010001000400010'))

Example 5 - Exemplo 5:

Create an index named IDX1 on a table named TAB1, and collect basic index statistics on index IDX1.
Crie um índice denominado IDX1 em uma tabela denominada TAB1 e colete estatísticas básicas de índice no índice IDX1.

    CREATE INDEX IDX1 ON TAB1 (col1) COLLECT STATISTICS

Example 6 - Exemplo 6:

Create an index named IDX2 on a table named TAB1, and collect detailed index statistics on index IDX2.
Crie um índice denominado IDX2 em uma tabela denominada TAB1 e colete estatísticas de índice detalhadas no índice IDX2.

   CREATE INDEX IDX2 ON TAB1 (col2) COLLECT DETAILED STATISTICS

Example 7 - Exemplo 7:

Create an index named IDX3 on a table named TAB1, and collect detailed index statistics on index IDX3 using sampling.
Crie um índice denominado IDX3 em uma tabela denominada TAB1 e colete estatísticas de índice detalhadas no índice IDX3 usando amostragem.

    CREATE INDEX IDX3 ON TAB1 (col3) COLLECT SAMPLED DETAILED STATISTICS

Example 8 - Exemplo 8:

Create a unique index named A_IDX on a partitioned table named MYNUMBERDATA in table space IDX_TBSP.
Crie um índice exclusivo denominado A_IDX em uma tabela particionada denominada MYNUMBERDATA no espaço de tabela IDX_TBSP.

    CREATE UNIQUE INDEX A_IDX ON MYNUMBERDATA (A) IN IDX_TBSP

Example 9 - Exemplo 9:

Create a non-unique index named B_IDX on a partitioned table named MYNUMBERDATA in table space IDX_TBSP.
Crie um índice não exclusivo denominado B_IDX em uma tabela particionada denominada MYNUMBERDATA no espaço de tabela IDX_TBSP.

    CREATE INDEX B_IDX ON MYNUMBERDATA (B)
           NOT PARTITIONED IN IDX_TBSP

Example 10 - Exemplo 10:

Create an index over XML data on a table named COMPANYINFO, which contains an XML column named COMPANYDOCS.
The XML column COMPANYDOCS contains a large number of XML documents similar to the one below:

Crie um índice sobre dados XML em uma tabela chamada COMPANYINFO, que contém uma coluna XML chamada COMPANYDOCS.
A coluna XML COMPANYDOCS contém um grande número de documentos XML semelhantes ao seguinte:

Users of the COMPANYINFO table often need to retrieve employee information using the employee ID.
An index like the following one can make that retrieval more efficient.

Os usuários da tabela COMPANYINFO geralmente precisam recuperar as informações do funcionário usando a ID do funcionário.
Um índice como o seguinte pode tornar essa recuperação mais eficiente.

    CREATE INDEX EMPINDEX ON COMPANYINFO(COMPANYDOCS)
           GENERATE KEY USING XMLPATTERN '/company/emp/@id'
           AS SQL DOUBLE

Example 11 - Exemplo 11:

The following index is logically equivalent to the index created in the previous example, except that it uses unabbreviated syntax.
O índice a seguir é logicamente equivalente ao índice criado no exemplo anterior, exceto que usa uma sintaxe não abreviada.

    CREATE INDEX EMPINDEX ON COMPANYINFO(COMPANYDOCS)
           GENERATE KEY USING XMLPATTERN '/child::company/child::emp/attribute::id'
           AS SQL DOUBLE

Example 12 - Exemplo 12:

Create an index on a column named DOC, indexing only the book title as a VARCHAR(100).
Because the book title should be unique across all books, the index must be unique.

Crie um índice em uma coluna chamada DOC, indexando apenas o título do livro como um VARCHAR (100).
Como o título do livro deve ser único em todos os livros, o índice deve ser único.

    CREATE UNIQUE INDEX MYDOCSIDX ON MYDOCS(DOC)
           GENERATE KEY USING XMLPATTERN '/book/title'
           AS SQL VARCHAR(100)

Example 13 - Exemplo 13:

Create an index on a column named DOC, indexing the chapter number as a DOUBLE.
This example includes namespace declarations.

Crie um índice em uma coluna chamada DOC, indexando o número do capítulo como DOUBLE.
Este exemplo inclui declarações de namespace.

    CREATE INDEX MYDOCSIDX ON MYDOCS(DOC)
           GENERATE KEY USING XMLPATTERN
          'declare namespace b="http://www.example.com/book/";
           declare namespace c="http://acme.org/chapters";
           /b:book/c:chapter/@number'
           AS SQL DOUBLE

Example 14 - Exemplo 14:

Create a unique index named IDXPROJEST on table PROJECT and include column PRSTAFF to allow index-only access of the estimated mean staffing information.
Crie um índice exclusivo denominado IDXPROJEST na tabela PROJECT e inclua a coluna PRSTAFF para permitir o acesso apenas ao índice das informações de equipe média estimada.

    CREATE UNIQUE INDEX IDXPROJEST ON PROJECT (PROJNO) INCLUDE (PRSTAFF)