folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Sql Server Veri Cekme Testim



Sql Server Veri Cekme Testim

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dhmm
    dhmm's avatar
    Kayıt Tarihi: 15/Eylül/2011
    Erkek

    Arkadaslar bu soru uzunca bir zamandir kafamda vardi.

    Hangi metodla daha hizli veriler cekilebilir diye, SQLClient mi , ODBC mi , Entity Framework mu, T-SQL fonksiyon mu diye.

    Bende ufak bi test yapayim dedim. Testi 10 defa calistirip ortalamalarini aldim

    (Islem) Basglanti saglaniyor -> Veri cekiliyor -> DataGridView'e aktariliyor -> Baglanti kapatiliyor

    Su sekilde yaptim

    Oncelikle serverda(localhost) "tests" adinda bir veritabani olusturdum

    USE [tests]
    GO
    /****** Object:  Table [dbo].[many_data]    Script Date: 03/10/2017 13:31:01 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[many_data](
    	[id] [int] IDENTITY(1,1) NOT NULL,
    	[data1] [nvarchar](max) COLLATE Greek_CI_AS NULL,
    	[data2] [nvarchar](max) COLLATE Greek_CI_AS NULL,
    	[data3] [nvarchar](max) COLLATE Greek_CI_AS NULL,
     CONSTRAINT [PK_many_data] PRIMARY KEY CLUSTERED 
    (
    	[id] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]

     

    3 sutunlu bu tablonun icine 1.000.000 kayit ekledim asagidaki sorgu ile

    declare @start int;
    declare @end int;
    set @start=1;
    set @end = 1000000;
    
    declare @i int;
    set @i=@start;
    
    while @i <= @end
    begin		
    	insert into many_data values ( NEWID(),NEWID(),NEWID() )
    	set @i = @i+1;
    end

     

    Daha sonra sql server icinde fonksiyon olusturdum

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE FUNCTION hepsini_oku
    ()
    RETURNS TABLE 
    AS
    RETURN 
    (
    	
    	SELECT * FROM many_data
    )
    GO

     

    Daha sonra C# ile "select * from many_data" sorgusunu ustte belirttigim 4 metodla calistirdim ve sonuclar su sekilde oldu

     

    test

    VS2010 - Projeyi buradan indirebilirsiniz

    https://ufile.io/9ee7c

     

    SQLClient entity ile asagi yukari ayni sonuc veriyor

     

     EDIT : Fonksiyonu eklemeyi unutmusum

    dhmm tarafından 10/Mar/17 13:45 tarihinde düzenlenmiştir

    Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver !!! // Hayatin herkes icin bir bavulu vardir !!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Güzel bir test. Join işlemi olunca nasıl bir değişim gösterecek merak ettim açıkcası.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dhmm
    dhmm's avatar
    Kayıt Tarihi: 15/Eylül/2011
    Erkek
    ontedi bunu yazdı

    Güzel bir test. Join işlemi olunca nasıl bir değişim gösterecek merak ettim açıkcası.

    hmm... aksama join olayi da ekleyebilirim. birde wcf ile cekme fln da koyabilirm. Bir suru cvp aldim hocam sonunda kendim deniyim dedim


    Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver !!! // Hayatin herkes icin bir bavulu vardir !!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Elif - Efe
    rakkoc
    rakkoc's avatar
    Kayıt Tarihi: 19/Aralık/2003
    Homo

    entity'de cache kullanıyormusun ? 


    Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Peki, Entity'de SP kullanmak ne kadar mantıklı?


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dhmm
    dhmm's avatar
    Kayıt Tarihi: 15/Eylül/2011
    Erkek
    rakkoc bunu yazdı

    entity'de cache kullanıyormusun ? 

    Yok kullanmiyorum.Lakin bir sorguyu tekrar calistirdiginda kendi cache tutuyor mu onu tam bilmioyrum ?

    Soyle bir sey var entity ile ilk calistirilan sorgu cold query sonraki digerleri warm query oluyormus ve daha hizli calisiyormus. Ayrica EF5 kullandim. EF6 context creation kisminda EF4 ve EF5 e gore daha yavas.


    Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver !!! // Hayatin herkes icin bir bavulu vardir !!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dhmm
    dhmm's avatar
    Kayıt Tarihi: 15/Eylül/2011
    Erkek
    ontedi bunu yazdı

    Peki, Entity'de SP kullanmak ne kadar mantıklı?

    Hocam bu isi profesyonel olarak yapmiyorum... Profesyonel arkadaslar daha iyi yanitlar verebilir.

    Performans acisindan ne kdr hizlidir bilmiyorum. Test etmek lzm :))).

    SP ler sanirsam raw queryden daha hizli performans veriyor.Tabi SP kullanmak goze de daha anlasilir geliyor...

    Birde kisilerin calistigi sirketlerin bir standardi olabilir SP ler. Yani Projeler o sekilde gelistirilebilir bir secenektir.

     


    Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver !!! // Hayatin herkes icin bir bavulu vardir !!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    _DevLop_
    _DevLop_'s avatar
    Kayıt Tarihi: 17/Ağustos/2015
    Erkek

    Merhaba,

    Güzel bir test olmuş. Fakat karmaşık sorgularda bu testin nasıl bir sonuç vereceğini merak ediyorum. Bizim yaptığımız sql sorgularında en az 12-13 tabloya bağlanma ihtiyacı duyuyoruz. heleki left joinlerde bu sorgular çoğalıyor.

    String birleştirme işlemlerinde yine sql serverın sorgu döndürme hızı fark ediyor. Güzel bir datayla bu işlemi test etmek daha doğru sonuca vardıracaktır. Ayrıca Function kullanmışsın. Sp ile denemekte yarar var tabi parametreler ile birlikte..


    ‘A’ Developer is a good starter and a good finisher as well
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dhmm
    dhmm's avatar
    Kayıt Tarihi: 15/Eylül/2011
    Erkek
    _DevLop_ bunu yazdı

    Merhaba,

    Güzel bir test olmuş. Fakat karmaşık sorgularda bu testin nasıl bir sonuç vereceğini merak ediyorum. Bizim yaptığımız sql sorgularında en az 12-13 tabloya bağlanma ihtiyacı duyuyoruz. heleki left joinlerde bu sorgular çoğalıyor.

    String birleştirme işlemlerinde yine sql serverın sorgu döndürme hızı fark ediyor. Güzel bir datayla bu işlemi test etmek daha doğru sonuca vardıracaktır. Ayrıca Function kullanmışsın. Sp ile denemekte yarar var tabi parametreler ile birlikte..

    Hocam evet soyle dedigin gibi 20 tablo 10 sutunlu ve id, nvarchar karisimi verilerden olusan. Herbiri 1.000.000 kayittan olusan bir test yapabilirim. JOIN vs kullanarak Isin icine WCF ve SP koyabilirim.

     


    Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver !!! // Hayatin herkes icin bir bavulu vardir !!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Elif - Efe
    rakkoc
    rakkoc's avatar
    Kayıt Tarihi: 19/Aralık/2003
    Homo
    dhmm bunu yazdı
    rakkoc bunu yazdı

    entity'de cache kullanıyormusun ? 

    Yok kullanmiyorum.Lakin bir sorguyu tekrar calistirdiginda kendi cache tutuyor mu onu tam bilmioyrum ?

    Soyle bir sey var entity ile ilk calistirilan sorgu cold query sonraki digerleri warm query oluyormus ve daha hizli calisiyormus. Ayrica EF5 kullandim. EF6 context creation kisminda EF4 ve EF5 e gore daha yavas.

    o yüzden dependency injection kullanman gerekiyor :( query nin second level cache alması ile sorgu daha da hizlanacaktır.


    Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dhmm
    dhmm's avatar
    Kayıt Tarihi: 15/Eylül/2011
    Erkek
    rakkoc bunu yazdı
    dhmm bunu yazdı
    rakkoc bunu yazdı

    entity'de cache kullanıyormusun ? 

    Yok kullanmiyorum.Lakin bir sorguyu tekrar calistirdiginda kendi cache tutuyor mu onu tam bilmioyrum ?

    Soyle bir sey var entity ile ilk calistirilan sorgu cold query sonraki digerleri warm query oluyormus ve daha hizli calisiyormus. Ayrica EF5 kullandim. EF6 context creation kisminda EF4 ve EF5 e gore daha yavas.

    o yüzden dependency injection kullanman gerekiyor :( query nin second level cache alması ile sorgu daha da hizlanacaktır.

    @rakkoc EF 5 te desteklemiyor galiba yada ben oyle anladim 2nd lev cache... Isin PRO'su sensin...

     

     Soru : Dependecy Injection'u veri cekme yontemi icin kullanmaliyim dimi ? Dogru mu anlamisim ?

    dhmm tarafından 10/Mar/17 16:43 tarihinde düzenlenmiştir

    Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver !!! // Hayatin herkes icin bir bavulu vardir !!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin
Toplam Hit: 1085 Toplam Mesaj: 11
sql sql server sql server veri çekmek