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

Các cân nhắc về PreparedStatement, CallableStatement và Performance

Từ nhận xét của bạn, bạn có sẵn sàng gọi điện bên trong vòng lặp của mình. Một lợi thế của các câu lệnh chuẩn bị (và các câu lệnh có thể gọi) là bạn có thể chuẩn bị nó một lần, sau đó hoán đổi các giá trị được truyền trong các tham số; có chi phí mỗi khi cuộc gọi được chuẩn bị, vì vậy nếu bạn có thể mang nó ra bên ngoài vòng lặp của mình, bạn có thể thấy rằng thời gian chạy giảm. Bạn có thể thấy rằng việc tắt AutoCommit cũng hữu ích, vì mỗi lần cam kết sẽ phải trả phí.

conn.setAutoCommit(false);
CallableStatement stmt = conn.prepareCall(sql);
while(true) {
    stmt.setInt(1, value);
    stmt.execute();
}
conn.commit();
conn.setAutoCommit(true);

(conn.setAutoCommit(true) cam kết, nhưng tôi thấy rõ ràng là rõ ràng).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Loại bỏ các bản sao bằng cách sử dụng hàm LISTAGG của Oracle

  2. SQL không nhận ra bí danh cột trong mệnh đề where

  3. DB ORACLE QUERY

  4. Bảng BIN $ ... trong bảng ALL_TAB_COLUMNS của Oracle là gì?

  5. Sự khác biệt giữa mệnh đề ON và WHERE trong phép nối bảng SQL