4

我们今天的设置采用 XML 数据并将该数据拆分为 SQL 中的多个表。这样做的唯一好处是报告是好的。然而,每当我们想要检索数据时,我们都必须重新绑定数百个表中的所有数据以重新导出 XML。每个 XML 可以是几 MB 到几 GB。

我们几乎从不讽刺地运行报告,但经常检索/保存数据。由于将其拆分/编译为多个表,因此保存和检索都不是很有效。

由于数据以 XML 的形式出现,我正在考虑更新我们的方法并将 XML 作为大 BLOB 保存到表中。就这么简单。

现在的问题与报告有关 - 由于无法索引 blob,我想知道我可以使用哪些选项来尽可能高效地运行报告。

数据库为 100 GB。

我不是 DBA(我是 C# 人员) - 我刚刚在工作中担任这个职位,所以我能想到的唯一方法是使用 C# 来完成 - 将每个 BLOB 构建为 XML 然后查询C# 中的 XML 数据。然而,这似乎是非常低效的。也许 SQL 中的 XQuery 更好?!尽管不是 DBA,但我对任何编程 (C#/VB) 或 SQL 建议都非常满意。

4

1 回答 1

3

您可以将数据保存在数据库中的单个XML 类型列中,然后通过 XQuery 访问数据。

XQuery 对我个人来说有点繁琐,但我发现这个提示列表很有帮助:

http://www.jackdonnell.com/?p=266

优点是您只保留一个数据版本,因此更新和读取速度很快,除了 XML 解析位(但这可能取决于您的数据量)。从 C# 将数据导入数据库很简单,因为您可以将 XML 映射到相应的SqlDbType.

于 2012-10-01T12:49:57.653 回答