Quantcast
Channel: BTSoru.com - Bilisim ve Yazilim Teknolojileri Soru/Cevap Platformu - latest questions
Viewing all articles
Browse latest Browse all 4270

Hibarnate ile birçok table'a select işlemi uygulamak neden çok uzun sürüyor?

$
0
0

Merhaba arkadaşlar,

Daha önce burada bahsetmiştim ama bir soru içinde birden fazla soru sormak yasak olduğu için bu başlıkta soruyorum. Hibernate ile 1.5 dakika süren bir select'im var. Halbuki aynı select'i TOAD ile uyguladığımda 7 sn sürüyor. Select'i gizlilik gereği paylaşamıyorum. Ama anlatabilirim; 7 tablodan veri getiriyor ve çektiğim select'in içinde 5 tane daha select var. Selectception durumu yani.

Örnek Hibernate kodumu yazıyorum. Beki createSQLQuery'mi beğenmezsini. Belki başka yöntem söylersiniz ve select işlemimin zamanı kısalır.

Bu veri tabanı işlemi yapan class'ımın şuna benziyor;

   import org.hibernate.Query;
import org.hibernate.type.DateType;
import org.hibernate.type.IntegerType;
import org.hibernate.type.StringType;

public class SonucDonder extends HibernateDaoSupport {

public List<SelectimdenDonenVerilerIcinModelSinifi> getSelect(){

    List<SelectimdenDonenVerilerIcinModelSinifi> selectList = new ArrayList<SelectimdenDonenVerilerIcinModelSinifi>();

        Query query = getSession()
            .createSQLQuery("select ve icinde bir cok select daha")
            .addScalar("id", StringType.INSTANCE)
            .addScalar("date", DateType.INSTANCE)
            .addScalar("numara", IntegerType.INSTANCE)
            .addScalar("bir selctden donen bir sonuc", StringType.INSTANCE)
            .addScalar("baska bir selectden donen baska bir sonuc", StringType.INSTANCE)
            .addScalar("baska sonuc", StringType.INSTANCE)
            .setResultTransformer(Transformers.aliasToBean(SelectimdenDonenVerilerIcinModelSinifi.class));

            return selectList = query.list();
    }
}

Buda session için extend ettiğim support sınıfım;

public abstract class HibernateDaoSupport {

    @Autowired
    private SessionFactory sessionFactory;

    protected Session getSession() {
        // Kesinlikle yeni instance almaz.
        System.err.println("HIBERNATE SUPPORT SESSION FACTORY HASHCODE= " + sessionFactory.hashCode());
        return sessionFactory.getCurrentSession();
    }

}

Durum bundan ibaret hibernate'in select işleminin uzun sürdüğünden eminim log'lar ile test ettim. Bu işlemi kısaltmak için önerdiğiniz yöntemler var mı? Şunu değiş acayip hızlanacak dediğiniz her öneriye açığım. :)


Viewing all articles
Browse latest Browse all 4270

Trending Articles


huddam daveti


Tekasür Suresi


"Yâ Kuddûs!" Esması Havâs ve Esrârı


Kasemi Mübelliğa


Peri44


Kuvvetli muhabbet ve aşk tılsımı


El-Mütekebbir


Papaz büyüsü


SCCM 2012 Client Installation issue


Zilhicce Ayının Namaz Duası ÖNEMLİ