PDA

Tam Sürümünü Görmek İçin : JDBC hakkında


mkarabulut
29/10/2003, 12:23
Merhaba..

Yaklaşık 30 alanı ve 200 kaydı olan bir tablodan kayıtları çekip listelerken işlem gerçekten çok yavaş gerçekleşiyor...

Yaptığım sorgu "SELECT * FROM tablo"
Sadece bi kaç alan seçtiğim zaman hız kabul edilebilir bir düzeyde ama tüm alanları almak istediğimde olaylar kötüye gidiyor..

JDBC performansı açısından önerileriniz olabilir mi ?


muharrem_tac
29/10/2003, 21:57
Veritabanı MySQL mi ?

darky_dark
31/10/2003, 07:55
cok hangi veritabanini kullaniyorsun?
tablonun yapiisini yazabilir misin? primary keyler, indexler vs..
hangi jdbc driver ini kullaniyorsun?
jvm versiyonu nedir?
kodundan 1 parca yaza bilir misin?

yukaridaki gibi detaylari bilmeden tek soyleyebilecegim bunun kullanici hatasi oldugu yonunde..

sevgi, saygi..

_DD_

mkarabulut
31/10/2003, 09:47
Kullandığım veritabanı access
Sürücü ise sun'ın default sunduğu jdbc-odbc driver
Jvm versiyonu 1.4.2

Buyrun koddan da bi parça
---------------------------------------------------------------
String stBuf = "";
System.out.println("Sorgu: "+ SqlEx + "\t" + SqlEx.substring(0,6).toUpperCase());
ResultSet result = st.executeQuery (SqlEx);
ResultSetMetaData meta = result.getMetaData();
for (int i=1; i<= meta.getColumnCount(); i++)
stBuf+= meta.getColumnLabel(i) + "\t";
stBuf += "\n";
for (int i=1; i<= meta.getColumnCount(); i++) {
for (int k=1;k<= meta.getColumnLabel(i).length(); k++) stBuf+="--";
stBuf+="\t";
}
stBuf += "\n";

while (result.next()){
for (int i=1; i<= meta.getColumnCount(); i++){
stBuf += result.getString(meta.getColumnLabel(i)) + "\t";
}
stBuf += "\n";
}
textArea.setText(stBuf);

mkarabulut
31/10/2003, 09:48
Bağlantı için kullandığım kod ise
----------------------------------------------------------
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection ("jdbc:odbc:veri");
} catch(Exception ex) {
sonucText.setText("Hata : Veritabanına bağlanılamadı !\n Desc : " + ex.getMessage());
}

darky_dark
31/10/2003, 13:45
oncelikle kod eklerken code taglerini kullanman cok iyi olur..

yazdigin kodda 1 problem yok, ayni kodu accessin northwind sample db si ile calistirdim, sureyi olctum, baglantiyi acmasi ortalama 300 ms, islemleri bitirmesi ise yaklasik 800 ms suruyor..

sevgi, saygi..


_DD_

mkarabulut
31/10/2003, 14:28
code etiketlerini ekleyecektim ama doğrudan benim koddan alınca girinti-çıkıntılar burada biraz problem oldu o yüzden böyle yapmak durumunda oldum..

Neyse cevap için teşekkürler..

@darky_dark : Bu arada müsaitsen forum yerine ara sıra bazı soruları doğrudan sormam için bir mail adresi verebilirmisin ?

darky_dark
01/11/2003, 18:44
darky_dark@hotmail.com
firsatim oldugu olcude yardim etmeye calisirim..

sevgi, saygi..

_DD_