profil resmini begenmedim :) sorgunun uzun sürmesinin muhtemel nedeni yaptigin gruplama.. bunu yazilim tarafinda da yapabilirsin . Ayrica iki konu hakkinda arastirma yaparsan bir cok sey ogrenebilirsin. Database Normalization ve Database Index. Maalesef bu konular gzden kaciliyor. Oysa cok onemli konular.. Ikinci tavsiyem, kodunu yavas yavas kirp ve performanslarini lc, boylece yük getiren kismi tam olarak bulursun ve ona gre de sorgunu tekrar yazarsin unbalanced tarafından 23/Haz/17 13:32 tarihinde düzenlenmiştir Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

okadar ıyı degılım ama ogrenebılırım Ayrica alt sorgu yerine funksiyon veya stored procedure yazabirlisin. bu deıdıgını nasıl yapabılırım vb nettekine benzıyenn bır seydır herhalde

SELECT (SELECT TOP (1) sBarkod FROM dbo. tbStokBarkodu WHERE nStokID = dbo. tbStok. nStokID) AS sBarkod,(SELECT TOP (1) sBarkod FROM dbo. tbStokBarkodu WHERE nStokID = dbo. tbStok. nStokID AND nFirmaID <> '0') AS sFirmaBarkod, dbo. tbStok. sAciklama, sFiy1. lFiyat AS TA, sFiy2. lFiyat AS ISF, sFiy3. lFiyat AS PSF, sFiy4. lFiyat AS TAI, dbo. tbStok. sKodu, dbo. tbKdv. nKdvOrani, dbo. tbStok. sModel, dbo. tbRenk. sRenkAdi, dbo. tbStok. sBeden, dbo. tbStok. nStokID, dbo. tbStokSinifi. sSinifKodu14 FROM dbo. tbStokSinifi RIGHT OUTER JOIN dbo. tbStok ON dbo. tbStokSinifi. nStokID = dbo. tbStok. nStokID RIGHT OUTER JOIN dbo. tbStokBarkodu AS tbStokBarkodu_1 ON dbo. tbStok. nStokID = tbStokBarkodu_1. nStokID LEFT OUTER JOIN dbo. tbStokFiyati AS sFiy1 ON dbo. tbStok. nStokID = sFiy1. nStokID AND sFiy1. sFiyatTipi = 'TA' LEFT OUTER JOIN dbo. tbRenk ON dbo. tbStok. sRenk = dbo. tbRenk. sRenk LEFT OUTER JOIN dbo. tbKdv ON dbo. tbStok. sKdvTipi = dbo. tbKdv. sKdvTipi LEFT OUTER JOIN dbo. tbStokFiyati AS sFiy2 ON dbo. tbStok. nStokID = sFiy2. nStokID AND sFiy2. sFiyatTipi = 'ISF' LEFT OUTER JOIN dbo. tbStokFiyati AS sFiy4 ON dbo. tbStok. nStokID = sFiy4. nStokID AND sFiy4. sFiyatTipi = 'TAI' LEFT OUTER JOIN dbo. tbStokFiyati AS sFiy3 ON dbo. tbStok. nStokID = sFiy3. nStokID AND sFiy3. sFiyatTipi = 'PSF' GROUP BY dbo. tbStok. sKodu, dbo. tbStok. nStokID, dbo. tbStok. sAciklama, dbo. tbStok. sBeden, dbo. tbRenk. sRenkAdi, sFiy1. sFiyatTipi, sFiy2. sFiyatTipi, sFiy3. sFiyatTipi, sFiy4. sFiyatTipi, sFiy1. lFiyat, sFiy2. lFiyat, sFiy3. lFiyat, sFiy4. lFiyat, dbo. tbKdv. nKdvOrani, dbo. tbStok. sModel, dbo. tbStokSinifi. sSinifKodu14 Byle bir sorgum var bu sorgunun tamamnlanması yaklasık 47 sn suruyor. sorgu performans araclarında 47 saniyeyi alt sorgularımın biri %33 diğeri %31 alıyor bu alt sorguları daha farklı calıstırmak ıcın bır yol varmı acaba

Ek olarak sanırım joinler ile sadece tek bir parametre çekiyorsun. Join yaparak tüm parametreleri ele alıyorsun. LeftJoin veya Right join'i yukarıda dhdmm anlatmış zaten onlarla fazladan işleme sokuyorsun sorguyu. Indexleme olayı da veritabanını çok iyileştiriyor birebir şahit oldum. heleki LIKE Sorguları varsa... Cok rica edecegim dhmm yazalim :). Saka bir yana FB tan email, pm vs bana bi ulasirmisin. Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver!!! // Hayatin herkes icin bir bavulu vardir!!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin

indexleme yapılıp yapılmadıgını nasıl kontrol edebılırım birde bu sekılde yazınca foksıyounu bulamıyo acaba atladıgım bırseymı var

