Heim > Datenbank > MySQL-Tutorial > Was ist der effizienteste Weg, um die Laufzeiten in SQL Server zu berechnen?

Was ist der effizienteste Weg, um die Laufzeiten in SQL Server zu berechnen?

Susan Sarandon
Freigeben: 2025-01-25 03:32:08
Original
865 Leute haben es durchsucht

What's the Most Efficient Way to Calculate Running Totals in SQL Server?

SQL Server sammeln die Gesamtsumme der Berechnungsmethoden im Detail

Berechnung der Akkumulation in der SQL -Abfrage ist eine häufige Nachfrage.

Feier bietet eine bequeme Methode zur Durchführung solcher Berechnungen in Oracle und ANSI-SQL. SQL Server fehlt jedoch die Flexibilität, einige Anwendungsfälle bei der Implementierung von OVER -Klauseln zu bearbeiten. OVER

Aktualisieren Sie Fähigkeiten

Trotz der Mängel berechnet eine in SQL Server berechnete effektive Technik, um die Akkumulation der Akkumulation zu berechnen, um einen Polymerisierungssatz zu verwenden. Diese Methode enthält:

Erstellen Sie eine temporäre Tabelle mit derselben Spalte wie die ursprüngliche Tabelle.

    Fügen Sie die Daten in die ursprüngliche Tabelle in die temporäre Tabelle ein und setzen Sie die akkumulierte Gesamtspalte auf NULL.
  1. Die temporäre Tabelle wird basierend auf dem vorherigen Wert berechnet.
  2. Diese Technik ist sehr effizient, aber es gibt potenzielle Probleme:

Die Reihenfolge der Anweisungsverarbeitungszeilen entsprechen möglicherweise nicht immer dem Datum des Datums.

    Aktualisierungsfähigkeiten hängen von den Details der unbeabsichtigten Implementierung des SQL Servers ab.
  • UPDATE
  • Der Benchmark -Testvergleich
  • Der Benchmark -Test zeigt, dass unter den Einschränkungen des SQL -Servers die Cursormethode darin besteht, die schnellste und sicherste Methode für die Akkumulation der Akkumulation zu berechnen. Aktualisierungsfähigkeiten bieten die höchste Leistung, aber es gibt potenzielle Probleme in der Reihenfolge der Verarbeitung. Für den Produktionscode wird daher empfohlen, eine markierungsbasierte Methode zu verwenden.
Beispielcode und Benchmark -Testdaten

Der folgende Code enthält Arbeitsbeispiele und Testdaten für den Benchmark -Test:

Testerdateneinstellungen:

Testmethode:

Test 1: Verwandte untergeordnete Abfrage

<code class="language-sql">CREATE TABLE #t (
    ord INT PRIMARY KEY,
    total INT,
    running_total INT
);

SET NOCOUNT ON;
DECLARE @i INT;
SET @i = 0;
BEGIN TRAN;
WHILE @i < 10000
BEGIN
    INSERT INTO #t (ord, total) VALUES (@i, ABS(CHECKSUM(NEWID()) % 1000));
    SET @i = @i + 1;
END;
COMMIT TRAN;</code>
Nach dem Login kopieren

Test 2: Cross -Connection

Test 3: Cursor

<code class="language-sql">SELECT ord,
       total,
       (SELECT SUM(total)
        FROM #t b
        WHERE b.ord <= a.ord) AS RunningTotal
FROM #t a
ORDER BY a.ord;</code>
Nach dem Login kopieren

Test 4: Aktualisieren Sie die Fähigkeiten

<code class="language-sql">SELECT a.ord,
       a.total,
       SUM(b.total) AS RunningTotal
FROM #t a
CROSS JOIN #t b
WHERE b.ord <= a.ord
GROUP BY a.ord, a.total
ORDER BY a.ord;</code>
Nach dem Login kopieren
Durch die Implementierungseffizienz der oben genannten vier Methoden kann die Best Practice zur Berechnung der Akkumulation auf dem SQL -Server erhalten werden. Es ist zu beachten, dass die tatsächliche Leistung von Datenvolumen und Serverkonfiguration variieren kann.

Das obige ist der detaillierte Inhalt vonWas ist der effizienteste Weg, um die Laufzeiten in SQL Server zu berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage