• 26-12-2014, 17:06:50
    #1
    Arkadaşlar merhaba,

    Tecrübeli arkadaşlardan fikir almak isterim.

    Yaklaşık 1 milyon kayıt olan bir tablodan veri çekiyorum. Ekranda farklı filtreleme türleri var. İşin içinden çıkamadım. Durum kodlarının olduğu bir CheckBoxList var içerisinde yaklaşık 10 farklı durum kodu var. Kullanıcı bu durum kodlarından istediğini seçebilir yada hiçbirşey seçmeyebilir. Bu durumu nasıl ayarlayabilirim.

    Where .... In ile yapmaya çalıştım durum kodlarını kod tarafında 1,2,3 şeklinde ayarladıktan sonra procedure tarafına string olarak yolluyorum. Biraz yavaş çalışıyor işin doğrusu. Daha hızlı ve etkili bir yöntem sunabilecek birisi var mıdır acaba?

    Daha açıklayıcı olması açısından tablonun yapısını da gönderiyorum;

    SELECT * FROM XXXX WHERE XXX IN (p_XS)
    * burada p_XS benim kod tarafından gönderdiğim parametre.
  • 27-12-2014, 15:51:46
    #2
    sorguda görünen o ki join işlemi yok bu güzel.. eğer orjinal sorgunda varsa bundan kaçınmak gerek büyük kayıtlı tablolarda. indexlemeye dikkat et ayrıca..

    where clause yerine on clause kullanmayı deneyebilirsin. ve son olarak da çok fazla kayıt dönüyorsa paging kullanmayı deneyebilirsin.
  • 27-12-2014, 19:54:55
    #3
    ertan2002 adlı üyeden alıntı: mesajı görüntüle
    sorguda görünen o ki join işlemi yok bu güzel.. eğer orjinal sorgunda varsa bundan kaçınmak gerek büyük kayıtlı tablolarda. indexlemeye dikkat et ayrıca..

    where clause yerine on clause kullanmayı deneyebilirsin. ve son olarak da çok fazla kayıt dönüyorsa paging kullanmayı deneyebilirsin.
    paging var aslında burada detay verip kafa karıştırmak istemedim. db tarafından 1000 kayıttan fazlasını döndüremiyorsunuz.

    bu bahsettiğin on clause olayını hiç duymamıştım aslında, internette baktım biraz senden gördükten sonra ama pek açıklayıcı örnek bulamadım. kısaca bi örnek verebilir misin? ben yine araştırmaya devam edicem tabi