Skip to main content

AccessTr.neT


Sorguda Yavaşlama

Sorguda Yavaşlama

#1
Merhaba; ekteki örnekte barkodlusatış formunda önce müşteri seçimi yapılıp sonra barkod okutulup sorgudan veri çekiliyor. Ama gerçek programda sorgunun satırı 7000 civarında ve veri gelirken 20-30 saniyelik gecikmeler oluyor. 1 senelik ortalama stok hareketi 15000 olan bir firma zaman ilerledikçe iyice yavaşlamasından korkuyorum. İşler hızlansın diye barkod eklerken daha çok işimizi yavaşlatacak gibi görünüyor. 
Veriyi sorgudan almamım sebebi ise kumaş satışlarında stoğa top halinde giriyor diyelim ki 3 top var ve bunların her biri 30 ar metre aynı ürün ve renk. Stok girişinde her top içi ayrı barkod çıkacak. Satışta da bu toplardan biri okutulup içiden kesim  yani diyelim ki 5 metre satılacak. Tabi hangi toptan kesildiği belli olması ve içinde kaç metre olduğu bilinmesi için satış bitiminde kalan metraja bir barkod çıkacak ve topun üzerine yapıştırılacak. Bunu yapabilmenin en kolay yolu "sbarkodlustokdurumu" adlı sorguyu oluşturmak olduğunu düşündüm ve hazırladım. Gel görki hem programı yavaşlattı hemde işlemi. Bunun farklı bir yöntemi sizce varmı? Nasıl daha hızlı yapabilirim bu işlemi?
.rar Database11.rar (Dosya Boyutu: 125,11 KB | İndirme Sayısı: 16)
Cevapla
#2
(01/01/2018 06:32)exmadon Adlı Kullanıcıdan Alıntı: Merhaba; ekteki örnekte barkodlusatış formunda önce müşteri seçimi yapılıp sonra barkod okutulup sorgudan veri çekiliyor. Ama gerçek programda sorgunun satırı 7000 civarında ve veri gelirken 20-30 saniyelik gecikmeler oluyor. 1 senelik ortalama stok hareketi 15000 olan bir firma zaman ilerledikçe iyice yavaşlamasından korkuyorum. İşler hızlansın diye barkod eklerken daha çok işimizi yavaşlatacak gibi görünüyor. 
Veriyi sorgudan almamım sebebi ise kumaş satışlarında stoğa top halinde giriyor diyelim ki 3 top var ve bunların her biri 30 ar metre aynı ürün ve renk. Stok girişinde her top içi ayrı barkod çıkacak. Satışta da bu toplardan biri okutulup içiden kesim  yani diyelim ki 5 metre satılacak. Tabi hangi toptan kesildiği belli olması ve içinde kaç metre olduğu bilinmesi için satış bitiminde kalan metraja bir barkod çıkacak ve topun üzerine yapıştırılacak. Bunu yapabilmenin en kolay yolu "sbarkodlustokdurumu" adlı sorguyu oluşturmak olduğunu düşündüm ve hazırladım. Gel görki hem programı yavaşlattı hemde işlemi. Bunun farklı bir yöntemi sizce varmı? Nasıl daha hızlı yapabilirim bu işlemi?

Kardeş içinde sadece 2 veri var burada hızlı olduğu için görme şansımız yok haliyle. Ancak benimde başıma gelen bazı yavaşlama sorunlarını şöyle çözdüm.

1. Sorgu isimlerini kısalttım. Ve mümkün olduğunca yalın isimler kullanmaya çalıştım.
2. Birleşim sorgusundan aldığım verileri çektiğim sorgularımı Vba içinden her defasında yeniden oluşturarak aldım.
3. Birleşim sorgunuzun içine eğer ekleyebilirseniz başka kriter ekleyerek veriyi azaltmaya çalışın. Yıl ay yada ürün türü vb. gibi.
Cevapla
#3
(01/01/2018 16:55)alperalper Adlı Kullanıcıdan Alıntı:
(01/01/2018 06:32)exmadon Adlı Kullanıcıdan Alıntı: Merhaba; ekteki örnekte barkodlusatış formunda önce müşteri seçimi yapılıp sonra barkod okutulup sorgudan veri çekiliyor. Ama gerçek programda sorgunun satırı 7000 civarında ve veri gelirken 20-30 saniyelik gecikmeler oluyor. 1 senelik ortalama stok hareketi 15000 olan bir firma zaman ilerledikçe iyice yavaşlamasından korkuyorum. İşler hızlansın diye barkod eklerken daha çok işimizi yavaşlatacak gibi görünüyor. 
Veriyi sorgudan almamım sebebi ise kumaş satışlarında stoğa top halinde giriyor diyelim ki 3 top var ve bunların her biri 30 ar metre aynı ürün ve renk. Stok girişinde her top içi ayrı barkod çıkacak. Satışta da bu toplardan biri okutulup içiden kesim  yani diyelim ki 5 metre satılacak. Tabi hangi toptan kesildiği belli olması ve içinde kaç metre olduğu bilinmesi için satış bitiminde kalan metraja bir barkod çıkacak ve topun üzerine yapıştırılacak. Bunu yapabilmenin en kolay yolu "sbarkodlustokdurumu" adlı sorguyu oluşturmak olduğunu düşündüm ve hazırladım. Gel görki hem programı yavaşlattı hemde işlemi. Bunun farklı bir yöntemi sizce varmı? Nasıl daha hızlı yapabilirim bu işlemi?

