Veritabanına çok fazla kez vurduğundan hazırda bekletme sorunları yaşıyorum. Bazı getirme stratejilerini araştırıyorum. Uygulamam geliştikçe, kaç tane SQL ifadesinin çağrıldığını görebilmek için bazı işlevsel birim testleri yazmak istiyorum.Hazırda bekleyen SQL deyimlerini sayın
Kaç SQL ifadesinin çağrıldığını sayabilir miyim, bilmek istiyorum. Şu anda show-sql öğesini true olarak ayarlıyorum ve ardından konsoldaki SQL'leri sayıyorum. Mümkünse bunu kod içinde yapmak istiyorum. Kodda kaç SQL'in hazırda beklediğini saymak mümkün mü?
Teşekkür
DÜZENLEME
@Aleksander Blomskøld cevapta sonra ....
Benim test durumu sorgu yürütme sayımı 1 olarak ve eğer verilir
StatisticsService statisticsService = new StatisticsService();
Session session = entityManager.unwrap(Session.class);
statisticsService.setSessionFactory(session.getSessionFactory());
statisticsService.setStatisticsEnabled(true);
List<MyType> r= entityManager.createQuery("from MyType", MyType.class).getResultList();
System.out.println(statisticsService.getQueryExecutionCount());
System.out.println(statisticsService.getQueries()[0]);
olduğunu "MyType" dan
0 olduğunu söyleyen sorguya bakıyorumAncak günlüğündeki sql deyimlerinde, MyType'ı ve ilgili sınıflarının çoğunu almak için SQL deyimlerinin olduğunu görebiliyorum. Yani aslında "MyType" çağrısından dolayı DB'ye isabet eden tüm SQL'leri bilmek istiyorum.
Daha neye ihtiyacım var? Ya da sadece
Kişisel veritabanı muhtemelen "sayma SQLs" bu iş üzerinde buluşsal yöntemlerini almak için daha iyi yollar vardır. Bence "SQL deyimlerini saymak" btw. –
correct @tieTYT ifadesi - – RNJ
kodunu güncellediniz Belki de NProf'u düşünebilirsiniz? –