Microsoft SQL Server 2008 - 99% Fragmentierung auf non-clustered, non-unique index

Ich habe eine Tabelle mit mehreren Indizes (wie nachstehend definiert). Einer der Indizes (IX_external_guid_3) hat 99% Fragmentierung unabhängig davon, Umbau/Neuorganisation der index. Jemand eine Idee, was den Fehler verursachen, oder der beste Weg, um es zu beheben?

Sind wir mit Entity Framework 4.0 zur Abfrage dieser, die EF-Abfragen auf der anderen indizierten Felder zu 10x schneller im Durchschnitt dann die external_guid_3 Feld, aber ein ADO.Net Abfrage ist in etwa die gleiche Geschwindigkeit auf beiden (obwohl 2x langsamer als die EF-Abfrage an indizierte Felder).

Tabelle

  • - id(PK, int, not null)
  • guid(uniqueidentifier, null, "rowguid")
  • external_guid_1(uniqueidentifier, not null)
  • external_guid_2(uniqueidentifier, null)
  • Zustand(varchar(32), null)
  • value(varchar(max), null)
  • infoset(XML(.), null) --> in der Regel 2-4K
  • created_time(datetime, null)
  • updated_time(datetime, null)
  • external_guid_3(uniqueidentifier, nicht
    null)
  • FK_id(FK, int, null)
  • locking_guid(uniqueidentifer, null)
  • locked_time(datetime, null)
  • external_guid_4(uniqueidentifier,
    null)
  • corrected_time(datetime, null)
  • is_add(bit, nicht null) Wert(int,
    null)
  • row_version(timestamp, null)

Indizes

  • PK_table(Gruppierten)
  • IX_created_time(Nicht Eindeutigen, Nicht Gruppierten)
  • IX_external_guid_1(Nicht Eindeutigen, Nicht Gruppierten)
  • IX_guid(Nicht Eindeutigen, Nicht Gruppierten)
  • IX_external_guid_3(Nicht Eindeutigen, Nicht Gruppierten)
  • IX_state(Nicht Eindeutigen, Nicht Gruppierten)
InformationsquelleAutor JMorgan | 2010-12-21
Schreibe einen Kommentar