データベースへのXMLデータの格納-多くのテーブルと列へのXMLのダンプ

Maximus:

Java Webサービスで受け取ったxmlを保存したい。レポートは5分ごとに実行され、xml要素の一部のデータを取得します。

この問題を解決するための2つのアプローチを考えました。

  1. データベースに複数のテーブルを作成して、xmlデータをキャプチャします。基本的に、各要素はデータベース内に独自の列を持ちます。

  2. XMLデータを格納できる列にXML全体をダンプします。レポートの目的で、クエリ自体の値を解析します。

上記のアプローチのどれが、特にパフォーマンスの点で優れていますか?レポートは非​​常に高い頻度(5分ごと)で生成されるため、これは重要です。

xmlスキーマはかなり複雑で、単純なものではありません。

Justin Cave:

データが1回書き込まれ、何度もクエリが実行される場合は、XMLドキュメントを1回解析し、データを適切なリレーショナルスキーマに格納し、リレーショナルスキーマをクエリする方がほぼ確実に効率的です。XMLの解析は安価ではないため、5分ごとに複数のXML文書を解析する可能性のあるオーバーヘッドはかなりの量になる可能性があります。

もちろん、パフォーマンスに関するすべての質問と同様に、走行距離はさまざまなので、テストする価値があります。Oracle 11.2を使用していて、データをバイナリXMLとして格納し(この場合、データは解析後に格納されます)、格納するXMLTypeに適切なXMLIndexesを作成すると、データをXMLドキュメントに残すとパフォーマンスが低下する可能性があります。かなり小さい。それでも、適切なリレーショナル構造よりも遅くなるはずですが、その違いは意味がないかもしれません。

個人的には、パフォーマンスの問題を無視していても、リレーショナルストレージアプローチをお勧めします。これにより、他の人がデータとやり取りしやすくなるからです。きちんとしたXPath式を書くよりもきちんとしたSQLを書くことができる開発者ははるかに多く、リレーショナルテーブルからレポートを生成できるクエリツールは、データベースに格納されたXMLからレポートを生成できるよりもはるかに多くあります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

HSQLDBデータベースへのUUIDの格納

分類Dev

データベースへのシリアル化可能なオブジェクトの格納

分類Dev

ItemListenerのイベントからArrayListへのデータの格納

分類Dev

XMLからデータベースへ-MySQLへのforeachループ

分類Dev

配列後の値の処理とデータベースへのダンプ

分類Dev

配列から文字列への変換「配列」はデータベースに格納されます

分類Dev

データを格納するオブジェクトとデータへのスマートポインタを格納するオブジェクト

分類Dev

RoomデータベーステーブルへのPOJOの追加

分類Dev

MySQLデータベースへのXML解析

分類Dev

データの取得とデータベースへの挿入

分類Dev

SQLServerのデータベースへのXMLファイルの挿入

分類Dev

データベーステーブルの多くのブール列

分類Dev

データベーステーブルの多くのブール列

分類Dev

XML文字列からSQLテーブルへのデータテーブル

分類Dev

データベーステーブルの1つの列をArrayListに格納する

分類Dev

odooユーザーのログイン詳細を格納するデータベーステーブル

分類Dev

データベースへのフラスコテーブル行データ

分類Dev

テーブルへのJava検索データベース

分類Dev

Titanデータベースへのデータのロード

分類Dev

データベースへのデータの保存エラー

分類Dev

データベースへのAPI?

分類Dev

データベースへのAzureSync

分類Dev

行データから列へのSQLデータベース

分類Dev

SQLデータベースから配列へのデータ

分類Dev

Hibernate:固定長配列を1つのデータベーステーブル行に格納する

分類Dev

SQLServerテーブルへのXMLデータ

分類Dev

JanusGraphデータベースへのデータの追加

分類Dev

SQLITEデータベースへのデータの挿入

分類Dev

データベースPHPへのデータの追加

Related 関連記事

  1. 1

    HSQLDBデータベースへのUUIDの格納

  2. 2

    データベースへのシリアル化可能なオブジェクトの格納

  3. 3

    ItemListenerのイベントからArrayListへのデータの格納

  4. 4

    XMLからデータベースへ-MySQLへのforeachループ

  5. 5

    配列後の値の処理とデータベースへのダンプ

  6. 6

    配列から文字列への変換「配列」はデータベースに格納されます

  7. 7

    データを格納するオブジェクトとデータへのスマートポインタを格納するオブジェクト

  8. 8

    RoomデータベーステーブルへのPOJOの追加

  9. 9

    MySQLデータベースへのXML解析

  10. 10

    データの取得とデータベースへの挿入

  11. 11

    SQLServerのデータベースへのXMLファイルの挿入

  12. 12

    データベーステーブルの多くのブール列

  13. 13

    データベーステーブルの多くのブール列

  14. 14

    XML文字列からSQLテーブルへのデータテーブル

  15. 15

    データベーステーブルの1つの列をArrayListに格納する

  16. 16

    odooユーザーのログイン詳細を格納するデータベーステーブル

  17. 17

    データベースへのフラスコテーブル行データ

  18. 18

    テーブルへのJava検索データベース

  19. 19

    Titanデータベースへのデータのロード

  20. 20

    データベースへのデータの保存エラー

  21. 21

    データベースへのAPI?

  22. 22

    データベースへのAzureSync

  23. 23

    行データから列へのSQLデータベース

  24. 24

    SQLデータベースから配列へのデータ

  25. 25

    Hibernate:固定長配列を1つのデータベーステーブル行に格納する

  26. 26

    SQLServerテーブルへのXMLデータ

  27. 27

    JanusGraphデータベースへのデータの追加

  28. 28

    SQLITEデータベースへのデータの挿入

  29. 29

    データベースPHPへのデータの追加

ホットタグ

アーカイブ