sqlでupdate文を高速化するときに見直すべきポイント レコード数が少ないときは、まったく気になってなかったのですが、 1万件、10万件、、、、と増えてきたときになんか違和感。 ループ処理で100万件データを作成した結果、処理時間は3分6秒でした。 もし1000万件のデータを作成しようとした場合、単純計算で30分かかります。 テーブル数が多い場合やデータ件数が増えてしまうと、実用的には厳しい感じです。 not exists句は条件に一致するレコードが1件でも存在すればそこで終了する為、 フルスキャンのnot in句より負荷は下がります。 (悪い例) select ut.user_name from user_tbl ut where ut.user_no not in (select ct.user_no from company_tbl ct where 「先頭からn件のレコード(結果セット)だけ取得する方法が知りたい。」というのは、データベース関連のメーリングなどで以前からよくある質問ですが、SQL ServerやOracle、MySQL、PostgreSQLなどRDBやバージョンによって利用可能な方法がそれぞれ異なるので簡単にまとめ