Tavsiye

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Tavsiye

Mesaj gönderen m_ekici »

Merhaba arkadaşlar

150 bin kaydın olduğu bir tablom var. bu tabloda arama yaptığım 2 varchar kolon var. Kolonlarda arama yaparken boşluk, virgül, tire gibi işaretleri yok saymam, kullanıcı XXYY, XX-YY, XX YY değerler yazdığında içinde XXYY metni geçen satırları bulsun istiyorum. Queryde bu alanları Replace ile çıkararak aradığımda sorgu 1 dak. yı buluyor. Bu aramayı hızlandırmanın bir yolu veya tavsiyeniz varmıdır?

İyi Çalışmalar
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Tavsiye

Mesaj gönderen vkamadan »

Merhabalar ,
MSSQL de ki bence çok güzel bir yapı olan "Indexed View" yapısını incelemenizi öneririm, özetle ilgili sahanın REPLACE edilmiş halini de döndüren bir "Indexed View" hazırlayın ilgili hesaplanan sahaya index ekleyin birde böyle deneyin. ben aktif bir MSSQL kullanıcısı değilim ancak bir ara eğitimini almıştım oradan aklımda kaldı umarım ışık tutar.
Burada net bir anlatım var faydalı olabilir http://www.mshowto.org/sql-server-da-in ... nilir.html
İyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Tavsiye

Mesaj gönderen csunguray »

Ben bir projemde benzer kodlu bir ürün olup olmadığını bulabilmek için yeni bir saha oluşturdum ve ürün kodunun temizlenmiş halini bu sahaya yazdım. Sonra bu sahadan aramaya yaptırdım. Gayet verimli çalışıyor. Kodu sadeleştirmek için aşağıdaki fonksiyonu kullanıyorum.

Kod: Tümünü seç

function TForm1.TemizKod(Str1: String): String;
var
  Sayac: Integer;
  Ch1: Char;
begin
  Str1 := DM.AnsiUpperCaseTr(Str1);
  Result := '';
  for Sayac := 1 to Length(Str1) do
  begin
    Ch1:= Str1[Sayac];
    case Ch1 of
      'A'..'Z': Result := Result + Ch1;
      '0'..'9': Result := Result + Ch1;
      'Ğ': Result := Result + 'G';
      'Ü': Result := Result + 'U';
      'Ş': Result := Result + 'S';
      'İ': Result := Result + 'I';
      'Ö': Result := Result + 'O';
      'Ç': Result := Result + 'C';
      'Ä': Result := Result + 'A';
      'Â': Result := Result + 'A';
      'Û': Result := Result + 'U';
      'æ': Result := Result + 'AE';
      'Æ': Result := Result + 'AE';
      'ß': Result := Result + 'SS';
      'ñ': Result := Result + 'N';
      'Ñ': Result := Result + 'N';
      //"àèìòùÀÈÌÒÙ äëïöüÄËÏÖÜ âêîôûÂÊÎÔÛ áéíóúÁÉÍÓÚðÐýÝ ãñõÃÑÕšŠžŽçÇåÅøØ"
      //"aeiouAEIOU aeiouAEIOU aeiouAEIOU aeiouAEIOUdDyY anoANOsSzZcCaAoO"
   end;
  end;
end;
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
kerpeten
Üye
Mesajlar: 62
Kayıt: 26 May 2016 01:31

Re: Tavsiye

Mesaj gönderen kerpeten »

RegEx ifadesi kullanabilirsiniz.
Cevapla