database'te Performans problemlerim.
Re: database'te Performans problemlerim.
Merhaba.
Herkese çok teşekkür ederim ama Adnan bey özellikle size çok teşekkür ederim (biraz tuhaf bir cümle oldu). verdiğiniz tavsiyeler sayesinde yaptığım ayarlarla veri tabanımın performansı bugün gözle görülebilir oranda arttı. inşallah kuruma gittiğimde diğer sanal makinalardan biraz daha ram çalacağım (zaten diğer makinalar atıl durumda). Başka tavsiyeleriniz veya makaleleriniz olursa zevkle uygularım.
verdiğiniz linki inceledim.
zaten bütün tablolarımda primary integer bir index alanı vardır. ve onu referans alarak ilgili diğer tablolara bağlanırım. sorgu sıralamalarında dediklerinize dikkat edeceğim.
belki acemi sorusu gibi olacak ( veya okuyunca saç, baş yolacaksınız ama. ) ama ben extra hiç index oluşturmuyorum. çünkü yanlış hatırlamıyorsam okuduğum bir yazıda zaten fb'ün gerekli gördüğü indexleri otomatik oluşturduğunu okumuştum. o yüzden idx alanları hariç hiç indexim yok.
Herkese çok teşekkür ederim ama Adnan bey özellikle size çok teşekkür ederim (biraz tuhaf bir cümle oldu). verdiğiniz tavsiyeler sayesinde yaptığım ayarlarla veri tabanımın performansı bugün gözle görülebilir oranda arttı. inşallah kuruma gittiğimde diğer sanal makinalardan biraz daha ram çalacağım (zaten diğer makinalar atıl durumda). Başka tavsiyeleriniz veya makaleleriniz olursa zevkle uygularım.
verdiğiniz linki inceledim.
zaten bütün tablolarımda primary integer bir index alanı vardır. ve onu referans alarak ilgili diğer tablolara bağlanırım. sorgu sıralamalarında dediklerinize dikkat edeceğim.
belki acemi sorusu gibi olacak ( veya okuyunca saç, baş yolacaksınız ama. ) ama ben extra hiç index oluşturmuyorum. çünkü yanlış hatırlamıyorsam okuduğum bir yazıda zaten fb'ün gerekli gördüğü indexleri otomatik oluşturduğunu okumuştum. o yüzden idx alanları hariç hiç indexim yok.
Re: database'te Performans problemlerim.
Sonuçlar ne oldu ? 

Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Re: database'te Performans problemlerim.
Ben sisteme akşamları uzaktan eriştiğim için (mesai saatlerinde adsl bağlantıları 4-5 dk. da bir kopuyor. eski bilgi işlemcinin söylediği switch'in yoğunluğu kaldıramayıp resetlediği) benim net gördüğüm bir şey yok. ama konuştuğum kullanıcıların ortak söylediği kesinlikle sistemin hızlandığı. bazen 20 dk süren taslak rapor çıkışları oluyordu (5-6 numune her birinde 20-30 kalem parametre. diğer tablolardan bilgilerle karıştırılıp sıralanıyor. vs. vs. 10-20 sayfalık raporlar oluşuyordu.). süre ölçmemişler ama daha hızlı çıkış alabiliyorlarmış.
Re: database'te Performans problemlerim.
İndex kullanmıyor musunuz? Hayır hayır sakın öyle bir şey yapmayın. Kendi kendine index filan üretmez. Onu ürettiğini söylen M$ SQL Server. Ancak siz mutlaka Where koşuluna koyduğunuz şeyler için index oluşturun.
Örneğin
Bunun için uygulanabilecek index, şu şekilde olabilir.
FATURA_TIP, TARIH, FATURA_NO
veya 3 ayrı index
FATURA_TIP
TARIH
FATURA_NO
FB'nin en güzel yanı, index olarak böyle tekil olan Indexleri kendisi içeride çok güzel kullanabiliyor. Zaman zaman ayrı ayrı indexlenmiş alanlar, birleşik olarak indexlenmişlerden daha iyi sonuç verebiliyor.
Ama mutlaka index koyun. Raporlarınızda, JOIN'lerinizde kullandığınız WHERE Clauselara göre olabildiğince index koyun. Ancak çok fazla index de veri girişini yavaşlatır bunu da unutmayın. Yani, INSERT/UPDATE/DELETE İşlemlerinizde bu sefer zilyon tane indexi düzenlemesi gerekecek.
Bana örnek bir Query gönderin, ve Tablo desenini ve oradaki indexleri. Bir inceleyelim.
Örneğin
Kod: Tümünü seç
WHERE TARIH >= :PRM_TARIH
AND FATURA_TIP = :PRM_TIP
AND FATURA_NO = :PRM_NO
FATURA_TIP, TARIH, FATURA_NO
veya 3 ayrı index
FATURA_TIP
TARIH
FATURA_NO
FB'nin en güzel yanı, index olarak böyle tekil olan Indexleri kendisi içeride çok güzel kullanabiliyor. Zaman zaman ayrı ayrı indexlenmiş alanlar, birleşik olarak indexlenmişlerden daha iyi sonuç verebiliyor.
Ama mutlaka index koyun. Raporlarınızda, JOIN'lerinizde kullandığınız WHERE Clauselara göre olabildiğince index koyun. Ancak çok fazla index de veri girişini yavaşlatır bunu da unutmayın. Yani, INSERT/UPDATE/DELETE İşlemlerinizde bu sefer zilyon tane indexi düzenlemesi gerekecek.
Bana örnek bir Query gönderin, ve Tablo desenini ve oradaki indexleri. Bir inceleyelim.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Re: database'te Performans problemlerim.
Dün gece yatmadan önce yazmıştım.
Bak şimdi eğer sende Primary Key alanları dışında index yoksa vah haline o sistemin. Çünkü çektiğin her sorgu için her tabloya Table Scan yapıyordur. Yani Tüm tablodaki kayıtları tek tek incelemek zorunda kalıyordur.
Indexleri koyduğunda (hele ki doğru indexleri koyarsan) Alet uçacak uçacak, emin olabilirsin. Bir yazı daha yazdım bilmem okudun mu? Firebird Preformansları hakkında şüpheleri olanlara yanıt olması için.
Ayrıca bir rapordan bahsettin 20 Dakika diye... O nedir öyle. Çok merak ettim, 20 Dakika FB server çalışacak ve bir rapor çıkacak. Orada Milyarlık kayıtlar olması lazım. Var mı o kadar kaydın? Sanırım yoktur ve sistem durmadan table scan çekiyordur.
Bu konu 2 türlü ele alınmalı, bir kaybolan vakit, harcanan enerji. Bu israf demektir
Müslüman arkadaşlarıma söylüyorum, "Akan suda bile olsanız israf etmeyiniz" hadisini düşünün 
Kod yazarken bunu da aklınızın bir köşesinde bulundurun. Harcanan her fazlalık sorgu, yanlış yapılandırılmış sorgu israfa girer
Haydi Kolay Gelsin
Bu arada senin şu raporunla ilgili Query ve Tablo Desenleri ve varsa indexlerin varsa diğer şeyler, hele bir göster de o raporu saniyelere indirmeye çalışalım. (İnşallah indirebiliriz.)
Bak şimdi eğer sende Primary Key alanları dışında index yoksa vah haline o sistemin. Çünkü çektiğin her sorgu için her tabloya Table Scan yapıyordur. Yani Tüm tablodaki kayıtları tek tek incelemek zorunda kalıyordur.
Indexleri koyduğunda (hele ki doğru indexleri koyarsan) Alet uçacak uçacak, emin olabilirsin. Bir yazı daha yazdım bilmem okudun mu? Firebird Preformansları hakkında şüpheleri olanlara yanıt olması için.
Ayrıca bir rapordan bahsettin 20 Dakika diye... O nedir öyle. Çok merak ettim, 20 Dakika FB server çalışacak ve bir rapor çıkacak. Orada Milyarlık kayıtlar olması lazım. Var mı o kadar kaydın? Sanırım yoktur ve sistem durmadan table scan çekiyordur.
Bu konu 2 türlü ele alınmalı, bir kaybolan vakit, harcanan enerji. Bu israf demektir


Kod yazarken bunu da aklınızın bir köşesinde bulundurun. Harcanan her fazlalık sorgu, yanlış yapılandırılmış sorgu israfa girer

Haydi Kolay Gelsin
Bu arada senin şu raporunla ilgili Query ve Tablo Desenleri ve varsa indexlerin varsa diğer şeyler, hele bir göster de o raporu saniyelere indirmeye çalışalım. (İnşallah indirebiliriz.)
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Re: database'te Performans problemlerim.
Bu kadar uzun tabloları buraya yazayım mı, mail atayım mı ( incelemesi daha kolay olurdu herhalde ). emin olamadım ama.
Aşağıdaki sql 20 dk.lık raporumdaki sqllerden biri.
Tablolarım:
Testkalem. sadece IDX indexli.
TESTDATA tablosu IDX indexli
Laboratuvar. IDX indexli
CREATE TABLE LABORATUAR (
IDX INTEGER NOT NULL,
LAB_ADI CHAR(75),
TIP CHAR(1),
SUBID INTEGER,
SUBID2 INTEGER,
SAYAC CHAR(20)
);
Aşağıdaki sql 20 dk.lık raporumdaki sqllerden biri.
Kod: Tümünü seç
Select TESTKALEM.ACIKLAMA as TESTADI,(Select LAB_ADI from LABORATUAR where IDX=GRUPID) as GRUP,
(Select TANIM from TANIMLAR where ID=TESTKALEM.BIRIMID) as BIRIM,(Select TANIM from TANIMLAR2 where ID=TESTKALEM.METHODID) as METHOD,
(Select TANIM from TANIMLAR2 where ID=TESTKALEM.REFERANSID) as REFERANS,
(Select TLIMIT from TLIMIT where IDX=TESTKALEM.TLIMITID) as TLIMIT,
TESTDATA.SIRANO, TESTKALEM.TLIMITID, TESTDATA.V1, TESTDATA.V2, TESTDATA.V3, TESTDATA.V4, TESTDATA.V5, TESTDATA.V6,
TESTKALEM.SONUC, TESTKALEM.TLA, TESTKALEM.OLUMLU,
TESTKALEM.ANBASTARIH, TESTKALEM.ANBITTARIH,
TESTDATA.V4, TESTDATA.V5, TESTDATA.V6,
TESTKALEM.SINIR as G0,G1,G2,
TESTKALEM.SINIR as SINIR
from testkalem Inner Join TESTDATA on testkalem.testidx=Testdata.idx
where Refidx="+idx+" and (Select LAB_ADI from LABORATUAR where IDX=GRUPID)='"+grup+"' order by Testdata.sirano
Testkalem. sadece IDX indexli.
Kod: Tümünü seç
CREATE TABLE TESTKALEM (
IDX INTEGER NOT NULL,
REFIDX INTEGER,
TESTIDX INTEGER,
TESTADI CHAR(40),
TESTDEGER FLOAT,
TAMAMLANDI CHAR(2),
TARIH TIMESTAMP,
LABID INTEGER,
PERID INTEGER,
OLUMLU CHAR(1),
SONUC CHAR(55),
ONAYTARIH TIMESTAMP,
ONAYLAYAN INTEGER,
HIDX INTEGER,
TLA CHAR(1),
ES1 CHAR(55), ET1 TIMESTAMP,
ES2 CHAR(55), ET2 TIMESTAMP,
ES3 CHAR(55), ET3 TIMESTAMP,
SAYAC INTEGER,
HAVALETARIH TIMESTAMP,
ACIKLAMA BLOB SUB_TYPE 1 SEGMENT SIZE 80,
METHODID INTEGER,
REFERANSID INTEGER,
TLIMIT CHAR(15),
SAPMADEG DOUBLE PRECISION,
ALTDEGER DOUBLE PRECISION,
USTDEGER DOUBLE PRECISION,
SINIR CHAR(100),
TLIMITID INTEGER,
ANBASTARIH TIMESTAMP, ANBITTARIH TIMESTAMP,
BIRIMID INTEGER,
V1 CHAR(25), V2 CHAR(25), V3 CHAR(25), V4 CHAR(25), V5 CHAR(25), V6 CHAR(25), SART INTEGER);
Kod: Tümünü seç
CREATE TABLE TESTDATA (
IDX INTEGER NOT NULL,
KOD CHAR(15),
ALTDEGER DOUBLE PRECISION,
USTDEGER DOUBLE PRECISION,
UCRET FLOAT, UCRET2 FLOAT,
DIALOG BLOB SUB_TYPE 0 SEGMENT SIZE 80,
SINIRD BLOB SUB_TYPE 0 SEGMENT SIZE 80,
PUAN INTEGER,
LAB INTEGER,
TESTTUR CHAR(20),
DEGERLENDIRME BLOB SUB_TYPE 0 SEGMENT SIZE 80,
HAZSURE INTEGER,
GERMIKTAR INTEGER,
SIRANO INTEGER,
REFIDX INTEGER,
TLIMIT CHAR(15),
TLIMITD CHAR(15),
V1 CHAR(20), V2 CHAR(20), V3 CHAR(20), V4 CHAR(20), V5 CHAR(20), V6 CHAR(20),
TESTADIID INTEGER,
BIRIMID INTEGER,
METHODID INTEGER,
RTFTESTADI BLOB SUB_TYPE 0 SEGMENT SIZE 80,
GRUPID INTEGER,
EKUCRETLER CHAR(20),
A1 DOUBLE PRECISION,
A2 DOUBLE PRECISION,
U1 DOUBLE PRECISION,
U2 DOUBLE PRECISION,
G1 CHAR(70),
G2 CHAR(70),
SINIR CHAR(100),
REFERANSID INTEGER,
FIYGRUP INTEGER,
ALTGRUPID INTEGER,
SAPMAID INTEGER,
TLIMITID INTEGER,
CANCHANGE CHAR(1),
HAZGUN INTEGER, HAZSAAT INTEGER, HAZDAKIKA INTEGER,
HAZZAMANID INTEGER,
LABTIP CHAR(1),
BAKANLIKKOD CHAR(10),
AKREDITE CHAR(1),
DIGERTESTADI BLOB SUB_TYPE 1 SEGMENT SIZE 80,
PDGKOD CHAR(5));
CREATE TABLE LABORATUAR (
IDX INTEGER NOT NULL,
LAB_ADI CHAR(75),
TIP CHAR(1),
SUBID INTEGER,
SUBID2 INTEGER,
SAYAC CHAR(20)
);
Re: database'te Performans problemlerim.
Index nerede? Index yok !!!!!
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Re: database'te Performans problemlerim.
Birde şu Query'nin en son oluşmuş halini verir misin.
Select TESTKALEM.ACIKLAMA as TESTADI,(Select LAB_ADI from LABORATUAR where IDX=GRUPID) as GRUP,
(Select TANIM from TANIMLAR where ID=TESTKALEM.BIRIMID) as BIRIM,(Select TANIM from TANIMLAR2 where ID=TESTKALEM.METHODID) as METHOD,
(Select TANIM from TANIMLAR2 where ID=TESTKALEM.REFERANSID) as REFERANS,
(Select TLIMIT from TLIMIT where IDX=TESTKALEM.TLIMITID) as TLIMIT,
TESTDATA.SIRANO, TESTKALEM.TLIMITID, TESTDATA.V1, TESTDATA.V2, TESTDATA.V3, TESTDATA.V4, TESTDATA.V5, TESTDATA.V6,
TESTKALEM.SONUC, TESTKALEM.TLA, TESTKALEM.OLUMLU,
TESTKALEM.ANBASTARIH, TESTKALEM.ANBITTARIH,
TESTDATA.V4, TESTDATA.V5, TESTDATA.V6,
TESTKALEM.SINIR as G0,G1,G2,
TESTKALEM.SINIR as SINIR
from testkalem Inner Join TESTDATA on testkalem.testidx=Testdata.idx
where Refidx="+idx+" and (Select LAB_ADI from LABORATUAR where IDX=GRUPID)='"+grup+"' order by Testdata.sirano
Bunu Delphi'den almışsın sanırım. Bana en son Execute edilebilir halde olanını gönder. Ben onu alıp sana olması gerektiği şekle dönüştüreyim.
Sana da bir örnek teşkil etsin.
Select TESTKALEM.ACIKLAMA as TESTADI,(Select LAB_ADI from LABORATUAR where IDX=GRUPID) as GRUP,
(Select TANIM from TANIMLAR where ID=TESTKALEM.BIRIMID) as BIRIM,(Select TANIM from TANIMLAR2 where ID=TESTKALEM.METHODID) as METHOD,
(Select TANIM from TANIMLAR2 where ID=TESTKALEM.REFERANSID) as REFERANS,
(Select TLIMIT from TLIMIT where IDX=TESTKALEM.TLIMITID) as TLIMIT,
TESTDATA.SIRANO, TESTKALEM.TLIMITID, TESTDATA.V1, TESTDATA.V2, TESTDATA.V3, TESTDATA.V4, TESTDATA.V5, TESTDATA.V6,
TESTKALEM.SONUC, TESTKALEM.TLA, TESTKALEM.OLUMLU,
TESTKALEM.ANBASTARIH, TESTKALEM.ANBITTARIH,
TESTDATA.V4, TESTDATA.V5, TESTDATA.V6,
TESTKALEM.SINIR as G0,G1,G2,
TESTKALEM.SINIR as SINIR
from testkalem Inner Join TESTDATA on testkalem.testidx=Testdata.idx
where Refidx="+idx+" and (Select LAB_ADI from LABORATUAR where IDX=GRUPID)='"+grup+"' order by Testdata.sirano
Bunu Delphi'den almışsın sanırım. Bana en son Execute edilebilir halde olanını gönder. Ben onu alıp sana olması gerektiği şekle dönüştüreyim.
Sana da bir örnek teşkil etsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Re: database'te Performans problemlerim.
Ya da şöyle bir şey yapalım.
Örnek DATABAS'in varsa elinde Test için kullandığın ve üzerinde Veri Bulunan.
Sen onu RAR'layıp, dosya.tc'ye yükle ben oradan download edeyim ve bana göndereceğin Örnek (execute edilebilir durumdaki) Query'lerine bakıp bir kaç index atıp, Query'lerini düzelteyim.
Sen de o örneklerden yola çıkarak düzenlemelerini yaparsın. Çünkü Nested Query'ler kullanmışsın. Onlar yerine düzgün indexlenmiş JOIN'ler de kullanabilirsin.
Neyse dediğimi bir düşün.
Kolay Gelsin
Adnan
Örnek DATABAS'in varsa elinde Test için kullandığın ve üzerinde Veri Bulunan.
Sen onu RAR'layıp, dosya.tc'ye yükle ben oradan download edeyim ve bana göndereceğin Örnek (execute edilebilir durumdaki) Query'lerine bakıp bir kaç index atıp, Query'lerini düzelteyim.
Sen de o örneklerden yola çıkarak düzenlemelerini yaparsın. Çünkü Nested Query'ler kullanmışsın. Onlar yerine düzgün indexlenmiş JOIN'ler de kullanabilirsin.
Neyse dediğimi bir düşün.
Kolay Gelsin
Adnan
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Re: database'te Performans problemlerim.
Ya kusura bakmayın. size çok zahmet veriyorum.
örnek database linkini özel mesajınıza attım.
'Örnek (execute edilebilir durumdaki) Query'lerine ' bunu anlamadım. tüm sorguları yukarıdaki örnekteki gibi delphi içinden çalıştırıyorum.
örnek database linkini özel mesajınıza attım.
'Örnek (execute edilebilir durumdaki) Query'lerine ' bunu anlamadım. tüm sorguları yukarıdaki örnekteki gibi delphi içinden çalıştırıyorum.
Re: database'te Performans problemlerim.
Şöyle yap. Delphi'de tam Query1.Execute veya Query1.Open dediğin noktaya bir Trace Point at. Daha sonra Ctrl+F7 ile Query1.SQL.Text'inin içindeki değeri al kopyala. Onu gönder.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Re: database'te Performans problemlerim.
Kusura bakmayın. Bugün jetonlarım köşeli. şimdi anladım.
Select TESTKALEM.ACIKLAMA as TESTADI,(Select LAB_ADI from LABORATUAR where IDX=GRUPID) as GRUP,
(Select TANIM from TANIMLAR where ID=TESTKALEM.BIRIMID) as BIRIM,(Select TANIM from TANIMLAR2 where ID=TESTKALEM.METHODID) as METHOD,
(Select TANIM from TANIMLAR2 where ID=TESTKALEM.REFERANSID) as REFERANS,
(Select TLIMIT from TLIMIT where IDX=TESTKALEM.TLIMITID) as TLIMIT,
TESTDATA.SIRANO, TESTKALEM.TLIMITID, TESTDATA.V1, TESTDATA.V2, TESTDATA.V3, TESTDATA.V4, TESTDATA.V5, TESTDATA.V6,
TESTKALEM.SONUC, TESTKALEM.TLA, TESTKALEM.OLUMLU,
TESTKALEM.ANBASTARIH, TESTKALEM.ANBITTARIH,
TESTDATA.V4, TESTDATA.V5, TESTDATA.V6,
TESTKALEM.SINIR as G0,G1,G2,
TESTKALEM.SINIR as SINIR
from testkalem Inner Join TESTDATA on testkalem.testidx=Testdata.idx
where Refidx=56349 and (Select LAB_ADI from LABORATUAR where IDX=GRUPID)='SU KİMYASI' order by Testdata.sirano
Select TESTKALEM.ACIKLAMA as TESTADI,(Select LAB_ADI from LABORATUAR where IDX=GRUPID) as GRUP,
(Select TANIM from TANIMLAR where ID=TESTKALEM.BIRIMID) as BIRIM,(Select TANIM from TANIMLAR2 where ID=TESTKALEM.METHODID) as METHOD,
(Select TANIM from TANIMLAR2 where ID=TESTKALEM.REFERANSID) as REFERANS,
(Select TLIMIT from TLIMIT where IDX=TESTKALEM.TLIMITID) as TLIMIT,
TESTDATA.SIRANO, TESTKALEM.TLIMITID, TESTDATA.V1, TESTDATA.V2, TESTDATA.V3, TESTDATA.V4, TESTDATA.V5, TESTDATA.V6,
TESTKALEM.SONUC, TESTKALEM.TLA, TESTKALEM.OLUMLU,
TESTKALEM.ANBASTARIH, TESTKALEM.ANBITTARIH,
TESTDATA.V4, TESTDATA.V5, TESTDATA.V6,
TESTKALEM.SINIR as G0,G1,G2,
TESTKALEM.SINIR as SINIR
from testkalem Inner Join TESTDATA on testkalem.testidx=Testdata.idx
where Refidx=56349 and (Select LAB_ADI from LABORATUAR where IDX=GRUPID)='SU KİMYASI' order by Testdata.sirano
Re: database'te Performans problemlerim.
Selamlar,
Kısa incelemeden sonra sana hiçbir şey yapmadan sadece ve sadece 1 adet index eklettireceğim.
Bunu ekleyip bana gönderdiğin örneği test eder misin.
Senden yanıt bekliyorum. Daha sonra muhtemel Index konması gereken yerleri söyleyeceğim. Sadece tahmin olarak söyleyeceğim. Çünkü sorguların bütünün bilmediğim için tahmini söyleyebiliyorum. Sorguları görsem daha net söylerim.
Birde senin bana gönderdiğin SQL cümlesini biraz düzelttim.
Sonucu bekliyorum.
Kısa incelemeden sonra sana hiçbir şey yapmadan sadece ve sadece 1 adet index eklettireceğim.
Kod: Tümünü seç
CREATE ASC INDEX IX_TESTKALEM_01 ON TESTKALEM (REFIDX);
Senden yanıt bekliyorum. Daha sonra muhtemel Index konması gereken yerleri söyleyeceğim. Sadece tahmin olarak söyleyeceğim. Çünkü sorguların bütünün bilmediğim için tahmini söyleyebiliyorum. Sorguları görsem daha net söylerim.
Birde senin bana gönderdiğin SQL cümlesini biraz düzelttim.
Kod: Tümünü seç
SELECT TK.ACIKLAMA AS TESTADI, LB.LAB_ADI AS GRUP, T1.TANIM AS BIRIM, T2M.TANIM AS METHOD, T2R.TANIM AS REFERANS, TL.TLIMIT AS TLIMIT,
TD.SIRANO, TK.TLIMITID, TD.V1, TD.V2, TD.V3, TD.V4, TD.V5, TD.V6, TK.SONUC, TK.TLA, TK.OLUMLU, TK.ANBASTARIH, TK.ANBITTARIH,
TD.V4, TD.V5, TD.V6, TK.SINIR AS G0,G1,G2, TK.SINIR AS SINIR
FROM TESTKALEM TK
INNER JOIN TESTDATA TD ON TK.TESTIDX = TD.IDX
INNER JOIN LABORATUAR LB ON TD.GRUPID = LB.IDX AND LB.LAB_ADI = 'SU KİMYASI'
LEFT OUTER JOIN TANIMLAR T1 ON TK.BIRIMID = T1.ID
LEFT OUTER JOIN TANIMLAR2 T2M ON TK.METHODID = T2M.ID
LEFT OUTER JOIN TANIMLAR2 T2R ON TK.REFERANSID = T2R.ID
LEFT OUTER JOIN TLIMIT TL ON TK.TLIMITID = TL.IDX
WHERE TK.REFIDX = 56349
ORDER BY TD.SIRANO
Sonucu bekliyorum.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Re: database'te Performans problemlerim.
Sen deneme yaptın mı bilmiyorum ama benim yaptığım denemenin sonucu aşağıdaki gibi.
Senin Query'in ile denemeyi yaptım.
Index Olmadan Query Result 0,700 Saniyede geliyor,
Indexi Oluşturunca Query Result 0,003 Saniyede geliyor,
Yaklaşık 230 Kat kadar hızlı....

Senin Query'in ile denemeyi yaptım.
Index Olmadan Query Result 0,700 Saniyede geliyor,
Indexi Oluşturunca Query Result 0,003 Saniyede geliyor,
Yaklaşık 230 Kat kadar hızlı....


Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Re: database'te Performans problemlerim.
Adnan hocam ne yaptın kanatları takmadan öyle uçulur mu?
Ayrıca ORDER BY da dönen bilgiye göre epeyce kastırıyor, belirtmek isterim.



Ayrıca ORDER BY da dönen bilgiye göre epeyce kastırıyor, belirtmek isterim.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!