SELECT TOP (SELECT FIRST) Performans farkı TEXT alanlarda

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

KULLANICIADI NOT NULL
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

"select TOP 20 * FROM VSTOKHAREKETLERI WHERE KULLANICIADI LIKE '%XYZQWERTWERT%'" gibi.

Yani tabloyu baştan sona tarasın. Tabi bir de ilk denemede ne kadar sürüyor. Yani bilgisayarı veya MS-SQL Server'ı yeni açtığında test etmelisin. Zira MS-SQL bir tablo ile ilgili bir işlem yaptığında ilkinde hafızaya alıyor sonra hafızadan işlem yapıyor. Hızlı olmasının bir nedeni de bu zaten (yani bazı yerlerde).

İyi çalışmalar.
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

SELECT TOP 20 * FROM KIMLIK WHERE ADI LIKE '%DFSFDSF FGFDH%'

işlemini 2 saniyeden az bir sürede getirdi.
kayıt sayısı 240.000

iyi çalışmalar.
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

FB aynı işlemi 1 sn nin altında gerçekleştirdi.
kayıt sayısı:240.000

iyi çalışmalar.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Ama 2 milyon demiştin.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

kimene yazdı:FB aynı işlemi 1 sn nin altında gerçekleştirdi.
kayıt sayısı:240.000

iyi çalışmalar.
FB ilk SELECT'lerde ve daha birçok ilklerde ve kullanıcı sayısının az olduğu çoğu yerde zaten hızlı olduğu defalarca konuşuldu (MS-SQL'le kıyaslandığında) forumda. Ancak daha önce de belirttiğim gibi MS-SQL ilk işlemde tabloları hafızaya alıyor ve sonrasında hızlanıyor.

İyi çalışmalar.
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

2 milyon kayıt müşterinin server ında.
üzerindeki mssql i restart edemem.
ama orada denediğimde 6 sn de verdi.

iyi çalışmalar.
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

peki FB ün cache lemesini sağlayamazmıyız.

iyi çaılşmalar.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

FireBird'de öyle bir özellik yok (MS-SQL'deki gibi). Zaten onun üstünlük olarak belirtilen bir özelliğidir o. Hafızada çok az yer işgal eder FireBird. Gerçiistersen bunu arttırabiliyorsun. Ama sonuçta MS-SQL'deki özellik yok.

İyi çalışmalar.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Hakan Can, FB'de Cache'leme var ama bunu kullanıcı kendisi istertse açabiliyor, normalde açmıyor (Sen de bunu yazmışsın ama pek açık bir ifade olmamış :) ) Yanlış anlaşılmasın.

Kimene, eğer firebird.conf isimli dosyaya girip bakarsanız orada bir çok performans arttırıcı konfigurasyon ayarları olduğunu görürsünüz.

Örneğin, Default olarak FB'nin CPU priority'si NORMAL'dir. M$-SQL'de ise HIGH olarak çalışır, eğer siz FB'nin CPU PRIORITY'sini arttırırsanız performansınız otomatik olarak artar. Bunun yanı sıra DBCachePages adı altında bir ayarı daha vardır, Normalde SuperServer için 2048 olan DBCHACHEPAGES sayısını, Server'ınızın Belleğine göre arttırabilir ve işlemleri daha da hızlandırabilirsiniz (Yani CACHE'de bitirebilirsiniz.)

Daha da var, Disk Page size ile DB Page Size'ını eşlenik yaparsınız performansınızı arttırırsınız, Index'lerinizi Çok Tekrar edenden, Az tekrar edenlere doğru kurarsınız performansınızı arttırırrsınız, makinayı LINUX'a çevirirsiniz PErformansınızı arttırırsınız.

M$-SQL Server, Default olarak MAX Performansla geliyor. FB ise neredeyse MIN Performansla geliyor. Siz onun ayarlarıyla oynayarak hızlandırıyorsunuz. (Gerçi MIN ayarlar dediğim hali ile bile gayet iyi çalışıyor) sistemi zorlamıyor, makinanız apışmıyor Query geldiğinde :)

Neyse Daha da yazılır ama ,

Şimdilik Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Haaa bir de şunu ekleyeyim,

Testleri CACHE'siz yapmak istiyorsan M$-SQL'in DBCC komutlarından bir tanesi CACHE'lediği DB'yi CACHE'den kaldırıyor. Yani CACHE'lenmemiş hale dönüştürüyor ve sorgularınızı ona göre çalıştırıyor.

Bir de öyle deneyin bakalım Vehamet ne boyutta :lol: :lol: :lol:

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

MS-SQL Server'da CACHE özelliği derken bahsettiğimiz çok farklı idi. Herhangi bir tablo ile ilgili herhangi bir connection bir işlem yaptığında MS-SQL Server ilk işlemde o tabloyu hafızaya alıyor (tabi müsaitse) ve bundan sonra işlemleri hafızada yapıyor. Zaten o yüzden yeterli hafıza olduğunda yapılan testlerde birincisinden sonra test sonuçları MS-SQL lehine çok bariz değişiyor. Biz genel manada yaklaşık %40 civarında performans artışı sağlamıştık.

FireBird'ün yapısı bu noktada MS-SQL'den ayrılıyor. CACHE'in arttırılması sayesinde MS-SQL Server gibi tabloyu ilk okunmada hafızaya alıp sonra bütün işlemleri mümkün mertebe hafızada yapmıyor. Bildiğim eğer bir yapılmış işlem varsa aynı işlem tekrarlandığında onu tekrar yapmadan direk sonucunu hafızadan alıyor.

Eğer yapıyor diyorsanız o zaman yeni bir özellik ilave edilmiş olmalı. Onu da ben şu ana kadar duymadım.

İyi çalışmalar.
Cevapla