SELECT (SELECT TOP (1) sBarkod FROM dbo. tbStokBarkodu WHERE nStokID = dbo. tbStok. nStokID) AS sBarkod,(SELECT TOP (1) sBarkod FROM dbo. tbStokBarkodu WHERE nStokID = dbo. tbStok. nStokID AND nFirmaID <> '0') AS sFirmaBarkod, dbo. tbStok. sAciklama, sFiy1. lFiyat AS TA, sFiy2. lFiyat AS ISF, sFiy3. lFiyat AS PSF, sFiy4. lFiyat AS TAI, dbo. tbStok. sKodu, dbo. tbKdv. nKdvOrani, dbo. tbStok. sModel, dbo. tbRenk. sRenkAdi, dbo. tbStok. sBeden, dbo. tbStok. nStokID, dbo. tbStokSinifi. sSinifKodu14 FROM dbo. tbStokSinifi RIGHT OUTER JOIN dbo. tbStok ON dbo. tbStokSinifi. nStokID = dbo. tbStok. nStokID RIGHT OUTER JOIN dbo. tbStokBarkodu AS tbStokBarkodu_1 ON dbo. tbStok. nStokID = tbStokBarkodu_1. nStokID LEFT OUTER JOIN dbo. tbStokFiyati AS sFiy1 ON dbo. tbStok. nStokID = sFiy1. nStokID AND sFiy1. sFiyatTipi = 'TA' LEFT OUTER JOIN dbo. tbRenk ON dbo. tbStok. sRenk = dbo. tbRenk. sRenk LEFT OUTER JOIN dbo. tbKdv ON dbo. tbStok. sKdvTipi = dbo. tbKdv. sKdvTipi LEFT OUTER JOIN dbo. tbStokFiyati AS sFiy2 ON dbo. tbStok. nStokID = sFiy2. nStokID AND sFiy2. sFiyatTipi = 'ISF' LEFT OUTER JOIN dbo. tbStokFiyati AS sFiy4 ON dbo. tbStok. nStokID = sFiy4. nStokID AND sFiy4. sFiyatTipi = 'TAI' LEFT OUTER JOIN dbo. tbStokFiyati AS sFiy3 ON dbo. tbStok. nStokID = sFiy3. nStokID AND sFiy3. sFiyatTipi = 'PSF' GROUP BY dbo. tbStok. sKodu, dbo. tbStok. nStokID, dbo. tbStok. sAciklama, dbo. tbStok. sBeden, dbo. tbRenk. sRenkAdi, sFiy1. sFiyatTipi, sFiy2. sFiyatTipi, sFiy3. sFiyatTipi, sFiy4. sFiyatTipi, sFiy1. lFiyat, sFiy2. lFiyat, sFiy3. lFiyat, sFiy4. lFiyat, dbo. tbKdv. nKdvOrani, dbo. tbStok. sModel, dbo. tbStokSinifi. sSinifKodu14 Byle bir sorgum var bu sorgunun tamamnlanması yaklasık 47 sn suruyor. sorgu performans araclarında 47 saniyeyi alt sorgularımın biri %33 diğeri %31 alıyor bu alt sorguları daha farklı calıstırmak ıcın bır yol varmı acaba Hocam outer join satirlari kaldirmadan ilerler diye biliyorum. Inner join sadece iki tablodan istenileni alir full outer join iki tablodan verileri alir ve eslesmeyen satirlari null gosterir left outer join full ile ayni olup sadece sag taraftaki tablonun soldakiyel eslesen kisimlarini alir. Eslesmeyenere null degeri koyar Birde cross join var ki hepsini hepsiyle eslestiriyor. OUTER JOIN yerine inner join kullanabilir misin bir bak. Ayrica alt sorgu yerine funksiyon veya stored procedure yazabirlisin. Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver!!! // Hayatin herkes icin bir bavulu vardir!!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin

fonsiyonun ne getirecegini bilmiyorum ama su sekil cagirabilirsin select dbo. fonksiyonun bunu cagirinca donen sonucu gorursun... Ayrica dedigim gibi Indexleme olayina bakarsan performansin artar. DB yi yormamak adina da bir yazilim dili kullaniyorsan her seyi SQL serverdan beklememek gerek. Kolay gelsin Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

indexleme yapılıp yapılmadıgını nasıl kontrol edebılırım birde bu sekılde yazınca foksıyounu bulamıyo acaba atladıgım bırseymı var hocam bu konularla ilgili videolar vs izlersen daha faydali olur. Hem daha iyi grenmis olursun ve ilerde sorun yasamazsin. Iki dakikayla anlatilacak seyler yok. Iyi ve performansli bir veritabani hazirlamak icin veritabani uzmanlari var ve cidden cok buyuk isler bunlar. Ben ileri seviye veritabani dersleri aldim ancak bilgim yine de cok kisitli, bu da baska bir derya deniz misali. O yüzden veritabani performansi ile ilgili videolar üzerinden gidersen senin acindan daha iyi olur. Ben senin tablo yapilarini vs bilmedigim icin su kodu al bu performanslidir diyemiyorum. Ancak merak ediyorsan Sql plan query cost diye aratirsan, sorgularin getirecegi yükleri bulabilirsin ve yeniden yazarak düzeltebilirsin. ama dedigim gibi benim bunu burada iki dakika da anlatmam mümkün degil. Bunla ilgili kitaplar mevcut. kolay gelsin Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

