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

Cách nhanh nhất để chèn một triệu hàng trong Oracle

Cách tiếp cận của bạn sẽ dẫn đến các vấn đề về bộ nhớ. Cách nhanh nhất sẽ là đây [Truy vấn được chỉnh sửa sau bình luận của David để xử lý kịch bản vô hiệu]:

insert into dtr_debtors1(SSN)
select a.S1+level
   from dual,(select nvl(max(ssn),0) S1 from dtr_debtors1) a
connect by level <= 10000 

Chèn chọn là cách tiếp cận nhanh nhất vì mọi thứ vẫn nằm trong RAM. Truy vấn này có thể trở nên chậm nếu nó trượt vào vùng tạm thời Toàn cục nhưng sau đó điều đó cần được điều chỉnh DB. Tôi không nghĩ rằng có thể có bất cứ điều gì nhanh hơn thế này.

Một số chi tiết khác về việc sử dụng bộ nhớ của Truy vấn:

Mỗi truy vấn sẽ có PGA [Khu vực toàn cầu của chương trình] riêng về cơ bản là RAM có sẵn cho mỗi truy vấn. Nếu vùng này không đủ để trả về kết quả truy vấn thì công cụ SQL bắt đầu sử dụng không gian bảng tạm thời Golabl giống như đĩa cứng và truy vấn bắt đầu trở nên chậm. Nếu dữ liệu theo yêu cầu của truy vấn quá lớn mà ngay cả diện tích tạm thời cũng không đủ thì bạn sẽ bị lỗi vùng bảng.

Vì vậy, hãy luôn thiết kế truy vấn để nó vẫn ở trong PGA nếu không nó sẽ là cờ Đỏ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sử dụng hàm xmlconcat trong oracle

  2. cầu tàu và Tổng hợp kết nối Oracle

  3. ORA-01017 Tên người dùng / Mật khẩu không hợp lệ khi kết nối với cơ sở dữ liệu 11g từ ứng dụng khách 9i

  4. Tôi chỉ cần hỏi mã giá nếu gõ:=E

  5. Cập nhật JavaFX TextArea ngay lập tức