Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak włączyć rejestrowanie dla instrukcji SQL podczas korzystania z JDBC?

Aktualizacja 2019:log4jdbc nie był utrzymywany od 2015 roku. p6spy nadal wydaje się być aktywnie utrzymywany.

Oryginalna odpowiedź

Dostępnych jest wiele frameworków Spy do tego celu , sprawdź log4jdbc , czuję , że tego szukasz .

Funkcje

  • Pełne wsparcie dla JDBC 3 i JDBC 4!
  • Łatwe w konfiguracji, w większości przypadków wystarczy zmienić nazwę klasy sterownika tonet.sf.log4jdbc.DriverSpy i dodać „jdbc:log4” do istniejącego adresu URL jdbc, skonfigurować kategorie rejestrowania i gotowe iść!
  • W zarejestrowanych danych wyjściowych, w przypadku przygotowanych instrukcji, argumenty wiązania są automatycznie wstawiane do danych wyjściowych SQL. To znacznie poprawia czytelność i debugowanie w wielu przypadkach.
  • Można wygenerować informacje o czasie SQL, aby pomóc określić, jak długo trwa uruchamianie instrukcji SQL, pomagając zidentyfikować instrukcje, które działają zbyt wolno. aplikacji.
  • Informacje o numerze połączenia SQL są generowane, aby pomóc zidentyfikować problemy z pulą połączeń lub wątkami. Działa z dowolnym sterownikiem JDBC, z JDK 1.4 i wyższym oraz SLF4J 1.x.
  • Oprogramowanie typu open source, na licencji przyjaznej dla biznesu licencji Apache 2.0

Wykorzystanie

  • Umieść plik jar log4jdbc (w oparciu o wersję JDK) w ścieżce klas aplikacji.
  • wybierz system logowania, log4j, logback, logowanie commons..etc są obsługiwane
  • Ustaw klasę sterownika JDBC na net.sf.log4jdbc.DriverSpy w konfiguracji aplikacji. Podstawowy sterownik, który jest szpiegowany w wielu przypadkach, zostanie załadowany automatycznie bez dodatkowej konfiguracji.
  • Dodaj jdbc:log4 do normalnego adresu URL jdbc, którego używasz.

    Na przykład, jeśli twój normalny adres URL jdbc to isjdbc:derby://localhost:1527//db-derby-10.2.2.0-bin/databases/MyDatabaseto zmienisz go na:jdbc:log4jdbc:derby://localhost:1527/ /db-derby-10.2.2.0-bin/databases/MyDatabase

  • Skonfiguruj swoje rejestratory.

    jdbc.sqlonly :Rejestruje tylko SQL. SQL wykonywany w ramach przygotowanej instrukcji jest automatycznie wyświetlany z argumentami bindowania zamienionymi na dane powiązane w tej pozycji, co znacznie zwiększa czytelność. 1.0

    jdbc.sqltiming :Rejestruje kod SQL po wykonaniu, w tym statystyki czasu dotyczące czasu wykonania kodu SQL. 1.0

    jdbc.audit :Rejestruje WSZYSTKIE wywołania JDBC z wyjątkiem zestawów wyników. Jest to bardzo obszerne wyjście i zwykle nie jest potrzebne, chyba że wyśledzimy konkretny problem JDBC. 1.0

    jdbc.resultset :Jeszcze bardziej obszerny, ponieważ wszystkie wywołania obiektów ResultSet są rejestrowane. 1.0

    jdbc.połączenie :Rejestruje zdarzenia otwarcia i zamknięcia połączenia, a także zrzuca wszystkie otwarte numery połączeń. Jest to bardzo przydatne do wyszukiwania problemów z wyciekiem połączenia.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zapisać dane Unicode w Oracle?

  2. Oracle, jak wyeksportować zapytanie do pliku tekstowego/csv

  3. REGEXP_INSTR() Funkcja w Oracle

  4. Wartości nie są wyświetlane z wiodącym zerem w Oracle

  5. Jak dodać wiodące zero do liczby w zapytaniu Oracle SQL?