none
Index Reorganisieren unter SQL Server Enterprise Edition RRS feed

  • Frage

  • Hallo,

    mit einer SQL Server Enterprise Edition kann eine Index-Neuerstellung Online erfolgen,
    ohne das die Benutzer blockiert werden.
    Eine Index-Reorgansiation erfoglt ja immer Online. Hat da der Benutzer auch die gleichen Vorteile
    oder verhält sich dort eine Enterprise Edition nicht anders als die anderen?

    Gruß,
      Lars
    Freitag, 19. Februar 2010 15:40

Alle Antworten

  • Hallo Lars,
    mir fallen da jetzt direkt Unterschiede zwischen den Editionen ein. Beachte aber, dass eine Reorganisation immer einen deutlichen Overhead bedeutet, den Du z. B. in der Grösse der Transaktionssicherungen feststellen wirst. MS empfiehlt einen Reorg bei einer Fragmentierung bis 33% .
    Einen schönen Tag noch, Christoph Muthmann Microsoft SQL Server MVP, http://www.insidesql.org
    Montag, 22. Februar 2010 08:04
    Beantworter
  • Hallo Christoph,

    meinstest Du, Dir fallen jetzt direkt "keine" Unterschiede ein? Es ist nur so, dass bei uns
    nachgedacht wird, auf die Enterprise Edition zu wechseln, weil ein Reorg die Benutzer zu stark blockiert.
    Wenn aber sich gegenüber der Standard-Version beim Reorg nichts ändert, lohnt sich dass vielleicht gar nicht.
    Bzw. anstatt eine Reorgs dann lieber immer gleich ein Neuaufbau.

    Gruß,
      Lars
    Montag, 22. Februar 2010 10:39
  • Sorry Tippfehler: Mir fallen direkt keine Unterschiede ein.

    Wie ist denn die Fragmentierung der Indizes, bevor ihr reorganisiert?
    Macht ihr den Reorg in Zeiten mit wenig Aktivitäten?
    Einen schönen Tag noch, Christoph Muthmann Microsoft SQL Server MVP, http://www.insidesql.org
    Montag, 22. Februar 2010 12:15
    Beantworter
  • Hallo,
    die Fragmentierung ist ggf. höher als 33%. Leider haben wir einen echten 24 Stunden-Betrieb und daher verzichten wir schon auf eine blockierende Index-Neuerstellung bzw. denken über eine Migration zur Enterprise-Edition nach. Wenn sich aber das Verhalten der Enterprise-Edition bei einem Reorg nicht ändert können wir dann gleich auf eine Online-Neuerstellung umstellen.

    Gruß,
      Lars
    Montag, 22. Februar 2010 14:00
  • Hallo Lars,

    die Index-Reorganisierung ist bei der Express - bis Enterprise Edition identisch, da ändert sich nichts.


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Montag, 22. Februar 2010 14:53
  • Hall Olaf,

    vielen Dank!

    Gruß,
      lars
    Montag, 22. Februar 2010 15:24
  • Hallo Lars,

    darf ich mal neugierig sein und fragen, wie groß bei Dir der Datenbestand ist?
    Ich habe 280 GB und mache einmal die Woche einen Reorg, das reicht lang hin.
    Man müsste schon einen extremen täglich Zuwachs an Daten haben, damit ein ständiger Reorg Sinn macht.
    Und ich habe auch noch nicht gehört, das so etwas bei großen Installationen gemacht wird.
    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Montag, 22. Februar 2010 20:20
  • Hallo Olaf,

    kann ich im Moment gar nicht so genau sagen. Es ist die Datenbank unseres Kunden, aber in den Tabellen laufen teilweise
    Daten von Geräten ein (daher auch die 24 Stunden). Prinzipiell wachsen die Tabellen kontinuierlich an und es gibt wenige Updates.
    Ich finde die Blockierungen während eines Reorgs schon aussergewöhnlich und ich vermute eher ein darunter liegendes I/O-Problem.

    Gruß,
      Lars
    Mittwoch, 24. Februar 2010 12:31
  • Hallo Lars,

    das hört sich jetzt für mich eher nicht mehr nach einer zielgerichteten Aktion an.
    Wir befeuern unsere DB auch, da kommen in einer Tabelle täglich bis zu 100k Datensätze hinzu; ~ 100 Mio sind schon drin und es gibt trotzdem keine Performance-Probleme mit Adhoc-Abfragen.

    Welche Probleme treten den auf, wenn z.B. eine Woche lang kein Indizes reorganisiert werden?
    Werden Abfragen deutlich langsamer oder nur geringfügig?

    Werden alle vorhandene Indizes auch verwendet (dm_db_index_usage_stats)?
    Nicht verwendete würde ich erst einmal deaktivieren, später löschen.
    Nicht vorhandene Indizes müssen bei Schreibvorgängen nicht aktualisiert werden, was DML schneller macht.
    ... und müssen auch nicht reorganisiert werden.
    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Donnerstag, 25. Februar 2010 18:20
  • Hallo,

    mit einer SQL Server Enterprise Edition kann eine Index-Neuerstellung Online erfolgen,
    ohne das die Benutzer blockiert werden.
    Eine Index-Reorgansiation erfoglt ja immer Online. Hat da der Benutzer auch die gleichen Vorteile
    oder verhält sich dort eine Enterprise Edition nicht anders als die anderen?

    Gruß,
      Lars


    Hi zusammen,

    ich gebe meinen Senf auch mal dazu:

    Die Online Indizierung der Enterprise Ed. unterscheidet sich von anderen Versionen dadurch, dass während der Indexerstellung Row-Versioning eingeschaltet ist und die Tabelle eben nicht komplett gesperrt ist. Das ist bei der sogenannten Offline-Indizierung (Standard Ed und abwärts) regelmäßig der Fall. Die Enterprise bietet also eine höhere Verfügbarkeit der Daten auch während der Indexwartung.

    Für die Online Indizierung gibt es auch Ausnahmen: Indexed Views können z.B. nicht online indiziert werden.

    Hilft das?

    Noch was: Einen ReIndex sollte man aus zwei wichtigen Gründen regelmäßig machen:
    1. Füllfaktoren - man will keine übermäßigen Seitenteilungen, die Transaktionen und somit Sperren nur unnötig verlängern
    2. Defragmentierung - Wenn "große Löcher" in Indexen entstehen (durch updates oder deletes), dann verringert sich die Infortionsdichte und die nötigen Seitenleseoperationen nehmen zu, was insgesamt zu langsameren Abfragen führt.

    1.) erreicht man mit einem REORG nicht. Deshalb empfehle ich stets den REBUILD.
    Aber wie immer: It depends. Hängt ganz von der Anwendung ab.


    Bodo Michael Danitz - MCT, MCITP - free consultant - performance guru - www.sql-server.de
    Montag, 19. April 2010 20:53