ホームページ > データベース > mysql チュートリアル > SQL Server で大量の行を効率的に選択するにはどうすればよいですか?

SQL Server で大量の行を効率的に選択するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-31 20:29:14
オリジナル
1014 人が閲覧しました

How Can I Efficiently Select a Large Number of Rows in SQL Server?

SQL Server での行の選択

システム内の行数を使い果たすため、指定されたクエリは 7374 行を超える行を返すことができません。列テーブル。この制限を克服するためのより効率的なアプローチは、カスケード CTE を使用して「集計テーブル」または「数値テーブル」を生成することです。

カスケード CTE を使用した最適化されたクエリは次のとおりです。

DECLARE @Range AS INT = 7374

;WITH E1(N) AS( -- 10 ^ 1 = 10 rows
    SELECT 1 FROM(VALUES (1),(1),(1),(1),(1),(1),(1),(1),(1),(1))t(N)
),
E2(N) AS(SELECT 1 FROM E1 a CROSS JOIN E1 b), -- 10 ^ 2 = 100 rows
E4(N) AS(SELECT 1 FROM E2 a CROSS JOIN E2 b), -- 10 ^ 4 = 10,000 rows
E8(N) AS(SELECT 1 FROM E4 a CROSS JOIN E4 b), -- 10 ^ 8 = 10,000,000 rows
CteTally(N) AS(
    SELECT TOP(@Range) ROW_NUMBER() OVER(ORDER BY(SELECT NULL))
    FROM E8
)
SELECT * FROM CteTally
ログイン後にコピー

このアプローチは、読み取りを生成せず、非常に多くの行に拡張できるため、非常に効率的です。パフォーマンスの比較と集計テーブルの詳細については、応答で提供されるリンクされたリソースを参照してください。

以上がSQL Server で大量の行を効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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