Discutiremos as várias categorias de índices no Microsoft SQL Server. Os principais tipos de índices são: índices em cluster, índices não agrupados, índices Btree e índices exclusivos.
Tipos de índices no servidor Microsoft SQL
Índice em cluster
Um índice agrupado define o arranjo físico real dos dados dentro de uma tabela. Cada tabela no servidor SQL pode ter apenas um índice em cluster, e o índice deve ser criado em uma coluna exclusiva e não nula ou conjunto de colunas. Como um índice em cluster determina o layout físico de uma tabela, é frequentemente usado para tabelas que são frequentemente pesquisadas com base em sua chave primária ou em outros valores únicos.
Vamos primeiro criar uma tabela e inserir os valores nela usando os seguintes comandos SQL:
Insira nos clientes (Customer_id, Customer_Name, Customer_Email, Customer_phone)Vejamos um exemplo de um índice agrupado. Para criar um índice em cluster na coluna "Customer_Id", podemos usar a seguinte consulta SQL:
Crie índice clusterado idx_customers_customer_name nos clientes (cliente_name);Isso cria um índice agrupado na coluna Customer_name, onde os dados da tabela são fisicamente ordenados com base nos valores na coluna Customer_name.
Para buscar todos os clientes cujo nome começa com a letra "A", podemos usar a seguinte consulta SQL:
Selecione *Saída:
Customer_Id Customer_Name Customer_Email Customer_phoneÍndice não agrupado
É um tipo de índice que não afeta a ordem física dos dados em uma tabela. Um índice não agrupado produz uma estrutura de dados independente que armazena a chave do índice e o ponteiro da linha de dados associados na tabela. Isso permite que as consultas localizem rapidamente as linhas de dados relevantes com base nos valores no índice. Ao contrário dos índices agrupados, as tabelas no servidor SQL podem ter vários índices não agrupados, e o índice pode ser criado em qualquer coluna ou conjunto de colunas na tabela.
Um exemplo de um índice não agrupado é o seguinte:
Crie índice não clusterado idx_customer_emailIsso cria um índice não agrupado na coluna "Customer_Email", onde os dados da tabela permanecem fisicamente não ordenados, mas o índice armazena uma cópia classificada dos dados na coluna "Customer_Email".
Para buscar todos os clientes cujo endereço de e -mail inclui o “Gmail.com ”domínio, podemos usar a seguinte consulta SQL:
Selecione *Saída:
Customer_Id Customer_Name Customer_Email Customer_phoneAqui, nenhum cliente tem um email que contém o “Gmail.com ”domínio, então o campo de saída está vazio.
Índice Btree
Um índice Btree é uma maneira de organizar os dados em uma estrutura que se assemelha a uma árvore. Cada nó na árvore contém uma variedade de valores -chave, e cada nó foliar contém um ponteiro para a linha de dados correspondente. Os índices de Btree são comumente usados no servidor SQL porque permitem pesquisa e classificação eficientes de grandes quantidades de dados. Eles são especialmente úteis para consultas que envolvem pesquisas de alcance ou operações de classificação. Por exemplo: salários, números de telefone, etc.
Um exemplo de criação de um índice btree na coluna "Customer_phone" é o seguinte:
Crie índice idx_customer_phoneIsso cria um índice B-Tree na coluna "Customer_phone", onde os dados no índice são armazenados em uma estrutura semelhante a uma árvore, com cada nó contendo uma variedade de valores e ponteiros para os outros nós.
Agora, queremos recuperar todos os clientes cujo número de telefone começa com o código de área de "555" usando a seguinte consulta SQL:
Selecione *Saída:
Customer_Id Customer_Name Customer_Email Customer_phoneÍndice exclusivo
É um tipo de índice que garante que não há duas linhas em uma tabela o mesmo valor -chave. Isso pode ser útil para impor a integridade dos dados e impedir os registros duplicados em uma tabela.
Um exemplo de criação de um índice exclusivo na coluna "Customer_Email" é o seguinte:
Crie índice IDX_CUSTOMER_EMAIL_NEWIsso cria um índice exclusivo na coluna "Customer_Email", onde o índice aplica uma restrição que garante que não há duas linhas na tabela que possam ter o mesmo valor na coluna "Customer_Email".
Agora, insira um novo cliente na mesa com o “[email protected] ”e -mail e recupere -o usando a seguinte consulta SQL:
Insira nos clientes (Customer_id, Customer_Name, Customer_Email, Customer_phone)Saída:
Customer_Id Customer_Name Customer_Email Customer_phoneConclusão
Os índices desempenham um papel importante na otimização do desempenho dos bancos de dados do SQL Server. Compreender os diferentes tipos de índices pode ajudar os administradores do banco de dados a escolher o tipo de índice mais apropriado para seus aplicativos. Ao criar e manter efetivamente a manutenção dos índices, as empresas podem garantir que seus bancos de dados estejam executando com eficiência, permitindo que eles tomem decisões orientadas a dados e forneçam um melhor serviço aos seus clientes.