回答編集履歴

2

推敲

2021/04/15 04:48

投稿

sazi
sazi

スコア25300

test CHANGED
@@ -30,8 +30,14 @@
30
30
 
31
31
  処理するデータ件数を分割する場合、最も効果的なのはインデックス項目を使用する事です。
32
32
 
33
- 分割した先頭のキーが分かればそこから、[OFFSET FETCH](https://sql-oracle.com/sqlserver/?p=857)を使用して件数を限定するのが最も効率的です。
33
+ 分割した先頭のキーが分かればそこから、件数を限定するのが最も効率的です。
34
34
 
35
35
  但し、分割した先頭のキーを求める部分は全件を対象にするので、ここがチューニングのポイントになります。
36
36
 
37
+
38
+
39
+ または、ページングのように[OFFSET FETCH](https://sql-oracle.com/sqlserver/?p=857)を利用する方法もあります。
40
+
41
+
42
+
37
43
  件数という事ではなく、例えば部門ごとになどで適切な件数に分割することが出来れば、チューニングは不要になります。

1

追記

2021/04/15 04:48

投稿

sazi
sazi

スコア25300

test CHANGED
@@ -11,6 +11,8 @@
11
11
  row_number()による連番を算出する時間に比例します。
12
12
 
13
13
  番号が大きくなればなるほど、番号算出の為に読み込む件数が増えるので当然です。
14
+
15
+ どういった部分に時間が掛かっているかなどは、[実行計画](https://docs.microsoft.com/ja-jp/sql/relational-databases/performance/display-an-actual-execution-plan?view=sql-server-ver15)などで確認が出来ます。
14
16
 
15
17
 
16
18