問題タブ [h2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
database - h2 & Linux。データベースを起動するには?
申し訳ありませんが、Linux ubuntuにはかなり慣れていません。Tomcat で実行し、h2 データベースに接続するアプリケーションを作成しました。私のWindowsラップトップではすべて正常に動作します。私は今、それを私のLinuxコンピューターに移動して、常に実行しています。しかし、データベースの起動に問題があります。私は彼らのウェブサイトからh2をダウンロードしました。そしてそれは私のデスクトップに座っています。
質問は。データベースの起動方法。
そして、それを実行して操作するために知っておく必要がある他のコマンドです。
ありがとうございます
sql - SQLスクリプトからH2データベースに長いテキストを挿入する
H2のrunscriptを使用してSQLスクリプトを実行しようとしています。
テーブルの1つには、(SAPデータベースからの)xmlドキュメントを格納するロングテキストタイプが含まれています
したがって、InsertステートメントにはXMLの長いテキスト(約200行のXML)が含まれています。これはかなり醜いですが、それでも機能すると予想されます。
SQL解析中にH2がArrayOutOfBoundExceptionでクラッシュします。
- 挿入ステートメントで受け入れる長さに制限はありますか?
- nsertでは、(mysqlで使用されているように)ティックを使用してvalue(xml)を区切ります...これにより、エスケープが最小限に抑えられます。それは問題の一部である可能性があります(他の短いフィールドで機能します)
Javaプログラムを作成するよりも、ここでプレーンなrunscript H2ツールを使用する方が好きですが、よりクリーンになると思います(steamメソッドを使用できます)。
何か洞察はありますか?
java - SQL データベースのインデックス付きテーブルに対するクエリと、独自の HashMap の使用
Java のパフォーマンスに関する質問があります。
SQLデータベースに大きなインデックス付きテーブルがあります(この場合はH2データベースですが、質問はどのSQLデータベースにも適用できます)。
このインデックスを使用して、このテーブル内のアイテムを頻繁に検索する必要があります。
今、何が速いのだろうか:
- SQL データベースのクエリ
- 最も頻繁に使用するフィールドの独自のハッシュマップを作成する
誰かがこれについて考えを持っていますか? (いくつかの速度テストを作成して自分で調べる前に)。
database - Springを使用してインメモリDBを起動およびセットアップします
私はSpringを使用してJavaで小さなデモアプリケーションを書いています。これはデータベースにアクセスする必要があります。異なるマシンで実行する必要があり、実際のデータベースをセットアップするのは非常に手間がかかります。したがって、組み込みのものを使用したいと思います。
DBには、特定のスキーマ(2つのテーブル)といくつかの(ごく少数の)事前定義されたエントリがあります。インメモリデータベースを起動し、テーブルを作成してデータを入力する簡単な方法を探しています。これはすべて、Springコンテキストの初期化中に発生するはずです。
私のアプローチは、データベースとしてH2を使用し、次にSpringBatchを使用してcsvファイルまたはxmlファイルからデータをロードすることです。しかし、私はこれを達成するためのより簡単な方法があるかもしれないと思っていました。これをすぐに実行できるデータベース/フレームワーク/ツールはありますか?
必要なものをすべてセットアップするには、わずかなSQLコマンドしか必要ありません。春の環境でこれをできるだけ簡単に行う方法を探しています。
h2 - h2 データベースの信頼性は?
この質問をすると、H2 データベースの現在のバージョンが 2011 年 7 月 1 日 (ごく最近) にリリースされたことがわかります。それはとても健康的です。このペースは維持されますか?新しいリリースのペースが遅い場合、オープンソース コミュニティによって長期的にサポートされますか?
コスト上の理由から、私は現在、高性能アプリに Postgresql を使用することを検討しており、H2 データベースには適切な機能セット (基本的に必要なものは何でも) があるようです。H2を使用することが正しい決定であるかどうかはわかりません. 基本的に、私の決定は、サブスクリプションベースまたはコミュニティによる長期サポートに基づいている必要があります.
java - H2 の CSVREAD() 関数/クエリを使用して WAR 内の CSV ファイルにアクセスするには?
Web アプリケーション (Tomcat 5.5.x) 内から CSV ファイルを読み込もうとしていますが、「FileNotFoundExceptions:
絶対パスを指定できる/指定する必要はないと思います (アクセスできない Linux/Tomcat サーバーにデプロイされます)。また、必要なファイル プロトコル ('jar:file', classpath:等)。
ファイルは「**/WEB-INF/classes/csvfile.csv」の下にあります
CSVREAD() に渡す必要があるパスの構造に関するアイデアはありますか?
ありがとう
リッチ
h2 - テーブルの更新時にH2データベース「ファイルの名前変更中にエラーが発生しました」
最新バージョンのH2、つまりバージョン1.3.150を使用していますが、VARCHAR2を更新するとorg.h2.jdbc.JdbcSQLExceptionが発生します。
SQLステートメントは非常に単純です
UPDATE STAMP_TABLE SET DESCRIPTION='a bit of text' WHERE STAMPID='s/1'
テーブル自体には特別なものはなく、VARCHAR2とBLOBの束だけです。
1回目は機能し、2回目はエラーメッセージで失敗します。
Error while renaming file "C:\my\local\path\1.t6.lob.db" to "C:\my\local\path\1.temp.lob.db"
SQLステートメントを使用するメソッドは次のとおりです。
/li>
何が悪いのか分かりますか?
java - 大きなデータセットを h2 データベースにロードできない
ここに問題があります。私の会社には、自動化された操作を実行したい大規模なデータベースがあります。6 つの 10MB サイズの csv ファイルについて、そのデータの小さなサンプルを取得したことをテストします。H2 を使用して、プログラムの結果をテストしたいと考えています。H2 以前の cv は、せいぜい 1000 エントリの長さでしたが、問題なく動作したようです。10MBのファイルのいずれかになると、コマンド
レジストリの 1 つが重複していると思われ、主キーの制約に違反しているため、エラーが報告されます。
mycsvfile.csv を小さな断片に分割すると、約 10000 行が挿入された後に問題が発生し始めることがわかりました (ただし、使用したデータによって数は異なります)。ただし、ファイルを分割してコマンドを個別に実行すると、10000 行を超える行を挿入できました。しかし、すべてのデータを手動で挿入できたとしても、データベースを埋めるための自動化された方法が必要です。
コマンドを実行しても問題の原因となっている行が表示されないため、問題は csvread ルーチンのキャッシュにある可能性があると推測しました。
次に、データを H2 データベースに手動で挿入できる小さな Java プログラムを作成しました。コマンドをバッチ処理したかどうかに関係なく、1000 行の接続を閉じてから開き、データベース内のエントリを複製しようとしていると報告されました。
emacs を使用してそのレジストリを通常の検索を行うと、datetime 列がデータセット全体で一意であるため、レジストリが重複していないことがわかります。
会社がその情報を販売しているため、テスト用にそのデータを提供することはできません. しかし、これが私のテーブル定義のようなものです。
csv は次のようになります。
そして、私たちのテストデータベースを満たす Java コード (私の醜いコードを許してください、私は必死になりました :)
リクエストがあれば、さらに情報を提供させていただきます。
編集
@Randyコマンドを実行する前にデータベースがクリーンであるかどうかを常に確認します.Javaプログラムには、挿入に失敗したファイルからすべてのデータを削除するルーチンがあります。
blob - H2 データベースで getBytes(long pos, int length) による BLOB の覗き見が遅いのはなぜですか?
ブロブを覗く必要があるアプリケーションがあり、(getBytes(long pos, int length) を介して) 少数のバイトを取得します。ブロブは約 30MB です。ブロブの先頭付近のバイトを要求すると、パフォーマンスは妥当です。ブロブの終わり近くのバイトを要求すると、パフォーマンスが大幅に低下します。ソース コード (JdbcBlob.java) を見ると、BLOB が (入力ストリームを介して) ランダムではなく順次読み取られているように見えます。
誰かが回避策を知っていますか? 私は H2 の大ファンであり、この問題は取引を妨げるものではありませんが、改善される可能性があると思います.
ありがとう
database - H2でプロシージャを作成する方法
これは同じタイトルの他の質問の複製のようですが、実際にはそうではありません。
ビジネスロジックは主にDB2ストアドプロシージャとして実装されています(H2にはDB2互換モードがあることがわかります-いいですね!)。
これらの手順でメモリ内単体テストにH2を使用するにはどうすればよいですか?
残念ながら、H2にはその文法からのCREATEPROCEDUREコマンドが欠けているようです。
Java関数をストアドプロシージャとして使用したくありません。まったく同じSQLファイルをテストと本番環境にも使用できれば最高です...質問が多すぎますか?
編集:SQLカーソルも使用します...繰り返しますが、サポートの兆候はありません:-(