Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Ustaw domyślne pobieranie wierszy w programie SQL Server za pomocą sterownika JDBC

Typowe sposoby ustawiania rozmiaru pobierania wiersza to:

  1. Przez java.sql.Connection klasa implementacji dostawcy metoda niestandardowa (np. OracleConnection.setDefaultRowPrefetch )
  2. Przez java.sql.Statement.setFetchSize(int) :daje wskazówkę kierowcy co do rozmiaru wiersza dla wszystkich ResultSets uzyskane z tego Statement . Ta metoda jest dziedziczona przez PreparedStatement i CallableStatement . Większość sterowników JDBC to obsługuje.
  3. Przez java.sql.ResultSet.setFetchSize(int) :daje podpowiedź kierowcy co do rozmiaru wiersza dla wszystkich tych ResultSet .

Sterownik MS SQL Server JDBC nie obsługuje żadnego z tych sposobów:

  1. Sterownik MSSQL nie ma takiej metody.
  2. Niestety, podczas gdy większość sterowników przestrzega wskazówki, sterownik MSSQL nie. Więc nie jest to dla ciebie przydatne. Zobacz Co tak naprawdę robi metoda Statement.setFetchSize(nSize) zrobić w sterowniku SQL Server JDBC?
  3. Ten sam problem, co Statement .

Domyślnie pobiera wszystkie wiersze z bazy danych, chyba że określisz typ kursora w sterowniku JDBC. Sterownik MSSQL nie może bezpośrednio kontrolować rozmiaru pobierania przy użyciu zwykłych metod.

Rozwiązania:

  • Prześlij swoje Statement do SQLServerStatement i użyj metody setMaxRows(int) . Dlaczego nie wdrożyli tego w ramach standardowej metody Steve Ballmer tylko wie;^)
  • Utwórz sterownik z typem kursora. Domyślny rozmiar pobierania dla kursora to 1. Ustaw Connection właściwość ciągu selectMethod=cursor . Alternatywnie możesz utworzyć Statement z com.microsoft.sqlserver.jdbc.SQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY przewijalność dla dostępu tylko do przodu, tylko do odczytu, a następnie użyj setFetchSize metoda dostrajania wydajności. http://technet.microsoft.com/en -us/library/aa342344%28SQL.90%29.aspx
  • Użyj (zastrzeżonego) SQL, aby ograniczyć liczbę zwracanych wierszy (nie to samo, co ustawianie rozmiaru pobierania ):SET ROWCOUNT lub SELECT TOP N
  • Przełącz na open source jTDS sterownik, specjalnie stworzony w celu rozwiązania problemów ze sterownikiem SQL Server. To doskonały kierowca.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Spłaszczyć tabelę asocjacji do kolumny wielowartościowej?

  2. Hierarchiczna lista typów zdarzeń wyzwalających w SQL Server 2017

  3. SQL LocalDB a SQL Server CE

  4. Jak wykryć i zapobiec nieoczekiwanemu wzrostowi bazy danych SQL Server TempDB

  5. Instalacja SQL Server 2008