【发布时间】:2011-02-07 06:51:57
【问题描述】:
我们的客户端有一个将 blob 存储在数据库中的应用程序,该应用程序现在已经增长到足以影响 SQL Server 的性能。为了解决这个问题,我们计划将所有 blob 卸载到文件系统,并将文件路径保留在用户表的新列中。
如果用户有一个表格文档,其中包含 id、name 和 content (blob) 列;我们会要求他在此表中添加一个新列“文件路径”。
我们的客户愿意在此数据库中进行此更改。但是当涉及到更改 sql 查询以读取和写入该表时,他们还没有准备好接受这一点。实际上,他们不希望进行任何导致重新编译和部署的更改。
现在我们计划编写一个自定义的 ADO.NET 提供程序,它将
- 拦截选择查询
- 在 select 语句的末尾添加一列“文件路径”
- 检索结果集并根据“文件路径”值修改“内容”列值
您认为这种方法肯定会失败吗?
我知道这听起来很脏,但我们有更好的方法吗?
【问题讨论】: