AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 54731
Accepted
Sean Long
Sean Long
Asked: 2013-12-10 10:19:35 +0800 CST2013-12-10 10:19:35 +0800 CST 2013-12-10 10:19:35 +0800 CST

Qual é a porcentagem de "Porcentagem de Fragmentação do Índice"?

  • 772

Estou familiarizado com o conceito de fragmentação de índice e como corrigi-lo, mas não tenho certeza de um item específico.

Quando você observa a fragmentação do índice, ela sempre é relatada em termos de Percentage .

  • De quanto é essa porcentagem?
sql-server index
  • 2 2 respostas
  • 6607 Views

2 respostas

  • Voted
  1. Best Answer
    Thomas Stringer
    2013-12-10T10:29:25+08:002013-12-10T10:29:25+08:00

    Será fragmentação lógica para índices e fragmentação de extensão para heaps. A referência BOL na sys.dm_db_index_physical_statsverdade fornece informações muito boas sobre o tópico:

    Fragmentação Lógica

    Esta é a porcentagem de páginas fora de ordem nas páginas folha de um índice. Uma página fora de ordem é uma página para a qual a próxima página física alocada para o índice não é a página apontada pelo ponteiro da próxima página na página folha atual.

    Fragmentação de extensão

    Esta é a porcentagem de extensões fora de ordem nas páginas folha de um heap. Uma extensão fora de ordem é aquela para a qual a extensão que contém a página atual para um heap não é fisicamente a próxima extensão após a extensão que contém a página anterior.

    O valor de avg_fragmentation_in_percent deve ser o mais próximo possível de zero para desempenho máximo. No entanto, valores de 0% a 10% podem ser aceitáveis. Todos os métodos de redução da fragmentação, como reconstrução, reorganização ou recriação, podem ser usados ​​para reduzir esses valores. Para obter mais informações sobre como analisar o grau de fragmentação em um índice, consulte Reorganizar e reconstruir índices.

    Pense em um índice, conforme destacado acima, é a "porcentagem de páginas fora de ordem nas páginas folha". Uma página de índice será uma lista duplamente encadeada. Em outras palavras, cada página aponta para a página seguinte e para a página anterior em seu respectivo nível de índice. Aqui está uma imagem de como é uma lista duplamente encadeada (para fins ilustrativos):

    insira a descrição da imagem aqui

    Nota: a imagem acima foi retirada aleatoriamente da internet, é uma representação simples. Mas falta Ao próximo ponteiro de e Fo ponteiro anterior de . Eu não queria nenhuma confusão sobre como seria exatamente uma página folha em um índice do SQL Server.

    Essa estrutura vai representar o fluxo lógico dos dados. Em outras palavras, qual página vem a seguir, independentemente de qual seja a realidade física. Essa fragmentação lógica entra em jogo quando a próxima página física real não é o que a próxima página é apontada pela página folha atual.

    Dada a definição acima, digamos que você tenha quatro páginas de índice. 1 de 4 dessas páginas de índice o ponteiro da próxima página não é a página física próxima a ela, mas as outras 3 têm essa natureza física. Nesse caso, sua porcentagem de fragmentação seria de 25%. Claro, esse foi um exemplo simples e, na realidade, você não se importaria com um índice menor que milhares de páginas. Mas espero que isso deixe um pouco mais claro exatamente o que esse número representa.

    Aqui estão algumas boas leituras sobre Estruturas de Índice Clustered , Estruturas de Índice Nonclustered e Estruturas de Heap .

    • 13
  2. Sean Long
    2013-12-10T10:26:50+08:002013-12-10T10:26:50+08:00

    Encontrei a resposta em outro lugar na Internet, cortesia de Grant Fritchey.

    "Quando você olha para a porcentagem de fragmentação, você está olhando para a fragmentação externa. Significa a porcentagem de páginas que estão fora de ordem mostrando um mecanismo de armazenamento ineficiente."

    http://ask.sqlservercentral.com/questions/6505/what-is-index-fragmentation-actually.html

    Portanto, é quantas páginas do total estão fora de ordem.

    • 3

relate perguntas

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Quanto "Padding" coloco em meus índices?

  • Como determinar se um Índice é necessário ou necessário

  • O que significa "índice" em RDBMSs? [fechado]

  • Como criar um índice condicional no MySQL?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve