@صدى قبالة
cls
قم بتعيين CLASSPATH=../api/jogre.jar
تعيين CLASSPATH=%CLASSPATH%;.
تعيين CLASSPATH=%CLASSPATH%;classes
اضبط CLASSPATH=%CLASSPATH%;lib/dom4j.jar
java org.jogre.server.JogreServer
إنشاء جدول
انسخ رمز الكود كما يلي:
إنشاء قاعدة بيانات con_test؛
استخدم con_test؛
إنشاء اختبار الجدول (id int not null,txt varchar (70),مفتاح أساسي (id),index (id));
حقلين فقط، معرف بالإضافة إلى الفهرس.
استخدم برنامج Java للتكرار عبر الجدول 100000 مرة لإدراج السجلات والمعرف (عدد الحلقات) والمحتوى (هذا السجل هو =xx)
InsertTestMysql.java
انسخ رمز الكود كما يلي:
import java.lang.*;
استيراد java.sql.*;
الفئة العامة InsertTestMysql{
الفراغ الثابت العام الرئيسي (String [] args) {
java.util.Date now_start = new java.util.Date();
long start_time=now_start.getTime();
كثافة العمليات = 100000؛
سلسلة شارع، معلومات؛
String db="org.gjt.mm.mysql.Driver";
مضيف السلسلة = "jdbc:mysql://192.168.1.35/test"؛
سلسلة المستخدم = "الجذر"؛
سلسلة passwd = "الجذر"؛
اتصال con=null;
يحاول{
Class.forName(db).newInstance();
}
قبض (استثناء ه) {
System.out.println("فشل تحميل برنامج التشغيل:"+db);
}
يحاول{
con=DriverManager.getConnection(host,user,passwd);
con.setAutoCommit(false);// قم بإيقاف تشغيل الإرسال التلقائي للمعاملة
لـ (int i=1;i<=st;i++){
معلومات = "هذا السجل هو =";
info = info.concat(java.lang.Integer.toString(i));
str = "أدخل في قيم الاختبار (المعرف، txt)(؟،؟)؛"؛
PreparedStatement pstmt = con.prepareStatement(str);
pstmt.setInt(1,i);
pstmt.setString(2,info);
pstmt.executeUpdate();
}
con.commit();// بعد تنفيذ البيان، أرسل هذه المعاملة
con.Close();
}
قبض (استثناء ه) {
System.out.println(e);
}
java.util.Date now_end = new java.util.Date();
long end_time=now_end.getTime();
long 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 عند إدخال هذا الرقم يخرج البرنامج وتكون اللغة الصينية طبيعية.
تظهر المطالبات التالية:
"استثناء في مؤشر الترابط "الرئيسي" java.lang.OutOfMemoryError: مساحة كومة Java"
قد يكون سبب "خطأ Java Heap Space" هو أن جهازي لا يحتوي على ذاكرة كافية. لكن هذا أمر طبيعي عند استخدام سلسلة 3.10 jdbc.
jdbc 3.0.16-ga 100000 سجل طبيعي والصيني طبيعي.
نجح jdbc 3.0.10 في تسجيل 100000 سجل، ولكن به أخطاء صينية.
باستخدام سلسلة 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 اقرأ النص الكامل في الصفحة التالية