Announcement

Collapse
No announcement yet.

MSSQL7 vs. komprimieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MSSQL7 vs. komprimieren

    Hallo aus München,
    ich bin nur ein einfacher "Wald- und Wiesenadministrator" und stehe vor einem SQL-Problem. Wenn ich die Situation richtig sehe, handelt es sich um eine MSSQL7 Datenbank. Diese DB habe ich in 02/08 mit ca. 40 MB gesichert. Obwohl dort nicht viel gearbeitet wurde, liegt die DB jetzt so bei ca 1,1 GB. An sich vielleicht kein Problem - nur dauert die Anmeldung ca. 4 Minuten und wenn ich dann alle weiteren Prozedere durchlitten habe, dauert eine "lächerliche" Abfrage auch so zwischen 5 - 10 Minuten.
    Die eigentliche Software (Baujahr 2000, nie supportet, Heute wohl SAGE) bietet zwar die Funktion "komprimieren und reparieren", allerdings dauert der Vorgang mehr als ein Wochenende. Also habe ich das abgebrochen und die Software deinstalliert und wieder neu installiert: keine Änderung im Verhalten.
    Also altes Access-Wissen 'rausgekramt: Komprimieren! Aber wie? Irgendwie gibt es über google auch keinen Hinweis. Und so schräge Vorschläge wie DB konvertieren zu ... sind für mich eher nicht geeignet.
    Weiß wer Rat?
    Zuletzt editiert von ulord; 10.06.2008, 11:05.

  • #2
    1.) Komprimieren gibt es bei Access, aber nicht beim SQL-Server
    2.) Welche Anmeldung dauert so lange? Wenn man sich mit einem Tool wie dem Enterprise Manager anmeldet (wenn es SQL-Server ist) oder wenn man sich mit der (Sage)Software anmeldet?
    3.) Beim SQL-Server kann es sein, dass der Log-File, falls nie komplett gesichert wurde, so groß geworden ist. Schaue dir dazu mal am besten die Beschreibung zum Backup-Befehl an.

    bye,
    Helmut

    Comment


    • #3
      Hallo Helmut,
      hm, die SAGE-Software kennt diesen Befehl - und da dachte ich, dass bezieht sich dann auf die SQL-DB.
      Da ich für MSSQL7 keinen Enterprise Manager gefunden habe ... - also die Anmeldung bezieht sich auf die Software; sowohl beim Anmelden an sich, als auch bei der Auswahl der DB und des Mandanten.
      Backup-Befehl? Sicherung gibt es - aber die hilft irgendwie nicht.
      ??? Ulrich

      Comment


      • #4
        Bist du sicher, dass es sich um einen SQL-Server handelt? Wenn ja, dann muss ein Dienst namens MSSQLSERVER oder so ähnlich laufen. Ist das so?
        Und wenn ja, dann würde ich empfehlen, auf den Server 2005 umzusteigen, eventuell reicht ja der SQLExpress, der ist sogar gratis.
        Aber das Problem mit der Laufzeit liegt wohl am Programm, wenn das zB satzweise Verarbeitung macht und Indizes fehlen oder nicht richtig gesetzt sind, dann hilft auch eine andere Datenbank nichts, dann wird's immer langsamer werden. Nur - da kann dir nur der Programmhersteller weiterhelfen.

        bye,
        Helmut

        Comment


        • #5
          Hallo Helmut,
          ja, es ist MSSQL7 - und der dazugehörige Server läuft.
          In der Software gibt es neben der "Arbeits"-DB eine Globale-DB - und die kann ich erfolgreich reorganisieren. Dauert zwar auch ein paar Minuten - aber ich bekomme einen Bericht und eine Erfolgsmeldung.
          Ich lade mir jetzt mal Deine Empfehlung herunter - und hoffe, dass die Software damit zurecht kommt.
          Vielen Dank für die Tipps - und einen schönen Feierabend - ich werde hier noch ein bisschen werkeln!
          Ulrich

          Comment


          • #6
            Hallo,

            die Datenbank sollte Autoshrink = true und möglichst Wiederherstellunsgmodel = einfach haben. Standardmäßig ist Autoshrink = false seit MS SQL 7. D.h. deine Datenbank wird immer größer, selbst wenn Du 100000 Einträge löschen solltest und dann nur einen 1 neuen Eintrag erzeugst.

            Mit dem Wiederherstellungsmodell = einfach wird sichergestellt, dass regelmäßig das Transaktionsprotokoll "abgeschnitten" wird. Auch das ein Grund warum Deine DB immer mehr wächst.

            Etwas anderes als Wiederherstellungsmodell = einfach würde ich nur wählen, wenn die Applikation das Transaktionsprotokoll selbst verwaltet oder wenn es einen DB-Admin gibt.

            Die beiden Einträge findest Du in den Optionen zu Deiner Datenbank. AutoShrink steht dort bei sowas ähnlichem wie "Datenbank verkleinern", beim Wiederherstellungsmodel weiss ich das jetzt nicht mehr bei SQL 2000.

            Beste Grüße

            Raimund

            Comment


            • #7
              Dass ein einmal verwendeter Platz auch nach dem Löschen nicht mehr wiederverwendet wird, weil Autoshrink auf False steht, stimmt nicht (kann man ja selber leicht ausprobieren, zB eine testtabelle mit vielen Datensätzen erzeugen, diese dann löschen, wieder erzeugen, wieder löschen, .. und immer schauen, was passiert (siehe Eigenschaften) )
              Ich würde eher davor warnen, Autoshrink auf True zu setzen, das führt wegen der daduch zumeist entstehenden Fragmentierung unter Umständen zu schwächerer Performance und sogar zu Problemen in der DB:
              http://support.microsoft.com/kb/315512

              bye,
              Helmut

              Comment

              Working...
              X