我们的客户端有一个应用程序,它将blob存储在数据库中,现在已经增长到足以影响SQL Server的性能。为了解决这个问题,我们计划将所有blob卸载到文件系统,并将文件路径保留在用户表的新列中。
例如,如果用户有一个包含列id,名称和内容(blob)的表文档;我们会要求他在此表中添加一个新列'filepath'。
我们的客户愿意在此数据库中进行此更改。但是,当涉及到更改sql查询以读取和写入此表时,他们还没有准备接受这个。实际上,他们不希望任何导致重新编译和部署的更改。
现在我们计划编写一个
的自定义ADO.NET提供程序您认为这种方法肯定会失败吗?
我知道这听起来很脏但我们有更好的方法吗?
答案 0 :(得分:1)
您是否尝试将列切换为FILESTREAM
数据类型?这将完成您描述的所有内容,将数据 out 推送到文件系统中。当然,访问仍然需要虽然服务器作为TDS,但您可能会发现影响较小,并且您可以逐步更改代码以更直接地访问该文件(为了提高性能) - 最后一步将涉及更改查询。