1read 100read
2012年5月データベース49: 【PureJava】 Derby 1 【OpenSource】 (129)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
MySQL vs PostgreSQL Part2 (675)
成績管理システムを作ろう!2【社会貢献】 (352)
まじめにデータベースについて語るスレ (134)
【論理ファイル】AS400DB【キューリー】 (239)
数十メガバイトのファイルをどんどん格納できるDB (202)
データベース系の仕事をしたくて探しているのですが (157)
【PureJava】 Derby 1 【OpenSource】
1 :05/10/09 〜 最終レス :11/12/27 このスレはApacheSoftwareFoundation(以下ASFと略す)傘下で開発が進められているPureJavaRDBのDerbyについて語るスレです。 Derbyって何? Javaで書かれたRDBMSです。 Derbyで何ができるの? Javaの実行環境があれば、開発したアプリケーションにRDBを組み込むことができます。 「アプリケーションの出力結果をテキストに吐き出して、必要があればそこから検索して...」 などの作業を、開発を簡単に、実行時に素早く行うことができます。 でも、DBって設定とかいろいろ難しいんでしょ? Derbyは簡単です。「簡単に使える(Easy to Use)」がDerby開発目的の一つです。 Derbyは誰が開発しているの? 現在はASF傘下でOpenSourceプロジェクトとして開発が進められていますが、 それ以前はIBMがCloudScapeという名称で開発を進めていました。 詳細は2以降のリンク先を参照してください。
2 : 関連リンク The Apache Derby Project ttp://db.apache.org/derby/ IBM Cloudscape インフォメーション・センター ttp://publib.boulder.ibm.com/infocenter/cldscp10/index.jsp Publications home (CloudscapeマニュアルPDF版30冊) (マニュアル検索をクリック、キーワードCloudscape、表示結果数100で検索) ttp://www.elink.ibmlink.ibm.com/puc/jsp/index.jsp?country=J1&language=JPN Cloudscapeと3つの「C」 ttp://www-6.ibm.com/jp/developerworks/ysl/j_ysl-cloud.html IBM Cloudscape、Apache Derbyについて ttp://timescape.jugem.jp/ Unofficial DB2 BLOG ttp://db2.jugem.cc/ IBM DB2 スレ (関連スレ) http://pc8.2ch.net/test/read.cgi/db/1057170768/
3 : Derbyの最新バージョンは10.1.1.0、対応するCloudscapeのバージョンは10.1です。 Derby 10.1.1.0公開 - Apache Incubatorから卒業 http://pcweb.mycom.co.jp/news/2005/08/05/011.html Cloudscape 10.1 http://db2.jugem.cc/?eid=526 マニュアル30冊と書きましたが、最新版用マニュアルは7冊です。 Publications home (CloudscapeマニュアルPDF版) (マニュアル検索をクリック、キーワードCloudscape V10.1で検索) http://www.elink.ibmlink.ibm.com/puc/jsp/index.jsp?country=J1&language=JPN IBM Cloudscape 概説およびインストール V10.1 http://publibfp.boulder.ibm.com/epubs/pdf/d8863601.pdf IBM Cloudscape 開発者ガイド V10.1 http://publibfp.boulder.ibm.com/epubs/pdf/d8863611.pdf IBM Cloudscape リファレンス・マニュアル V10.1 http://publibfp.boulder.ibm.com/epubs/pdf/d8863621.pdf IBM Cloudscape チューニング・ガイド V10.1 http://publibfp.boulder.ibm.com/epubs/pdf/d8863631.pdf IBM Cloudscape ツールおよびユーティリティー・ガイド V10.1 http://publibfp.boulder.ibm.com/epubs/pdf/d8863641.pdf IBM Cloudscape サーバーおよび管理ガイド V10.1 http://publibfp.boulder.ibm.com/epubs/pdf/d8863651.pdf IBM Cloudscape V10.1 リリース・ノート http://publibfp.boulder.ibm.com/epubs/pdf/d8863661.pdf
4 : Derbyに含まれているdemoの実行方法 (Windowsを対象とします。UNIXの場合は適宜読みかえてください。db-derby-10.x.x-bin\demo\readme.html より抜粋) 1.コマンドラインを起動します。 2.ダウンロードしたdb-derby-10.x.x-bin.zipを解凍してできたディレクトリをDERBY_INSTALLとして環境変数に設定します。 例:解凍してできたフォルダが「C\:db-derby-10.x.x-bin」の場合、コマンドラインに 「set DERBY_INSTALL=C\:db-derby-10.x.x-bin」として実行します。 3.コマンドラインに「cd %DERBY_INSTALL%\demo\simple」と入力し、demo用アプリケーションの存在するフォルダへ移動します。 4.コマンドラインに「set CLASSPATH=.;%DERBY_INSTALL%\lib\derby.jar」と入力し、クラスパスを設定します。 5.コマンドラインに「java org.apache.derby.tools.sysinfo -cp embedded SimpleApp.class」と入力し実行します。 上記2〜4の設定が正しく行われていれば FOUND IN classpath: Derby embedded engine library (derby.jar) user-specified class (SimpleApp) SUCCESS: All Derby-Related classes for embedded environment found in classpath. と出力されます。 6.5で正しく環境設定が行われていることを確認したら、コマンドラインに「java SimpleApp」と入力し実行します。 プログラムが稼働していることを確認してください。
5 : >1 激しく乙! ところでリリースノートのURLを間違えていましたorz リリースノートはPDFではなく、HTMLです。 IBM Cloudscape V10.1 リリース・ノート http://publibfp.boulder.ibm.com/epubs/html/d8864661.html
6 : >>1 おつかれ derby(とcloudscape)って使っている人まだ少ないのかねー。 日本語の情報が全然ないもんね。 こんな良いDBがタダで使えるなんで、他に無いと思うんだけどね。 PostgreSQLとかもいいんだけど、derbyの設定いらず、管理いらずの よさって他になかなか無いと思う。 なにげにMacでも使えるし。
7 : 今月と来月のJavaWorld(2005/11,12)でDelbyの解説をやってるね。 11月号はインストールと簡単な使い方のみでつまんなかったけど。
8 : HSQLDBとどっちが速い?特に起動。
9 : 起動やちょっと使う程度だと、HSQLDBの方が速いかな。 HSQLDBはデータ量が増えると遅くなるから、derbyにはそのあたりの耐久性を期待。
10 : そうそう。HSQLDBは、更新を行うテーブルの場合、データのコンパクションを行わないと とてもとても重くなる。 derbyに期待。
11 : HSQLDBって何件くらいで重くなるの? Derbyで1万件位あるデータの検索は結構速かったよ
12 : なんかこっそり10.1.2.1が出てますね。 ttp://db.apache.org/derby/releases/release-10.1.2.1.cgi
13 : これ使い始めたんだけど、良いね。なんかお手軽な割にしっかり動いてるし。
14 : HSQLと比べてどうかということだね。 Apacheライセンスってことでライセンスを統一しやすいこっちのが好きだけど
15 : たぶんHSQLDBのほうが速いだろうと予測するけども、Derbyは ちゃんと排他処理とかやってそうな感じだな。
16 : ストアドプロシージャやPreparedStatementが使えるなら 一般用途では性能なんてほとんど「気のせい」の世界じゃない?
17 : HSQLとの対比がわかる表があったら嬉しい。 HSQLはファイルモードで複数ファイル作るから、こっちが1ファイルならちょっと考えちゃう。
18 : >>17 使えばすぐわかるが、複数ファイルだよ
19 : ・・・やばい、Derby遅い。 スキーマ create table test(id integer not null, name varchar(20)) forName HSQL org.hsqldb.jdbcDriver DERBY org.apache.derby.jdbc.EmbeddedDriver connectionString HSQL jdbc:hsqldb:file:db/hsql/hsqldata DERBY jdbc:derby:db/derby/derbydata;create=true 1000件(左transaction, 右autoCommit) insert into test values(" + i + ",'string" + i + "') HSQL 0.172秒, 0.172秒 DERBY 6.203秒, 7.172秒 prepareStatement and transaction(左1,000件, 右100,000件) insert into test values(?,?) HSQL 0.094秒, 1.235秒 DERBY 0.906秒, 14.547秒 マシンスペック Pentium4 1GHz, メインメモリ768MB
20 : キャッシュなしで36倍、キャッシュありで10倍遅い。 何か起動も2秒くらいかかってるし、チューンできる場所があるのかな?
21 : 追加や更新をたくさん実行した直後のconnectが特に遅いんだよね。 その後のconnectは速いのに…なんなんだろ?
22 : >>21 エンジンですから暖気が必要なのです。
23 : ゲームに組み込むのにDerbyはどうなんだろ・・・ HSQLなら速度もネイティブと戦える速度みたいだけど Derbyの遅さはちょっと気になるところ。 BLOGの速さを調査してみるか。
24 : BLOGじゃねーBLOBだったw
25 : なんかログのクリアとかしてる気がするんだよなぁ<再接続時 サーバモードで動かしたときのパフォーマンスも調べてみないとダメかなぁ
26 : ログは正直イラネです。接続文字列のときに欲しけりゃ指定みたいにして、デフォはなくして欲しい。
27 : 気になって調べてみたんだが、ちゃんとシャットダウンしないと 次回起動時にリカバリー処理が走るらしい。 DriverManager.getConnection("jdbc:derby:DBNAME;shutdown=true"); で、このgetConnectionは必ずSQLExceptionを吐く。 ijとかのツールは自動的にshutdownしてくれるから気が付かなかったっぽいけど、 まぁちゃんとマニュアルくらい嫁という話だったよ orzスマン
28 : Sunが次期Sun Studioにバンドルするとかなんとか。
29 : SunのJ2EE SDKにはPointBaseの前Cloudscapeがついてたしな
30 : >>16 PreparedStatementよりもストアドプロシージャのほうが 速いと思ってたけど、さほぼ変わりない? というか最近じゃHibernateのようなO-Rマッピングツールばかりに頼って ストアドプロシージャのこと考えないケースが多いのかな? というか、このDerbyがHibernateなどのO-Rマッピングツールに 対応しているのか気になる。もし対応していたら使ってみようかなという気分になる。 Apache系だから Jakarta Torqueにしか対応していないだったりして。 それより、PostgreSQL並みの機能を搭載しているのかも気になる。 性能は、やっぱりPureJavaでないDBよりも遅くなるのかな。
31 : >>27 DataSourceは使ってないんですか?
32 : >>27 コネクションを切るときに Conneciton con = null; try{ con = DriverManager.getConnection("〜〜〜〜〜"); //(ry } catch ( /* (ry */ ) { //(ry } finally { try{ if(con != null || con.isClosed()){ con.close(); } } catch( /* (ry*/ ){ //(ry } } でclose()しておかないとエラーになるという話とは違う? このcatchが多いclose()コードを見ていると、いい加減に、APache Jakarta Commons DBUtils使うべきかな・・・ それともHibernate使うべきかな・・・・
33 : O/Rマッピングのツール類って、JDBCドライバさえあればどんなDBでも マッピングできるでしょ。ApacheだからTorqueにしか対応してないなんて ことはないでそ。
34 : >>32 > でclose()しておかないとエラーになるという話とは違う? まったく別。shutdownしないっていうことは、 サーバ型DBのプロセスをいきなりくらいに相当するみたいよ。
35 : O/Rマッピングは標準SQLが基本で、方言はそれようのクラスを指定するんじゃねーの?
36 : 次スレが早くもたちました。 Apache Derby http://pc8.2ch.net/test/read.cgi/db/1139638967/
37 : ファイルモードで動かすとやたら重く感じるけど Postgresより速いといわれてるってことはサーバモードは優秀なんだろうな
38 : >>37 なんでそうなるんだよ サーバモードはファイルモードの上に一層かぶさってるだけだから Postgresがむちゃくちゃ遅くない限りそれはないだろ >>27 をやってなくて次のgetConnectionに時間がかかる、という話ならわかるが。
39 : Derbyっていう名前がちょっとモニョモニョなんだよなあ CLOUDSCAPEの方が格好よかった
40 : これって外部結合できんの?
41 : できるよ
42 : Derby=Postgres HSQL=MyS
43 : Derby=Postgres HSQL=MySQL という位置づけになっていくんだろうか と囲うとしたら送信しちゃったじゃないか!
44 : H2は?
45 : あだち充
46 : >>45 くだらねーーーー しんでくれ
47 : これってサブクエリ使えるの?
48 : >>47 とうぜんだ
49 : >>48 じゃあ何が出来ないの? 外部結合もサブクエリも出来るのなら、出来ないことないじゃん。
50 : >>49 できないことがなきゃだめなの?(´・ω・`)
51 : よくわからん流れだなw
52 : もし全能の神が存在するとしたら、そのような神は常に邪悪であり信じてはいけない。
53 : >>49 Derbyは、Pure Javaで書かれたデータベースの中では 飛びぬけて高機能だよ。 外部結合、view、制約、副照会、トリガー、ストアドプロシージャ など、ほしいと思う機能のほとんどが使える。
54 : ちょっと遅いけどね (゚∀゚)
55 : つまり>>43 のような位置づけになるのか? 欲張りたければDerbyを使えと? それでよろし?
56 : >> 55 何か機能に問題があるわけじゃないんだから、 とりあえず自分で一度使ってみれば? 使うの全然難しくないから。
57 : ストアドプロシージャがあるのか してその性能は如何に?
58 : でるびー? でるばい?
59 : ×でるびー ×でるばい ○ダービー
60 : あいだとって デービーでいいよ
61 : Mustangスレによると、このApache Derbyが次世代Java Java SE 6 Mustangに取り込まれるらしい。 これにはびっくりした。
62 : 組み込まれるのは事実だが、JDKに組み込まれることに注意。 JREじゃないからね。
63 : VMに組み込まれrんじゃないのか・・・残念
64 : >>62-63 VMに組み込まれると一体どんなメリットがあるんだ? native実装による高速化にでも期待しているのか?
65 : というかVMに組み込むってどういうことよ。 それってDellのPC(ハードウェア)にデータベース組み込むと言ってるのと同じでは。
66 : というか、 WindowsにAccessが標準搭載、 みたいな感じがする。 まあJDK限定じゃ、開発用のおためしDBに 使ってねって感じなんですかね。
67 : ですねえ。思い切ってJREに付属しちゃえば普及は加速しそうだし、 「JRE 6に付属したJava DBの使い方」みたいな記事も大量に書かれそう なんだけど。 DBベンダーからの反発がきつくなりそうだから止めたのかな。
68 : >>65 だからnative実装で高速化じゃないか? それでは、100%PureJavaというApache Derbyの特徴を 妨害することになってしまうが。 今のところ、そのまま標準APIの一部として組み込んだほうがマシだな。 ネイティブで実装すると、各OS毎に実装するコストがかかりそうだ。
69 : なぜデータベース「エンジン」という「環境」の話をしているのに「標準APIの一部として 組み込め」という話になるのか。 APIはちゃんとJPAで標準化されたでしょ。
70 : >>69 よくみろ、>>65 に対するレスだろう。 あの時点では>>65 はデータベースエンジンの 話はしていないので ああいう話になっても仕方がないだろう。
71 : >>61-62 JDK内のファイルであっても再配布可なものもあるし、実際の ライセンス見ないとな。
72 : >>68 RDBMSをネイティブ実装して速くなるか? ほとんどのケースで、かえって遅くなると思われ。 JNIを呼ぶコストはでかい。 そして動的最適化はRDBMSみたいなものに向いてる。 Derbyでクラスタリングができるようになったら、 RDBMSベンダは真っ青だろうな。
73 : >>72 それはあーる!別にJava原理主義者じゃないけど。
74 : weblogicでクラスタ組むときにderbyを使用すると勝手にミラーリング してくれるのか??table情報とかも?? だったら凄いけど。
75 : HSQLならMySQLやSQLite並に速いんだろ? Java DBとして昇格したDerbyは準拠型、H2は性能型と住み分ければいいよ。
76 : >>72 Java純度がほぼ100%近いNetBeansがネイティブに頼ってるEclipseに 速度面で勝ってしまったことからDerbyをネイティブ化 するのはかえって遅くなると言うことか。
77 : 純粋な実行速度だけなら、HotSpotの最適化技術は凄く効果的だから 遅くなるとすればI/O処理だと思われる
78 : DerbyはPostgreSQL、HSQLDBとH2はMySQLと考えればいいんじゃね?
79 : Updateは遅いが、Queryは良い線行ってる気がする。 「Embedded用途のなんちゃってDB」と言う認識で 使い始めたのだが、なかなかどうして優秀じゃん。
80 : ほほう。selectは頑張ってるのか。 insertでぶっちぎりでHSQLに負けたから敬遠してた。
81 : Apache Derby Performance ttp://wiki.apache.org/apachecon-data/attachments/Us2005OnlineSessionSlides/attachments/ApacheCon05usDerbyPerformance.pdf
82 : >>81 非常に良い資料だね。特に15pageあたりは興味深いよ。
83 : Java6 betaにJDBC4.0対応のDerbyが入っていて、細々と実験中。 なかなか良い感じですな。
84 : ij のrunコマンドでsqlファイルを読み込む場合、文字コードを指定することは出来ますか? derby.ui.codesetオプションをつけてみたら、ijコマンド全体が文字化けしてしまいましたorz
85 : データの挿入を今より高速化させたいのだが良い方法を どなたかご存知じゃありませんか? Statement#addBatch() を使用しているのだが。この質問って、プログラムの方かな?
86 : >>85 バッチ処理で希望のパフォーマンスがでないのなら あきらめろとしかいいようがない。 JDBC使わずにネィティブにINSERTしろ
87 : addBatchで追加する処理が1件とかそんなオチなんでは.... PreparedStatementは、パラメータ違い以外は同じSQLなのに処理毎にnewするなんて 愚かなことをしない限り結構高速に動く。 それをやったうえでまだ遅いというなら、ストアド・プロシージャ化するしかないんじゃね?
88 : EclipseでEmbeddedドライバを使って connection := DriverManager.getConnection("jdbc:derby:testDB;create=true",props); stmt := connection.createStatement(); stmt.execute("CREATE ほにゃらら"); ってやったときに、DERBY_HOMEに関係なく、eclipseのインストールディレクトリ直下に testDBのディレクトリがつくられます。どうやったらDBの作られる場所を指定できますか?
89 : Properties props = System.getProperties(); props.setProperty("derby.system.home", "c:\\derby");
90 : >>89 サンクス!
91 : derbyでPLSQLを使うにはどうすればいいの?
92 : OracleのDabaseLinkからDerbyに繋いでPL/SQLで…ってアホか!
93 : DerbyにはPLSQL相当の仕組みはないのだろうか??
94 : >>93 あってるかわかんないけどJavaで書けるんじゃないかなぁ。 >>81 のPDFをちょっと読んだ限りだと PreparedStatementのSQLはコンパイルされてJavaのバイトコードなる というあたりから、Javaで書ける仕組みがあってもおかしくないと思った。
95 : ダービーにはストアドプロシージャあるからPL/SQL相当はいらんだろ
96 : PL/SQLってOracleのストアドプロシージャじゃないの?
97 : 書いたプログラムにクラスパスを通した後、例のように定義せよ。 http://db.apache.org/derby/docs/10.2/ref/rrefcreatefunctionstatement.html
98 : で、だ。 これを導入しようとしたら何か注意点はあるか?
99 : >>96 違うよ。
100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
CSVファイルのスレ (219)
MSDEよりいいDB、ありませんか? (344)
[終了]今は亡きInformixに文句を言うスレ[おつかれ] (148)
自治スレ@DB板 2 (276)
データベース技術を勉強したいのですが… (125)
【PureJava】 Derby 1 【OpenSource】 (129)
--log9.info------------------
なまはげ暴走!女湯乱入!!! (393)
アデノバイタルは結果を出す。 (564)
ハゲにはサウナがいいらしい・・・ (579)
【リーブ21】 髪ドック 【3800円】 (151)
洗髪時の抜け毛は何本くらいですか?Part5 (882)
坊主にすれば人生が変わる気がする坊主2人目 (926)
再び湯シャンについて徹底的に真剣に語る (117)
【クレンジング】オイルケアprat2【頭皮脂制御】 (781)
ハゲの人って、帽子被るよね (331)
【訃報】スマップの草なぎ剛がフサナギに!!【SMAP】 (962)
つむじが薄いのでどうにかしたい!2 (432)
今日風つえええええええええええ 9風目 (836)
ハゲで白髪ってもう終わってるよな (102)
円形(単発・多発・悪性・瀰漫・汎発)脱毛症7本目 (790)
ハゲのいいところ (254)
シャンプー情報交換スレ 60 (1001)
--log55.com------------------
Apple Watch ヨドバシ予約待ち状況共有スレ
【iPod】Appleロスレス(可逆圧縮)スレ3【iTunes】
【第3世代】iPad part1【Wi-Fiモデル】
Apple SIM
iPad Air ケース/カバー/フィルム◆6
Apple Watch を付けている有名人
iPad2 東京都内の販売情報 Part3
10.5インチ iPad Pro 11(iPadAir2話題禁止)