私のストアドプロシージャでは、サイズが1GBを超える非常に大きな可能性のあるXMLファイルを作成しています。データをvarbinary列に挿入する必要があり、これを行う最も効率的な方法がSQL Server 2014にあるのだろうか?SQL Server 2014 - xmlデータをvarbinaryフィールドに挿入
答えて
私はXML列に格納されたが、これに移動するように要求されています私のコントロール外の決定の結果として新しい列
これらの人と話す機会が少しあれば、これを行う必要があります!
XMLは、表示される文字列表現としてではなく、階層的に構成されたツリーとして格納されることに注意する必要があります。このデータを読み込んだり操作したりするのは驚くほど高速です! XMLをBLOBとして保存する場合は、文字列形式にしておきます(できればこれはunicode/UCS-2
です)。このデータを読むには、NVARCHAR(MAX)
へのキャストとXML
へのキャストが必要です。これは、ドキュメント全体を完全に解析して階層ツリーを取得することを意味します。これが完了したら.value
または.nodes
のようなXMLデータ型メソッドを使用できます。この非常に高価なプロセスが何度も何度も必要となります。
特に巨大なXMLの場合(またはさらに悪い - それらの多く)これは本当に悪い決定です!なぜこれを行う必要がありますか?おおよそ同じ量のストレージスペースが必要です。
パフォーマンスが悪いだけです。あなたはこれを後で修理しなければならない人になります...
VARBINARY
は、内部のもの(写真など)を気にしないデータに適したタイプです。これらのXMLが単純なアーカイブデータであり、そのXMLを読み込みまたは操作したくない場合は、これが選択肢になります。しかし、の利点は全くありません!
私はあなたの回答に同意しますが、私はバトルを失い、varbinaryとして保存する必要がありました。 – user1698316
私は、ファイルテーブルを使用してになります。https://docs.microsoft.com/en-us/sql/relational-databases/blob/filetables-sql-server
とブロブを挿入するためにこれをチェックアウト:How to insert a blob into a database using sql server management studio
残念ながら、私はファイルテーブルを使用するオプションがありません。 – user1698316
いつもOPENROWSETにファイルが必要だと考えました。それを使用するように見えます。ありがとうございます – user1698316
あなたは何を書いているストアドプロシージャを呼び出すでしょうか? – Ben
- 1. Zend_Dbでvarbinary(SQL Server)フィールドにblob(mysqlから)データを挿入します。
- 2. varbinaryデータをSQL Serverに手動で挿入する
- 3. Parameterize Microsoft SQL Serverのバルク挿入2014
- 4. SQL ServerでのXMLデータのクエリ2014
- 5. SQL ServerのVARBINARY列にByte []を挿入する方法
- 6. SQL ServerにNULLを挿入する方法DATEフィールド* from XML *
- 7. TEXT列からSQL ServerのXML列に挿入する方法2014
- 8. RスクリプトからSQL Server VARBINARY列を挿入する
- 9. SQL Server Varbinary(max):varbinaryフィールドのバイトのサブセットを選択します。
- 10. XMLからSQL Serverのテーブルにデータを挿入します
- 11. SSIS。 MS ACCESSからSQL Server 2014 Azureへのデータの挿入非常に遅い
- 12. SQL Server VARBINARY(MAX)
- 13. ストアドプロシージャ - SQL Serverの2014
- 14. チューニングのSQL Server 2014
- 15. SQL Server 2014からExcelにデータをエクスポート
- 16. SQL Server 2008にUTF8データを挿入
- 17. SQL Server varbinary(max)to imageデータ型
- 18. SQL 2014ストアドプロシージャテーブルチェックがnullのテーブルに挿入
- 19. SQLをSQL Serverに挿入
- 20. SQL Server 2008への親子XMLデータの挿入
- 21. SQL Serverの2014 -
- 22. SQL Server 2014クエリ
- 23. SQL Server PIVOT 2014
- 24. SQL Server 2014ジョブエラー
- 25. のSQL Server 2014グループ
- 26. PictureBoxをSQL ServerデータベースVarbinary(MAX)にC#で挿入する方法は?
- 27. 通貨データ型(Microsoft SQL Server 2014)
- 28. SQL Server 2014/16トランザクションレプリケーション
- 29. Excel VBAユーザーフォームを使用してSQL Server 2014にマルチプレットフィールドを挿入しますか?
- 30. SQL Server 2014 - 並列プロセス一意インデックスを持つテーブルに同じ値を挿入
XMLの場合は、なぜそれを 'XML'データ型として保存していませんか? 'XML'型のカラムも最大2GBのサイズをサポートし、' varchar(max) 'カラムよりも効率的にXMLを保存します –
xmlカラムに格納していましたが、この新しいカラムに移動するように求めました私のコントロール外の決定の結果。 – user1698316
私の答えに加えて、 'CAST(YourXML AS VARBINARY(MAX))よりも速いものは何でしょうか? – Shnugo