将序列化对象存储到Oracle DB(最好是XML)C#

问题描述 投票:0回答:1

在我开始编写代码来处理这个问题之前,我想要一个关于什么是最佳方法的反馈。

这个问题背后的背景是我想为C#对象创建某种存储,以防程序崩溃和数据丢失。

我想将SERIALIZED对象存储到数据库中,然后能够从ODP.NET中查询它,并成功地将其反序列化并将其转换为同一个对象。

顺便说一下,序列化对象的数据在序列化后大约为50 MEGABYTES。

用法:每天都会存储一个序列化对象,每天最多可检索10次。

我的问题是,如果有人以前做过这件事;

  • 用于存储它的最佳数据类型是什么? (我在考虑序列化为扁平XML并将其存储为CLOB / BLOB字符串)
  • 什么是最快的方法,或者我需要注意哪些步骤才能使其高效?
  • 如果我使用C#Serialize和Deserialize,我保证对象将是相同的(几乎要问在C#中XML序列化是多么可靠,我正在考虑使用JSon代替)

让我知道你们的想法!

谢谢!

c# oracle xml-serialization odp.net
1个回答
1
投票

如果您的对象主要是文本,那么在序列化数据之后(假设所有属性都可以序列化,可以使用XML或JSON),我建议将数据压缩为字节数组并将其存储为二进制数据。当你检索它时,你只需解压缩然后反序列化它。文本拉得非常好,特别是XML,所以你可以将50MB降低到10MB或更低。

根据你的评论,压缩绝对是值得的。如果你每天只增加10MB左右,听起来它不会对你的数据库产生负面影响 - 每年只需几GB。

© www.soinside.com 2019 - 2024. All rights reserved.