ホームページ > データベース > mysql チュートリアル > SQL Serverで合計を実行する最も効率的な方法は何ですか?

SQL Serverで合計を実行する最も効率的な方法は何ですか?

Susan Sarandon
リリース: 2025-01-25 03:32:08
オリジナル
865 人が閲覧しました

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

SQL Serverは、計算方法の合計額を詳細に蓄積します

SQLクエリでの蓄積の計算は一般的な需要です。

Celebrationは、OracleとANSI-SQLでこのような計算を実行するための便利な方法を提供します。ただし、SQL Serverには、

条項の実装に関するいくつかのユースケースを処理する柔軟性がありません。 OVER OVERスキルを更新

欠点にもかかわらず、蓄積の蓄積を計算するためにSQL Serverで計算された効果的な手法は、重合セットを使用することです。この方法には、が含まれます

元のテーブルと同じ列を持つ一時テーブルを作成します。

元のテーブルのデータを一時テーブルに挿入し、蓄積された合計列をnullに設定します。
  1. 一時テーブルは、前の値に基づいて計算されます。
  2. この手法は非常に効率的ですが、潜在的な問題があります。
  3. ステートメントの処理行の順序は、日付の日付と必ずしも同じではない場合があります。

更新スキルは、SQL Serverの意図しない実装の詳細に依存します。

  • ベンチマークテストの比較 UPDATEベンチマークテストは、SQLサーバーの制約の下で、カーソル法は、蓄積を蓄積するための最速かつ最も安全な方法を計算することであることを示しています。更新スキルは最高のパフォーマンスを提供しますが、処理順に潜在的な問題があります。したがって、生産コードの場合、ラベルベースの方法を使用することをお勧めします。
  • サンプルコードとベンチマークテストデータ
次のコードは、ベンチマークテストの作業例とテストデータを提供します。

データ設定のテスト:

テスト方法:

テスト1:関連する子クエリ

テスト2:Cross -Connection 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;

テスト3:カーソル

テスト4:スキルを更新

上記の4つの方法の実装効率を通じて、SQLサーバーでの蓄積を計算するベストプラクティスを取得できます。 実際のパフォーマンスは、データボリュームとサーバーの構成によって異なる場合があることに注意してください。
<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>
ログイン後にコピー

以上がSQL Serverで合計を実行する最も効率的な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート