Announcement

Collapse
No announcement yet.

Performanceproblem

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

  • Performanceproblem

    Also ich habe eine Tabelle die über 10M Zeilen hat und will nun das Minimum einer Spalte ermitteln. Dies hatte ich vorher über "SELECT MIN(Spalte) FROM Tabelle" gemacht. Dies hat allerdings sehr lange gedauert, daher habe ich es durch "SELECT TOP 1 Spalte FROM Tabelle ORDER BY Spalte" ersetzt, was deutlich schneller ging. Bei einer anderen Datenbank hab ich bei der gleichen Tabelle aber genau das gegenteilige Problem. Die "Top 1" Variante dauert dort sehr lange und die "MIN" Variante nur eine Sekunde.

    Woran liegt das und wie kann ich die Datenbank optimieren, dass immer die gleiche Abfrage schnell geht und es nicht bei jeder Datenbank unterschiedlich ist?

  • #2
    Gleiche Tabellenstruktur mit gleichen Indizes?

    Comment


    • #3
      Ja, sollte gleich sein, da die Datenbank automatisch von der Software erzeugt wird.

      Comment


      • #4
        Schau Dir doch mal die Abfragepläne an...

        Sind die auch gleich?

        Comment


        • #5
          Und die Speicherauslastung. Sollte eine DB lange nicht verwendet werden und nicht genügend Speicher für den Index vorhanden sein wird u.U. der im Speicher vorhandene Index verworfen und muss beim ersten Zugriff von HD neu geladen werden.

          Comment


          • #6
            Naja unterschiedliche 'Kunden' haben wahrscheinlich unterschiedliche Rechner und auch Abfragepläne, aber kann ich das irgendwie verhindern?

            Comment


            • #7
              Naja unterschiedliche 'Kunden' haben wahrscheinlich unterschiedliche Rechner und auch Abfragepläne, aber kann ich das irgendwie verhindern?
              Die Server dem Kunden gleich mit verkaufen? Aber im Ernst. Das kannst du letztlich nicht verhindern. Unterschiedliche Rechnersystemen mit unterschiedlichen Daten in den Tabellen haben unterschiedliche ideale Ausführungsplane. Spätestens wenn es um die Daten geht wirst du Probleme bekommen die beim Kunden ~gleich~ zu halten

              Wenn du einen großen Geschwindigkeitsunterschied hast(der trotz dem gesagten ungewöhnlich ist) würde ich mal die Installationen vergleichen. Also SP Stände von Datenbank, OS, DB Treiber Stände(OLEDB, ODBC, Native Client je nachdem was du benutzt), Anzahl der von der DB benutzbaren CPU Core's, das Festplattensubsystem, Einstellungen der Datenbank etc. Die Infrastruktur hat manchmal erheblichen Einfluß. Um einen Engpass aufgrund der Rechnerinfrastruktur zu finden hilft auch eventuell der Performancemonitor von Windows. Z.B. die Indikatoren für Warteschlangenlängen der Festplatten oder Kontextwechsel der CPU weisen schon mal auf solche Probleme hin.

              Comment

              Working...
              X