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

Hiệu suất chọn Hibernate kém so với chạy trực tiếp - gỡ lỗi như thế nào?

Cảm ơn tất cả các bạn đã giúp đỡ. Sau một thời gian dài vật lộn với vấn đề đó, cuối cùng câu trả lời kaliatech đã giúp tôi gỡ lỗi.

Trước hết, tôi đã mắc một sai lầm khủng khiếp trong hành trình của mình. Tôi đã viết rằng:

Chạy truy vấn này với cơ sở dữ liệu cục bộ rất nhanh, nhưng sử dụng nó từ xa thì thực sự kém.

Vì nó không hoàn toàn đúng. Truy vấn mà tôi đã thực hiện trong Hibernate trông giống như truy vấn lên:

select s.* from sales_unit s left join sales_unit_relation r on (s.sales_unit_id = r.sales_unit_child_id) where r.sales_unit_child_id is null

Nhưng truy vấn thực tế mà tôi đã thực hiện với SQL PLus hoặc Navicat chẳng hạn là:

select * from sales_unit s left join sales_unit_relation r on (s.sales_unit_id = r.sales_unit_child_id) where r.sales_unit_child_id is null

Vui lòng lưu ý rằng truy vấn chọn đầu tiên bắt đầu:select s.* ... và cái thứ hai là select * ... . Và đó là lý do của hiệu suất kém như vậy. Bây giờ cả hai truy vấn được hoàn thành nhanh chóng. Câu hỏi đặt ra là sự khác biệt là gì:vấn đề hiệu suất:sự khác biệt giữa select s. * So với select *



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn hữu ích về việc hết hạn mật khẩu / Chính sách / Cài đặt của oracle EBS

  2. Hàm ACOS () trong Oracle

  3. Siêu dữ liệu liên quan đến các loại bản ghi cấp gói PL / SQL

  4. Tạo bộ hẹn giờ trong Oracle Forms / Forms 6i và hiển thị đồng hồ

  5. Khôi phục một giao dịch đã cam kết