SQL - 使用BLOBS查询

时间:2012-10-01 12:45:22

标签: sql sql-server

我们今天的设置采用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建议都非常满意。

1 个答案:

答案 0 :(得分:3)

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

XQuery对我个人来说有点繁琐,但我发现这个提示列表非常有用:

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

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