215 Alanlı Tablede Performans
215 Alanlı Tablede Performans
Merhaba;
215 alanı olan bir tablem var. İrili ufaklı tipler var. Varchar alanlarım max 30 numeric alanlar 25/6 tipinde
Şu an denemeler yapmak için 1 milyon kayıt üretmeye çalışıyorum.
*Bir Tablede 215 alan çok mu fazla !
*İleride ne gibi sorunlarla karşılaşabilirim.
*Tanım tablosu olduğu için parçalara bölemk istemiyorum (bu taplodan 2-3 tablo çıkarmak)
*Sorgularımda Bu tapo ile birlikte yaklaşık 4 tabloyuda birleştirecek bir yapı düşünüyorum. (diğer tablolardan toplam 5-10 alan almayı planlıyorum.)
*Select Top 20 From STK Türü Sorgularla çalışırsam sorun kalmazmı?
Bu taplo planlamasında baya kafam karışık en iyi performansı nasıl elde edeceğimi düşünüyorum Yardımcı olursanız sevinirim.
Büyük yazılım firmalarının tablelerini incelediğimde 180 civarında alan olduğunu gözlemledim. Onlar Yakın alan sayılarıyla çalışabiliyorlar peki ya ben!
Saygılarımla
Teşekkürler.
215 alanı olan bir tablem var. İrili ufaklı tipler var. Varchar alanlarım max 30 numeric alanlar 25/6 tipinde
Şu an denemeler yapmak için 1 milyon kayıt üretmeye çalışıyorum.
*Bir Tablede 215 alan çok mu fazla !
*İleride ne gibi sorunlarla karşılaşabilirim.
*Tanım tablosu olduğu için parçalara bölemk istemiyorum (bu taplodan 2-3 tablo çıkarmak)
*Sorgularımda Bu tapo ile birlikte yaklaşık 4 tabloyuda birleştirecek bir yapı düşünüyorum. (diğer tablolardan toplam 5-10 alan almayı planlıyorum.)
*Select Top 20 From STK Türü Sorgularla çalışırsam sorun kalmazmı?
Bu taplo planlamasında baya kafam karışık en iyi performansı nasıl elde edeceğimi düşünüyorum Yardımcı olursanız sevinirim.
Büyük yazılım firmalarının tablelerini incelediğimde 180 civarında alan olduğunu gözlemledim. Onlar Yakın alan sayılarıyla çalışabiliyorlar peki ya ben!
Saygılarımla
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________
Peki hocam Aynı Tabloyu diyelimki 3 e böldümlazio yazdı:alan sayısı arttıkça performansın düşeceği bariz açıktır hocam..
tablo sayısı artsa bile alanları mümkünse parçalamak en iyisidir.
Tek Tablodaki 215 alanın performansımı daha iyi olur yoksa
3 Tabloyu Join ile birleştirdiğimzdeki toplam 215 alanmı?
Stok Tanım kartı olduğu için ayrı ayrı parçalaraba bölmek istemedim.
Sonuçta tanım yaparken bu 215 alanada ihtiyaç olacağı için muhakkak seçtirme işlemi yapmam gerekcek.
Saygılarımla
Teşekkür Ederim.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________
Eğer hepsini birarada kullanmak zorundaysan tek tabloda tutumanı tavsiye ederim join işi yavaşlatıyor. Logo kullandın mı bilmiyorum ama eğer kullanıp farkettiysen onlar genelde bilgileri tek tek tablolardan alıyorlar join kullanmıyorlar. Hem sen kullanmak istemediğin alanları select ifadende çağırmazsın ozaman daha hızlı olur. Ama insert yaparken biraz işkence olacağı kesin hele bir de autoinc bir idin varsa onu inserte yazmaman gerektiğinden diğer tüm alanları tek tek yazman gerekir cümlene.
Merhaba Naile Hanım;
Cevabınız için teşekkür ederim.
Sizinde belirttiğiniz gibi İnsert işlemlerinde tüm alanları tek tek yazmak zorunda kalmak biraz kötü (Daha önce bu konu hakkında başlık açmıştım şu alan hariç seç diye bir kullanım neden yok diye)
Sizinde belirtitğiniz gibi Tek tabloda kullanmak bencede en mantıklısı. Dün uzun uğraşlar sonu 1.200.000 kayıt oluşturdum veri tabanına.
Sadece Select * From Diyerek Çağırırsam yaklaşım 5.5 dak geliyor.
Sanırım benim Select Top 1 Forum STK gibi bir kullanım ile çalışmam gerekecek Bazı alanları seçimeme dahil etmem işlemi sanırım raporlar için geçerli olacak.
Saygılarımla
Teşekkürler.
Cevabınız için teşekkür ederim.
Sizinde belirttiğiniz gibi İnsert işlemlerinde tüm alanları tek tek yazmak zorunda kalmak biraz kötü (Daha önce bu konu hakkında başlık açmıştım şu alan hariç seç diye bir kullanım neden yok diye)
Sizinde belirtitğiniz gibi Tek tabloda kullanmak bencede en mantıklısı. Dün uzun uğraşlar sonu 1.200.000 kayıt oluşturdum veri tabanına.
Sadece Select * From Diyerek Çağırırsam yaklaşım 5.5 dak geliyor.
Sanırım benim Select Top 1 Forum STK gibi bir kullanım ile çalışmam gerekecek Bazı alanları seçimeme dahil etmem işlemi sanırım raporlar için geçerli olacak.
Saygılarımla
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________
Naile hanım sizin bahsettiğiniz İnsert işlemini denedim 150.000 kayıtı 19 dakikata atarken 550.000 kayıtı yaklaşık 3 saatte attığını gözlemledim.
Aslında ben işi abartıyorum sanırım Büyük firmaların vtlerinide inceldim stok kartı 300.000 üstünde olan yok. Ben yinede işi sağlam tutup tüm tabloları 1 milyonun üzerinde kayıt yaratıp öyle programı geliştirecem.
Teşekkürler.
Aslında ben işi abartıyorum sanırım Büyük firmaların vtlerinide inceldim stok kartı 300.000 üstünde olan yok. Ben yinede işi sağlam tutup tüm tabloları 1 milyonun üzerinde kayıt yaratıp öyle programı geliştirecem.
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________
Tek tabloda tutmak illaki mantıklı diye birşey yok. Stok tanımı tablosunda 215 alanın mesela 15 tanesi önemli 30 tanesi ikinci derece önemli 25 tanesi üçüncü derece gibi bir gruplama yapabiliyorsan tablolara bölmen daha mantıklı olabilir. JOIN ile birkaç tabloyu birleştirerek SELECT yapmak öyle fazla fark etmeyecektir. Bir kere normalizasyon mantığına göre tablo sayısını zaten arttıracağını varsayıyorum.
Ben benzer bir durumla karşılaştığımda şöyle bir yol izlemiştim: Birinci tabloda mutlak girilmesi gereken veya çoğunlukla girilmesi gereken alanları topladım. İkinci tabloda da bazen girilecek alanları. Üçüncü tabloda da nadiren girilen veya bulunsun da belki lazım olur dediğim alanları topladım. Son iki tabloyu birinci tabloya bir alanla (integer) ilişkilendirdim. Birinci tabloya mesela 100.000 kayıt girildi. İkinci tabloya 10.000, üçüncü tabloya 1000.
Bu mantıkla biraz düşünüp böyle bir yapı kurabilirsen performansın çok artacaktır. Zira basit bir Select komutunun 5.5 dakika sürmesi çok endişe verici. Hiç kimsenin ben basit bir rapor için tuşa basıp bu kadar bekleyebileceğini veya bunu kabullenebileceğini sanmıyorum.
İyi çalışmalar.
Ben benzer bir durumla karşılaştığımda şöyle bir yol izlemiştim: Birinci tabloda mutlak girilmesi gereken veya çoğunlukla girilmesi gereken alanları topladım. İkinci tabloda da bazen girilecek alanları. Üçüncü tabloda da nadiren girilen veya bulunsun da belki lazım olur dediğim alanları topladım. Son iki tabloyu birinci tabloya bir alanla (integer) ilişkilendirdim. Birinci tabloya mesela 100.000 kayıt girildi. İkinci tabloya 10.000, üçüncü tabloya 1000.
Bu mantıkla biraz düşünüp böyle bir yapı kurabilirsen performansın çok artacaktır. Zira basit bir Select komutunun 5.5 dakika sürmesi çok endişe verici. Hiç kimsenin ben basit bir rapor için tuşa basıp bu kadar bekleyebileceğini veya bunu kabullenebileceğini sanmıyorum.
İyi çalışmalar.
@Hakan Can Cevabınız için teşekkür ederim.
Sizin bahsettiğinizşekilde mantıklı bir yaklaşım olmazsa ona göre deneyeceğim.
Hocam 5.5 dak. beklem olayına gelince tabloda 1.000.000 (1 milyon) üzerinde kayıt varken bu sonucu veriyor.
Select Top 1 From Table şeklindeki bir Yaklaşımla bu performans büyük ölçüde sağlanmış olmuyormu acaba.!
Not:1 milyon kayıt olduğunda bile Select Top 1 From Table dediğimde 30 sn bağlanamadı.
Bu Alan sayısı fazla tableyi Kullanırken Select To 1 From Table şeklinde çalışırsam sorun olmazmı ki! ileride geri dönüşü zor olan hatalar yapmak istiyorumda endişemi mazun görün
Saygılarımla
Teşekkürler
Sizin bahsettiğinizşekilde mantıklı bir yaklaşım olmazsa ona göre deneyeceğim.
Hocam 5.5 dak. beklem olayına gelince tabloda 1.000.000 (1 milyon) üzerinde kayıt varken bu sonucu veriyor.
Select Top 1 From Table şeklindeki bir Yaklaşımla bu performans büyük ölçüde sağlanmış olmuyormu acaba.!
Not:1 milyon kayıt olduğunda bile Select Top 1 From Table dediğimde 30 sn bağlanamadı.

Bu Alan sayısı fazla tableyi Kullanırken Select To 1 From Table şeklinde çalışırsam sorun olmazmı ki! ileride geri dönüşü zor olan hatalar yapmak istiyorumda endişemi mazun görün

Saygılarımla
Teşekkürler
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________