@ปิดเสียงสะท้อน
cl
ตั้งค่า CLASSPATH=../api/jogre.jar
ตั้ง CLASSPATH=%คลาสพาธ%;.
ตั้งค่า CLASSPATH=%CLASSPATH%;คลาส
ตั้งค่า CLASSPATH=%CLASSPATH%;lib/dom4j.jar
java org.jogre.server.JogreServer
สร้างตาราง
คัดลอกรหัสรหัส ดังต่อไปนี้:
สร้างฐานข้อมูล con_test;
ใช้ con_test;
สร้างการทดสอบตาราง (id int ไม่ใช่ null, txt varchar (70), คีย์หลัก (id), ดัชนี (id));
เพียงสองช่อง id บวกดัชนี
ใช้โปรแกรมจาวาเพื่อวนซ้ำตาราง 100,000 ครั้งเพื่อแทรกบันทึก, id (จำนวนลูป) และเนื้อหา (บันทึกนี้คือ =xx)
แทรกTestMysql.java
คัดลอกรหัสรหัส ดังต่อไปนี้:
นำเข้า java.lang.*;
นำเข้า java.sql.*;
คลาสสาธารณะ InsertTestMysql{
โมฆะสาธารณะคงหลัก (สตริง [] args) {
java.util.Date now_start = ใหม่ java.util.Date();
start_time=now_start.getTime();
int st = 100,000;
สตริง str ข้อมูล;
สตริง db="org.gjt.mm.mysql.Driver";
โฮสต์สตริง = "jdbc:mysql://192.168.1.35/test";
ผู้ใช้สตริง = "root";
สตริง passwd="root";
การเชื่อมต่อ con=null;
พยายาม{
Class.forName(db).newInstance();
-
จับ (ข้อยกเว้น e) {
System.out.println("การโหลดไดรเวอร์ล้มเหลว:"+db);
-
พยายาม{
con=DriverManager.getConnection(โฮสต์,ผู้ใช้,passwd);
con.setAutoCommit(false);//ปิดการส่งธุรกรรมอัตโนมัติ
สำหรับ (int i=1;i<=st;i++){
info = "บันทึกนี้คือ =";
ข้อมูล = info.concat(java.lang.Integer.toString(i));
str = "ใส่เข้าไปในค่าทดสอบ (id,txt)(?,?);";
ReadyStatement pstmt = con.prepareStatement(str);
pstmt.setInt(1,i);
pstmt.setString(2,ข้อมูล);
pstmt.executeUpdate();
-
con.commit();//หลังจากดำเนินการคำสั่งแล้ว ให้ส่งธุรกรรมนี้
แย้ง.ปิด();
-
จับ (ข้อยกเว้นจ) {
System.out.println(e);
-
java.util.Date now_end = ใหม่ java.util.Date();
end_time ยาว=now_end.getTime();
use_time ยาว = end_time-start_time;
System.out.println("<<---การสร้างหน้านี้ใช้เวลา ["+use_time+"] มิลลิวินาที ("+((double)use_time)/1000+" วินาที)--->>");
System.out.println("/n<<---จำนวนบันทึกที่แทรกไว้ทั้งหมด "+st+"-->>");
-
-
ประสิทธิภาพการทำงานจะแตกต่างกันภายใต้เวอร์ชันต่างๆ ของ jdbc
jdbc 3.1.7, 12770,12778 เมื่อใส่ตัวเลขนี้ โปรแกรมจะออก และภาษาจีนใช้งานได้ปกติ
jdbc 3.1.12 12000 เมื่อใส่ตัวเลขนี้ โปรแกรมจะออกและภาษาจีนเป็นปกติ
ข้อความต่อไปนี้ปรากฏขึ้น:
"ข้อยกเว้นในเธรด "main" java.lang.OutOfMemoryError: พื้นที่ฮีป Java"
"ข้อผิดพลาด Java Heap Space" อาจเป็นเพราะเครื่องของฉันมีหน่วยความจำไม่เพียงพอ แต่เป็นเรื่องปกติเมื่อใช้ 3.10 series jdbc
jdbc 3.0.16-ga 100,000 บันทึกเป็นเรื่องปกติและภาษาจีนเป็นเรื่องปกติ
jdbc 3.0.10 บันทึกได้สำเร็จ 100,000 รายการ แต่มีข้อผิดพลาดภาษาจีน
เมื่อใช้ jdbc ซีรีส์ 3.1 หลังจากที่รันโปรแกรมแล้ว หน่วยความจำกายภาพที่เหลืออยู่ของเครื่องจะกลายเป็น 40xxKB อย่างรวดเร็ว
อาจเป็นเพราะซีรีส์ jdbc3.1 ต้องการหน่วยความจำขนาดใหญ่ และเครื่องของฉันมีหน่วยความจำไม่เพียงพอ
พรุ่งนี้ฉันจะทดสอบกับเครื่อง AMD64 512M RAM ของเพื่อนร่วมชั้น
jdbc 3.0.16-ga เป็นเพียงตัวเดียวที่เป็นเรื่องปกติ ผลการทดสอบคือ:
คัดลอกรหัสรหัส ดังต่อไปนี้:
D:/ไฟล์โปรแกรม/test/db_test>java InsertTestMysql
<<---การสร้างหน้านี้ใช้เวลา [98582] มิลลิวินาที (98.582 วินาที)--->>
<<---แทรกบันทึกทั้งหมด 100,000 รายการ-->>
ฉันทดสอบอีกครั้งเมื่อไม่กี่วันก่อน โดยใช้โอเพ่นซอร์ส jdts jdbc เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ ms-sql 2000 sp3 ส่วนอื่นๆ ก็เหมือนกับข้างบน และผลการทดสอบก็แย่มาก:
คัดลอกรหัสรหัส ดังต่อไปนี้:
D:/dev/java/src/ts/Ms-Sql>java InsertTestMssql
<<---การสร้างหน้านี้ใช้เวลา [1746681] มิลลิวินาที (1746.681 วินาที)--->>
<<---แทรกบันทึกทั้งหมด 100,000 รายการ-->>
1 23อ่านข้อความฉบับเต็มในหน้าถัดไป