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
Tavsiye
Re: Tavsiye
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.
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
www.polisoft.com.tr
Re: Tavsiye
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/)
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/)
Re: Tavsiye
RegEx ifadesi kullanabilirsiniz.