Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Giới thiệu về PL / SQL Thu thập hàng loạt trong Cơ sở dữ liệu Oracle

Giới thiệu về Thu thập hàng loạt PL / SQL

Một truy vấn có cấu trúc tốt, được viết ngày hôm nay có thể cứu bạn khỏi các sự kiện thảm khốc trong tương lai. Hiệu suất truy vấn là thứ mà tất cả chúng ta đều tìm kiếm, nhưng rất ít người thực sự tìm thấy nó. Học các khái niệm nhỏ có thể giúp bạn tích lũy kinh nghiệm, điều này có thể dẫn đến kỹ năng viết truy vấn tốt hơn. Hôm nay trong blog này, bạn sẽ tìm hiểu một trong những khái niệm nhỏ đó là “ Thu thập hàng loạt ”.

Thu thập hàng loạt là tất cả về việc giảm chuyển đổi ngữ cảnh và cải thiện hiệu suất của truy vấn. Do đó, để hiểu thu thập hàng loạt là gì, trước tiên chúng ta phải tìm hiểu Chuyển đổi ngữ cảnh là gì ?

Chuyển đổi ngữ cảnh là gì?

Bất cứ khi nào bạn viết một khối PL / SQL hoặc nói một chương trình PL / SQL và thực thi nó, bộ máy thời gian chạy PL / SQL sẽ bắt đầu xử lý từng dòng một. Công cụ này tự xử lý tất cả các câu lệnh PL / SQL nhưng nó chuyển tất cả các câu lệnh SQL mà bạn đã mã hóa vào khối PL / SQL đó tới công cụ thời gian chạy SQL. Sau đó, các câu lệnh SQL đó sẽ được xử lý riêng biệt bởi công cụ SQL. Sau khi xử lý xong, SQL engine sẽ trả kết quả trở lại PL / SQL engine. Vì vậy, một kết quả tổng hợp có thể được tạo ra bởi cái sau. Điều khiển nhảy qua lại này được gọi là chuyển đổi ngữ cảnh.

Việc chuyển đổi ngữ cảnh ảnh hưởng đến hiệu suất truy vấn như thế nào?

Chuyển đổi ngữ cảnh có tác động trực tiếp đến hiệu suất của truy vấn. Việc nhảy điều khiển càng cao thì chi phí sẽ càng lớn, do đó sẽ làm giảm hiệu suất. Điều này có nghĩa là chuyển đổi ngữ cảnh càng ít thì hiệu suất truy vấn càng tốt.

Bây giờ chắc hẳn bạn đang nghĩ "Chúng ta không thể làm gì đó về điều này sao?" Chúng ta có thể giảm các chuyển đổi điều khiển đó không? Có cách nào bằng cách sử dụng mà chúng tôi có thể giảm các chuyển đổi ngữ cảnh không? Câu trả lời cho tất cả những câu hỏi đó là có, chúng tôi có một tùy chọn có thể giúp chúng tôi. Tùy chọn đó là điều khoản Thu thập hàng loạt .

Điều khoản thu thập hàng loạt là gì?

Mệnh đề thu thập hàng loạt nén nhiều bộ chuyển mạch thành một bộ chuyển mạch ngữ cảnh duy nhất và tăng hiệu quả và hiệu suất của chương trình PL / SQL.

Mệnh đề thu thập số lượng lớn làm giảm nhiều lần nhảy điều khiển bằng cách thu thập tất cả các lệnh gọi câu lệnh SQL từ chương trình PL / SQL và gửi chúng đến SQL Engine chỉ trong một lần và ngược lại.

Chúng tôi có thể sử dụng điều khoản Thu thập hàng loạt ở đâu?

Mệnh đề thu thập số lượng lớn có thể được sử dụng với các mệnh đề SELECT-INTO, FETCH-INTO và RETURN-INTO.

Với sự trợ giúp của Câu lệnh thu thập hàng loạt, chúng ta có thể CHỌN, CHÈN, CẬP NHẬT hoặc XÓA các tập dữ liệu lớn khỏi các đối tượng cơ sở dữ liệu như Bảng hoặc Dạng xem.

Xử lý dữ liệu hàng loạt là gì?

Quá trình tìm nạp hàng loạt dữ liệu từ công cụ thời gian chạy PL / SQL sang công cụ SQL và ngược lại được gọi là Xử lý dữ liệu hàng loạt.

Chúng tôi có bao nhiêu câu lệnh xử lý dữ liệu hàng loạt?

Chúng tôi có một điều khoản xử lý dữ liệu hàng loạt đó là Thu thập hàng loạt và một câu lệnh xử lý dữ liệu hàng loạt là FORALL trong Cơ sở dữ liệu Oracle.

Tôi nghe nói rằng mệnh đề thu thập hàng loạt sử dụng cả con trỏ ẩn và con trỏ rõ ràng?

Đúng, bạn nghe đúng đấy. Chúng ta có thể sử dụng mệnh đề thu thập số lượng lớn bên trong Câu lệnh SQL hoặc với câu lệnh FETCH. Khi chúng ta sử dụng mệnh đề thu thập số lượng lớn với Câu lệnh SQL, tức là CHỌN VÀO thì nó sử dụng con trỏ ngầm. Trong khi nếu chúng ta sử dụng mệnh đề thu thập hàng loạt với câu lệnh FETCH thì nó sử dụng con trỏ rõ ràng.

Đây là phần giới thiệu nhanh về mệnh đề xử lý dữ liệu số lượng lớn PL / SQL đầu tiên là BULK COLLECT. Chúng ta sẽ tìm hiểu về câu lệnh xử lý dữ liệu hàng loạt thứ hai sau khi chúng ta hoàn thành câu lệnh đầu tiên. Trong khi đó, hãy đảm bảo đăng ký kênh YouTube của chúng tôi vì trong hướng dẫn tiếp theo, chúng tôi sẽ tìm hiểu cách chúng tôi có thể cải thiện hiệu quả của Câu lệnh SQL bằng cách sử dụng mệnh đề Thu thập hàng loạt.

Cảm ơn và chúc một ngày tốt lành!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Toán tử Oracle (+)

  2. Hàm LENGTH () trong Oracle

  3. Oracle, Đặt ngày giờ thành ngày đầu tiên của tháng

  4. System.Data.OracleClient yêu cầu phần mềm máy khách Oracle phiên bản 8.1.7

  5. Sửa lỗi “ORA-01789:khối truy vấn có số cột kết quả không chính xác”