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

Đặt tìm nạp trước hàng mặc định trong SQL Server bằng trình điều khiển JDBC

Các cách thông thường để đặt kích thước tìm nạp hàng là:

  1. Qua java.sql.Connection lớp triển khai nhà cung cấp phương pháp tùy chỉnh (ví dụ:OracleConnection.setDefaultRowPrefetch )
  2. Qua java.sql.Statement.setFetchSize(int) :cung cấp gợi ý cho trình điều khiển về kích thước tìm nạp hàng cho tất cả ResultSets thu được từ Statement này . Phương thức này được kế thừa bởi PreparedStatementCallableStatement . Hầu hết các trình điều khiển JDBC đều hỗ trợ nó.
  3. Qua java.sql.ResultSet.setFetchSize(int) :đưa ra gợi ý cho trình điều khiển về kích thước tìm nạp hàng cho tất cả ResultSet này .

Trình điều khiển JDBC của MS SQL Server không hỗ trợ bất kỳ cách nào sau đây:

  1. Trình điều khiển MSSQL không có phương pháp như vậy.
  2. Thật không may, trong khi hầu hết các trình điều khiển tôn trọng gợi ý, trình điều khiển MSSQL thì không. Vì vậy, không hữu ích cho bạn. Xem Phương thức Statement.setFetchSize (nSize) thực sự là gì làm trong trình điều khiển JDBC của SQL Server?
  3. Cùng một vấn đề với Statement .

Theo mặc định, nó truy xuất tất cả các hàng từ cơ sở dữ liệu trừ khi bạn chỉ định loại con trỏ trong trình điều khiển JDBC. Trình điều khiển MSSQL không thể kiểm soát trực tiếp kích thước tìm nạp bằng các phương pháp thông thường.

Giải pháp:

  • Truyền Statement của bạn thành SQLServerStatement và sử dụng phương thức setMaxRows(int) . Tại sao họ không triển khai điều này trong phương pháp chuẩn Steve Ballmer chỉ biết thôi; ^)
  • Tạo trình điều khiển của bạn bằng loại con trỏ. Kích thước tìm nạp mặc định cho con trỏ là 1. Đặt Connection thuộc tính chuỗi selectMethod=cursor . Ngoài ra, bạn có thể tạo Statement với com.microsoft.sqlserver.jdbc.SQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY khả năng cuộn để truy cập chỉ chuyển tiếp, chỉ đọc, sau đó sử dụng setFetchSize phương pháp điều chỉnh hiệu suất. http://technet.microsoft.com/en -us / library / aa342344% 28SQL.90% 29.aspx
  • Sử dụng SQL (độc quyền) để giới hạn số lượng hàng được trả về ( không giống như đặt kích thước tìm nạp ):SET ROWCOUNT hoặc SELECT TOP N
  • Chuyển sang mã nguồn mở jTDS trình điều khiển, được chế tạo đặc biệt để khắc phục sự cố của trình điều khiển SQL Server. Đó là một trình điều khiển vượt trội.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa #temptable và ## TempTable?

  2. SQL Server v.Next:Hiệu suất STRING_AGG ()

  3. Câu lệnh SQL CASE:Nó là gì và những cách tốt nhất để sử dụng nó là gì?

  4. Xóa Khóa chính (Chỉ mục theo cụm) để tăng hiệu suất Chèn

  5. Xoay vòng một bảng cùng với tổng giá trị cột khi loại cột là nvarchar