profil resmini begenmedim :) sorgunun uzun sürmesinin muhtemel nedeni yaptigin gruplama.. bu yazilim tarafinda da yapabilirsin. Ayrica iki konu hakkinda arastirma yaparsan bir cok sey ogrenebilirsin. Database Normalization ve Database Index. Maalesef bu konular gzden kaciliyor. Oysa cok onemli konular.. Ikinci tavsiyem, kodunu yavas yavas kirp ve performanslarini lc, boylece yük getiren kismi tam olarak bulursun ve ona gre de sorgunu tekrar yazarsin hocam profıl ruh halımı yansıtyor test ettiğimde 47 sn zaten %60 dan fazlasını ıkı alt sorgum harcıyor. şimdi fonksıyon olusturdum ama kullanmayı bulamadım SELECT (SELECT FROM dbo. sBarkodBull AS sBarkod,(SELECT TOP (1) sBarkod FROM dbo. tbStokBarkodu WHERE nStokID = dbo. tbStok. nStokID AND nFirmaID <> '0') AS sFirmaBarkod, dbo. tbStok. sAciklama, sFiy1. lFiyat AS TA, sFiy2. lFiyat AS ISF, sFiy3. lFiyat AS PSF, sFiy4. lFiyat AS TAI, dbo. tbStok. sKodu, dbo. tbKdv. nKdvOrani, dbo. tbStok. sModel, dbo. tbRenk. sRenkAdi, dbo. tbStok. sBeden, dbo. tbStok. nStokID, dbo. tbStokSinifi. sSinifKodu14 FROM dbo. tbStokSinifi RIGHT OUTER JOIN dbo. tbStok ON dbo. tbStokSinifi. nStokID = dbo. tbStok. nStokID RIGHT OUTER JOIN dbo. tbStokBarkodu AS tbStokBarkodu_1 ON dbo. tbStok. nStokID = tbStokBarkodu_1. nStokID LEFT OUTER JOIN dbo. tbStokFiyati AS sFiy1 ON dbo. tbStok. nStokID = sFiy1. nStokID AND sFiy1. sFiyatTipi = 'TA' LEFT OUTER JOIN dbo. tbRenk ON dbo. tbStok. sRenk = dbo. tbRenk. sRenk LEFT OUTER JOIN dbo. tbKdv ON dbo. tbStok. sKdvTipi = dbo. tbKdv. sKdvTipi LEFT OUTER JOIN dbo. tbStokFiyati AS sFiy2 ON dbo. tbStok. nStokID = sFiy2. nStokID AND sFiy2. sFiyatTipi = 'ISF' LEFT OUTER JOIN dbo. tbStokFiyati AS sFiy4 ON dbo. tbStok. nStokID = sFiy4. nStokID AND sFiy4. sFiyatTipi = 'TAI' LEFT OUTER JOIN dbo. tbStokFiyati AS sFiy3 ON dbo. tbStok. nStokID = sFiy3. nStokID AND sFiy3. sFiyatTipi = 'PSF' GROUP BY dbo. tbStok. sKodu, dbo. tbStok. nStokID, dbo. tbStok. sAciklama, dbo. tbStok. sBeden, dbo. tbRenk. sRenkAdi, sFiy1. sFiyatTipi, sFiy2. sFiyatTipi, sFiy3. sFiyatTipi, sFiy4. sFiyatTipi, sFiy1. lFiyat, sFiy2. lFiyat, sFiy3. lFiyat, sFiy4. lFiyat, dbo. tbKdv. nKdvOrani, dbo. tbStok. sModel, dbo. tbStokSinifi. sSinifKodu14 usttekı alt sorguyu değiştim ama çalıştıramadım

indexleme yapılıp yapılmadıgını nasıl kontrol edebılırım birde bu sekılde yazınca foksıyounu bulamıyo acaba atladıgım bırseymı var https://www.youtube.com/watch?v=rreKY6K3S_A Burada iyi bir şekilde anlatılıyor hocam. Ek olarak sanırım joinler ile sadece tek bir parametre çekiyorsun. Join yaparak tüm parametreleri ele alıyorsun. LeftJoin veya Right join'i yukarıda dhmm anlatmış zaten onlarla fazladan işleme sokuyorsun sorguyu. Indexleme olayı da veritabanını çok iyileştiriyor birebir şahit oldum. heleki LIKE Sorguları varsa... MhmdAlmz tarafından 23/Haz/17 15:47 tarihinde düzenlenmiştir Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!