回答編集履歴
2
推敲
test
CHANGED
@@ -30,8 +30,14 @@
|
|
30
30
|
|
31
31
|
処理するデータ件数を分割する場合、最も効果的なのはインデックス項目を使用する事です。
|
32
32
|
|
33
|
-
分割した先頭のキーが分かればそこから、
|
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
追記
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
|
|