Udostępnij przez


Praca z instrukcjami i zestawami wyników

pobierz sterownik JDBC

Podczas pracy ze sterownikiem JDBC firmy Microsoft dla programu SQL Server oraz obiektami Statement and ResultSet, które udostępnia, istnieje kilka technik, których można użyć do poprawy wydajności i niezawodności aplikacji.

Użyj odpowiedniego obiektu zapytania

Jeśli używasz jednego z obiektów instrukcji sterownika JDBC, takich jak SQLServerStatement, SQLServerPreparedStatement lub SQLServerCallableStatement , upewnij się, że używasz odpowiedniego obiektu dla zadania.

  • Jeśli nie masz parametrów OUT, nie musisz używać obiektu SQLServerCallableStatement. Zamiast tego użyj obiektu SQLServerStatement lub SQLServerPreparedStatement.
  • Jeśli nie zamierzasz wykonywać instrukcji więcej niż raz lub nie masz parametrów IN lub OUT, nie musisz używać sqlServerCallableStatement lub obiektu SQLServerPreparedStatement. Zamiast tego użyj obiektu SQLServerStatement.

Użyj odpowiedniej współbieżności dla obiektów ResultSet

Nie pytaj o aktualizowalną współbieżność podczas tworzenia instrukcji generujących zestawy wyników, chyba że rzeczywiście zamierzasz zaktualizować wyniki. Domyślny model kursora tylko w przód i tylko do odczytu jest najszybszy w przypadku odczytywania małych zestawów wyników.

Ogranicz rozmiar zestawów wyników

Rozważ użycie metody setMaxRows (lub SET ROWCOUNT lub SELECT TOP N składni SQL), aby ograniczyć liczbę wierszy zwracanych z potencjalnie dużych zbiorów wyników. Jeśli musisz radzić sobie z dużymi zestawami wyników, rozważ użycie buforowania odpowiedzi adaptacyjnej, ustawiając właściwość parametrów połączenia ResponseBuffering=adaptive, czyli tryb domyślny. Takie podejście pozwala aplikacji przetwarzać duże zestawy wyników bez konieczności używania kursorów po stronie serwera i minimalizuje użycie pamięci aplikacji. Aby uzyskać więcej informacji, zobacz Używanie buforowania adaptacyjnego.

Użyj odpowiedniego rozmiaru pobierania

W przypadku kursorów serwera tylko do odczytu kompromis wiąże się z dodatkowymi przesyłaniami do serwera w porównaniu z koniecznością większego użycia pamięci w sterowniku. W przypadku kursorów serwera z możliwością aktualizacji rozmiar pobierania wpływa również na wrażliwość zestawu wyników na zmiany i współbieżność na serwerze. Aktualizacje wierszy w bieżącym buforze pobierania nie są widoczne, dopóki jawna metoda refreshRow nie zostanie wydana lub dopóki kursor nie opuści buforu pobierania. Duże bufory pobierania będą miały lepszą wydajność (mniej rund zapytań do serwera), ale są mniej wrażliwe na zmiany i zmniejszają współbieżność na serwerze, jeśli stosuje się parametr CONCUR_SS_SCROLL_LOCKS (1009). Aby uzyskać maksymalną czułość zmian, użyj rozmiaru pobierania wynoszącego 1. Jednak to ustawienie spowoduje konieczność wykonania pełnego cyklu komunikacji z serwerem dla każdego pobranego wiersza.

Używanie strumieni dla dużych parametrów wejściowych

Używaj strumieni lub obiektów BLOB i CLOB, które są materializowane stopniowo, aby umożliwiać aktualizację dużych wartości kolumn lub wysyłanie dużych parametrów wejściowych. Sterownik JDBC dzieli te typy na fragmenty na serwer w wielu przebiegach, co pozwala ustawić i zaktualizować wartości większe niż pomieści pamięć.

Zobacz także

Zwiększanie wydajności i niezawodności dzięki sterownikowi JDBC