@eco apagado
cls
establecer CLASSPATH=../api/jogre.jar
establecer CLASSPATH=%CLASSPATH%;.
establecer CLASSPATH=%CLASSPATH%;clases
establecer CLASSPATH=%CLASSPATH%;lib/dom4j.jar
java org.jogre.server.JogreServer
Crear tabla
Copie el código de código de la siguiente manera:
crear base de datos con_test;
utilizar con_test;
crear prueba de tabla (id int no nulo, txt varchar (70), clave principal (id), índice (id));
Sólo dos campos, id más índice.
Utilice un programa java para recorrer la tabla 100.000 veces para insertar registros, id (número de bucles) y contenido (este registro es =xx)
InsertarTestMysql.java
Copie el código de código de la siguiente manera:
importar java.lang.*;
importar java.sql.*;
clase pública InsertTestMysql{
principal vacío estático público (cadena [] argumentos) {
java.util.Date now_start = nuevo java.util.Date();
long start_time=now_start.getTime();
int st = 100000;
Cadena cadena, información;
Cadena db="org.gjt.mm.mysql.Driver";
Cadena host="jdbc:mysql://192.168.1.35/test";
Usuario de cadena = "raíz";
Cadena passwd="raíz";
Conexión con = nulo;
intentar{
Class.forName(db).newInstance();
}
captura (Excepción e) {
System.out.println("Error al cargar el controlador:"+db);
}
intentar{
con=DriverManager.getConnection(host,usuario,contraseña);
con.setAutoCommit(false);//Desactivar el envío automático de transacciones
para (int i=1;i<=st;i++){
info = "Este registro es el =";
información = info.concat(java.lang.Integer.toString(i));
str = "insertar en valores de prueba (id,txt) (?,?);";
PreparedStatement pstmt = con.prepareStatement(str);
pstmt.setInt(1,i);
pstmt.setString(2,información);
pstmt.executeUpdate();
}
con.commit();//Después de ejecutar la declaración, envíe esta transacción
con.cerrar();
}
captura (Excepción e) {
System.out.println(e);
}
java.util.Date now_end = nuevo java.util.Date();
largo end_time=now_end.getTime();
long use_time=hora_final-hora_inicio;
System.out.println("<<---La generación de esta página tomó ["+use_time+"] milisegundos ("+((double)use_time)/1000+" segundos)--->>");
System.out.println("/n<<---Un total de registros insertados "+st+"-->>");
}
}
El rendimiento es diferente en diferentes versiones de jdbc.
jdbc 3.1.7, 12770,12778 Cuando se inserta este número, el programa se cierra y el idioma chino es normal.
jdbc 3.1.12 12000 Cuando se inserta este número, el programa se cierra y el chino es normal.
Aparecen las siguientes indicaciones:
"Excepción en el hilo" principal "java.lang.OutOfMemoryError: espacio de almacenamiento dinámico de Java"
El "Error de espacio en el montón de Java" puede deberse a que mi máquina no tiene suficiente memoria. Pero es normal cuando se utiliza jdbc de la serie 3.10.
jdbc 3.0.16-ga 100.000 registros son normales y el chino es normal.
jdbc 3.0.10 registró con éxito 100.000 registros, pero tuvo errores en chino.
Con jdbc de la serie 3.1, después de ejecutar el programa, la memoria física restante de la máquina se convierte rápidamente en 40xxKB.
Esto puede deberse a que la serie jdbc3.1 requiere mucha memoria y mi máquina no tiene memoria suficiente.
Lo probaré mañana en la máquina RAM AMD64 512M de mi compañero de clase.
jdbc 3.0.16-ga es el único que es normal. Los resultados de la prueba son:
Copie el código de código de la siguiente manera:
D:/Archivos de programa/test/db_test>java InsertTestMysql
<<---La generación de esta página toma [98582] milisegundos (98.582 segundos)--->>
<<---Se insertaron un total de 100.000 registros-->>
Lo probé nuevamente hace unos días, usando jdts jdbc de código abierto para conectarme al servidor ms-sql 2000 sp3. Otros son los mismos que los anteriores, y los resultados de la prueba son terribles:
Copie el código de código de la siguiente manera:
D:/dev/java/src/ts/Ms-Sql>java InsertTestMssql
<<---La generación de esta página tomó [1746681] milisegundos (1746.681 segundos)--->>
<<---Se insertaron un total de 100.000 registros-->>
1 23Lea el texto completo en la página siguiente