我有一个数据库,设置了一个blob FileStream用于存储音频文件的varbinary(max)字段。它现在已经增长到80GB以上,我面临性能问题。
经过一番搜索,我发现我的平均blob大小约为180k。根据MSDN的说法,filestream应该用于超过1MB的对象,因此我正在重新评估如何存储这些blob。MSDN还指出:“对于较小的对象,在数据库中存储varbinary(max) BLOB通常提供更好的流式传输性能。”因此,我考虑从带有filestream的varbinary(max)转移到只使用varbinary(max)字段。
所以我的问题是,是否有一个很好的方法,使用sql脚本将每个filestream blob从filestream移动到实际的varbinary字段中?另一种选择是,在决定询问之前,我一直在努力开发一个C#应用程序查询数据库中的blob,并将每个blob写入文件系统。然后手动从数据库中删除filestream内容。然后让C#应用程序从文件系统读取blob并写回到数据库中。我想肯定有更简单的方法。
经过一番搜索,我发现我的平均blob大小约为180k。根据MSDN的说法,filestream应该用于超过1MB的对象,因此我正在重新评估如何存储这些blob。MSDN还指出:“对于较小的对象,在数据库中存储varbinary(max) BLOB通常提供更好的流式传输性能。”因此,我考虑从带有filestream的varbinary(max)转移到只使用varbinary(max)字段。
所以我的问题是,是否有一个很好的方法,使用sql脚本将每个filestream blob从filestream移动到实际的varbinary字段中?另一种选择是,在决定询问之前,我一直在努力开发一个C#应用程序查询数据库中的blob,并将每个blob写入文件系统。然后手动从数据库中删除filestream内容。然后让C#应用程序从文件系统读取blob并写回到数据库中。我想肯定有更简单的方法。