Q
RBAR SQL
9
A
答えて
13
セットベースのプログラミングは、集合の数学的概念に基づいており、一度に1組全体を処理する演算子を備えています。手続き型(RBAR)プログラミングは、従来のコンピュータのファイルおよびレコードの概念に基づいています。だから10%部門Xの全従業員の給与を増加させるために:
セットベース:
UPDATE employees SET salary = salary * 1.10 WHERE department = 'X';
手続き(極端な例で、擬似コード):手続きにおいて
OPEN cursor FOR SELECT * FROM employees;
LOOP
FETCH cursor INTO record;
EXIT WHEN (no more records to fetch);
IF record.department = 'X' THEN
UPDATE employees
SET salary = salary * 1.10
WHERE employee_id = record.employee_id;
END IF
END LOOP
CLOSE cursor;
バージョンでは、一度に1つの従業員ローだけが更新されます。セットベースのバージョンでは、「部門Xの従業員のセット」内のすべての行が一度に(関係する限り)更新されます。
あなたのリンクですでに読んでいるものにこれが何か追加されているのかどうかはわかりませんが、私はそれを見ていました。
6
セットベースの処理にループが関与する可能性があることを指摘します。複数のテーブルを束ねるのではなく、複数のテーブルを1セットのプロセスでロードしながらバッチ処理する場合は、レコードのバッチをループすることができます。 1つの巨大な挿入文を実行するよりも、データベースにはるかに良いかもしれません。
一部のRBARプロセスは、カーソルまたはループのように見えません。これらには、相関サブクエリと多くのユーザー定義関数が含まれます。
+1
合意がよく述べられています。 –
関連する問題
- 1. SQL ODBC - SQLエラー
- 2. sql、function in sql
- 3. SQL、Microsoft SQl
- 4. Statement.execute(sql)対executeUpdate(sql)とexecuteQuery(sql)
- 5. Spark SQLのSQL LIKE
- 6. Spark SQLのSQLマクロ
- 7. SQL bcp from SQL fie
- 8. T-SQL(Microsoft SQL Server)
- 9. SQL試験、SQLクエリ
- 10. SQLクエリエラーSQL構文
- 11. SQL Serverの/ T-SQL:
- 12. SQL ServerのSQLクエリ
- 13. PL SQL動的SQL
- 14. sql LiteのSQLクエリ
- 15. SQLプロファイラーSQL Server 2005 Professional Edition
- 16. Oracle SQLとOracle PL/SQL
- 17. SQLをSQL Serverに挿入
- 18. SQLパフォーマンス(SQL 2000)をカウント
- 19. SQL照合クエリーのSQLインジェクション
- 20. DjangoのSQLクエリのSQL Server
- 21. T-SQL - SQL Serverの - ID_A
- 22. SQLクエリのSQLクエリPHP
- 23. SQL Server - 動的SQLのハイフン
- 24. SQL Server 2012のSQLインジェクション
- 25. 動的SQLと静的SQL
- 26. SQL Serverの - 動的SQLステートメント
- 27. SQL ServerサブスクリプションエラーSQL Server 2016
- 28. MDBへのSQLテーブル(SQL 2005)
- 29. GoogleゾーンチェックSQLクエリレベルSQL Server
- 30. SQLはSQL以下で
もちろん、セットベースのバージョンは、通常は多くの場合、通常はさらに高速です。 – HLGEM