@eco desligado
cls
definir CLASSPATH=../api/jogre.jar
defina CLASSPATH=%CLASSPATH%;.
definir CLASSPATH=%CLASSPATH%;classes
definir CLASSPATH=%CLASSPATH%;lib/dom4j.jar
javaorg.jogre.server.JogreServer
Criar tabela
Copie o código do código da seguinte forma:
criar banco de dados con_test;
usar con_test;
criar teste de tabela (id int não nulo, txt varchar (70), chave primária (id), índice (id));
Apenas dois campos, id mais índice.
Use um programa java para percorrer a tabela 100.000 vezes para inserir registros, id (número de loops) e conteúdo (este registro é =xx)
InsertTestMysql.java
Copie o código do código da seguinte forma:
importar java.lang.*;
importar java.sql.*;
classe pública InsertTestMysql{
public static void main(String [] args){
java.util.Date agora_start = new java.util.Date();
longo start_time=now_start.getTime();
int st = 100000;
String str,informação;
String db="org.gjt.mm.mysql.Driver";
String host="jdbc:mysql://192.168.1.35/test";
String usuário="raiz";
String passwd="raiz";
Conexão con=null;
tentar{
Class.forName(db).newInstance();
}
catch(Exceção e){
System.out.println("Falha ao carregar o driver:"+db);
}
tentar{
con=DriverManager.getConnection(host,usuário,senha);
con.setAutoCommit(false); //Desativa o envio automático de transações
for (int i=1;i<=st;i++){
info = "Este registro é o =";
informações = info.concat(java.lang.Integer.toString(i));
str = "inserir em valores de teste (id,txt)(?,?);";
PreparedStatement pstmt = con.prepareStatement(str);
pstmt.setInt(1,i);
pstmt.setString(2,informações);
pstmt.executeUpdate();
}
con.commit();//Depois que a instrução for executada, envie esta transação
con.close();
}
catch(Exceção e) {
System.out.println(e);
}
java.util.Date now_end = new java.util.Date();
longo end_time=now_end.getTime();
longo use_time=end_time-start_time;
System.out.println("<<---A geração desta página levou ["+use_time+"] milissegundos ("+((double)use_time)/1000+" segundos)--->>");
System.out.println("/n<<---Um total de registros inseridos "+st+"-->>");
}
}
O desempenho é diferente em diferentes versões do jdbc.
jdbc 3.1.7, 12770,12778 Quando esse número é inserido, o programa é encerrado e o idioma chinês fica normal.
jdbc 3.1.12 12000 Quando esse número é inserido, o programa é encerrado e o chinês fica normal.
Os seguintes prompts aparecem:
"Exceção no thread" principal "java.lang.OutOfMemoryError: espaço de heap Java"
"Java Heap Space Error" pode ser porque minha máquina não tem memória suficiente. Mas é normal ao usar o jdbc da série 3.10.
jdbc 3.0.16-ga 100.000 registros são normais e o chinês é normal.
O jdbc 3.0.10 registrou com sucesso 100.000 registros, mas apresentou erros em chinês.
Usando o jdbc da série 3.1, após a execução do programa, a memória física restante da máquina rapidamente se torna 40xxKB.
Isso pode ocorrer porque a série jdbc3.1 requer muita memória e minha máquina não tem memória suficiente.
Vou testá-lo na máquina AMD64 512M RAM do meu colega amanhã.
jdbc 3.0.16-ga é o único normal. Os resultados do teste são:
Copie o código do código da seguinte forma:
D:/Arquivos de Programas/test/db_test>java InsertTestMysql
<<---A geração desta página leva [98582] milissegundos (98,582 segundos)--->>
<<---Um total de 100.000 registros foram inseridos-->>
Testei novamente há alguns dias, usando o jdts jdbc de código aberto para conectar-se ao ms-sql server 2000 sp3. Outros são iguais aos anteriores e os resultados do teste são terríveis:
Copie o código do código da seguinte forma:
D:/dev/java/src/ts/Ms-Sql>java InsertTestMssql
<<---A geração desta página levou [1746681] milissegundos (1746,681 segundos)--->>
<<---Um total de 100.000 registros foram inseridos-->>
1 23Leia o texto completo na próxima página