Breaking News
Loading...
08/02/2014

Bulk SQL trong Oracle

Bulk là kỹ thuật cho ta thao tác và xử lý một tập hợp nhiều records trong database một lúc, thay vì làm từng dòng, như vậy ta sẽ có được performance tăng lên đáng kể.

Một ví dụ về bulk load trong Oracle, trong đoạn script sau ta đưa data vào một cursor trước, sau đó dùng bulk load

DECLARE
Type t_list
IS
  TABLE OF account_list%RowType;
  l_list t_list;
  CURSOR c_c
  IS
    SELECT * FROM account_list;
BEGIN
  OPEN c_c;
  FETCH c_c bulk collect INTO l_list;
  for i in 1..l_list.count
  loop
    dbms_output.put_line(l_list(i).account_list_id);
  end loop;
END;

Để thực hiện bulk insert trong Oracle, như bài viết dưới đây, người ta có thể dùng For để insert từng dòng, cách này rất mất thời gian.

Sau đó người ta khuyên dùng Bulk Collect để thực hiện bulk insert, cách này nhanh hơn.

Nhưng dùng bulk Collect cũng không hiệu quả nếu ta đưa qua một lúc tất cả record của một table lớn, người ta khuyên dùng cursor kết hợp với Bulk Collect.

Link tham khảo: http://www.akadia.com/services/ora_bulk_insert.html http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/selectinto_statement.htm

0 comments:

Post a Comment

 
Toggle Footer