@エコーオフ
CLS
set CLASSPATH=../api/jogre.jar
CLASSPATH=%CLASSPATH%; を設定します。
set CLASSPATH=%CLASSPATH%;クラス
set CLASSPATH=%CLASSPATH%;lib/dom4j.jar
java org.jogre.server.JogreServer
テーブルの作成
次のようにコードをコピーします。
データベースコンテストを作成します。
con_test を使用します。
create table test(id int not null,txt varchar (70),primary key (id),index (id));
ID とインデックスの 2 つのフィールドだけです。
Java プログラムを使用してテーブルを 100,000 回ループし、レコード、ID (ループ数)、コンテンツ (このレコードは =xx) を挿入します。
挿入TestMysql.java
次のようにコードをコピーします。
java.lang.* をインポートします。
インポート java.sql.*;
パブリック クラス InsertTestMysql{
public static void main(String [] args){
java.util.Date now_start = new java.util.Date();
長い start_time=now_start.getTime();
int st = 100000;
文字列 str,info;
文字列 db="org.gjt.mm.mysql.Driver";
文字列ホスト = "jdbc:mysql://192.168.1.35/test";
文字列ユーザー = "ルート";
文字列 passwd="root";
接続 con=null;
試す{
Class.forName(db).newInstance();
}
catch(例外 e){
System.out.println("ドライバーの読み込みに失敗しました:"+db);
}
試す{
con=DriverManager.getConnection(ホスト,ユーザー,パスワード);
con.setAutoCommit(false);//自動トランザクション送信をオフにする
for (int i=1;i<=st;i++){
info = "このレコードは =";
info = info.concat(java.lang.Integer.toString(i));
str = "テスト (id,txt) 値 (?,?) に挿入します;";
PreparedStatement pstmt = con.prepareStatement(str);
pstmt.setInt(1,i);
pstmt.setString(2,info);
pstmt.executeUpdate();
}
con.commit();//ステートメントの実行後、このトランザクションを送信します
con.close();
}
catch(例外 e) {
System.out.println(e);
}
java.util.Date now_end = new java.util.Date();
長い end_time=now_end.getTime();
長い使用時間=終了時間-開始時間;
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 ヒープ スペース エラー」は、マシンに十分なメモリがないことが原因である可能性があります。ただし、3.10 シリーズの jdbc を使用する場合は正常です。
jdbc 3.0.16-ga 100,000 レコードは正常で、中国語も正常です。
jdbc 3.0.10 は 100,000 レコードを正常に記録しましたが、中国語エラーが発生しました。
3.1 シリーズ jdbc を使用すると、プログラムの実行後、マシンの残りの物理メモリがすぐに 40xxKB になります。
jdbc3.1系は大量のメモリを必要とするため、私のマシンではメモリが不足しているのかもしれません。
明日、クラスメートの AMD64 512M RAM マシンでテストします。
jdbc 3.0.16-ga のみが正常です。テスト結果は次のとおりです。
次のようにコードをコピーします。
D:/Program Files/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次ページの全文を読む