Kardeş içinde sadece 2 veri var burada hızlı olduğu için görme şansımız yok haliyle. Ancak benimde başıma gelen bazı yavaşlama sorunlarını şöyle çözdüm.

1. Sorgu isimlerini kısalttım. Ve mümkün olduğunca yalın isimler kullanmaya çalıştım.
2. Birleşim sorgusundan aldığım verileri çektiğim sorgularımı Vba içinden her defasında yeniden oluşturarak aldım.
3. Birleşim sorgunuzun içine eğer ekleyebilirseniz başka kriter ekleyerek veriyi azaltmaya çalışın. Yıl ay yada ürün türü vb. gibi.

cevabınız için teşekkür ederim. Evet gerçek verili uygulamayı koyamazdım, işleyişi örnek vermek amaçlı eki koydum. iİlk oluşturduğumda neden yavaşladığını anlamak için yeni bir Access dosyasına çekip verileri temizledim. Böylece çok veriden kaynakladığı belli oldu.
Peki anlattığım şekildeki işlemi yani satıştaki bölüme veriyi getirmek için başka yöntem kullanabilir miyim? Birleşim sorgusundan başka hiç bir şey aklıma gelmedi top barkodları için.
Cevapla
#4
Sn exmadon mobilden inceledim bişey diyemeyeceğim. Ancak bende de çok büyük ve hatta sizinkinden daha karmaşık sorgular olan dosya var. İlk başta sizin gibi yaptım ancak acayip yavaşladı. Daha sonra sorguyu bölüm bölüm çalıştırdım. Mesela bende 14 sorgu çalışan bir sorgu var. Bunu parçalayarak aşamalandırdım. Size yarın bu konuda yardım etmeye çalışırım..

EDİT: Birleşim sorgunuza bağımlı başka bir alan göremedim. Bu sorguyu burada nasıl kullanıyorsunuz? Formlar üzerinde de hiçbir yer çalışmıyor bu yüzden meseleyi pek anlayamadım. Yada ne yapmak istedğinizi kısaca aktarırsanız yardımcı olmaya çalışırız.
Son Düzenleme: 02/01/2018, 09:56, Düzenleyen: alperalper.
Cevapla
#5
(01/01/2018 23:24)alperalper Adlı Kullanıcıdan Alıntı: Sn exmadon mobilden inceledim bişey diyemeyeceğim. Ancak bende de çok büyük ve hatta sizinkinden daha karmaşık sorgular olan dosya var. İlk başta sizin gibi yaptım ancak acayip yavaşladı. Daha sonra sorguyu bölüm bölüm çalıştırdım. Mesela bende 14 sorgu çalışan bir sorgu var. Bunu parçalayarak aşamalandırdım. Size yarın bu konuda yardım etmeye çalışırım..

EDİT: Birleşim sorgunuza bağımlı başka bir alan göremedim. Bu sorguyu burada nasıl kullanıyorsunuz? Formlar üzerinde de hiçbir yer çalışmıyor bu yüzden meseleyi pek anlayamadım. Yada ne yapmak istedğinizi kısaca aktarırsanız yardımcı olmaya çalışırız.

Barkodlu satış formunda önce sağdaki müşteri listesinden çift tıklayarak soldaki alana fatura numarası oluşturuluyor. Daha sonra soldaki tüm alanlar doldurulunca ortadaki uzun metin kutusuna barkod yazdırılıyor. onun altındaki kutulara bilgiler birleşim sorgusundan çekiliyor. Ben şimdi bileşim sorgusundaki ürün kodları barkod e kalan bilgisi haricindeki tüm alanları kaldırıp ikinci bir sorgu ile ürünün diğer tüm bilgilerini getirdim. Bu şekilde yaklaşık 10 saniyeye düştü. Tabi bu yinede veri arttıkça yavaşlayacağı anlamına geliyor. Aynı şekilde bir çok birleşim sorgusu kullanıyorum bu şekilde yavaşlama görmemiştim. Acaba kodlarda mı bi hata yapıyorum?
Son Düzenleme: 02/01/2018, 11:59, Düzenleyen: exmadon.
Cevapla
#6
Sorunumu şimdilik şöyle bir yöntemle çözdüm ; metin kutuları yerine liste kutusuna veri aldım. Barkod yazılan kısımla sorguda like kodu ile süzme yaptırdım bu şekilde veriyi daha hızlı buldu. Çift tıklamayla alt forma indirip satışı sorunsuz hızlı birşekilde yaptım. İlginiz için teşekkür ederim. Konu kapatıbilir.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task