gpt4 book ai didi

c# - 自定义 ADO.NET 提供程序拦截和修改 sql 查询

转载 作者:行者123 更新时间:2023-11-30 12:52:16 25 4
gpt4 key购买 nike

我们的客户有一个在数据库中存储 blob 的应用程序,该数据库现在已经增长到足以影响 SQL Server 的性能。为了克服这个问题,我们计划将所有 blob 卸载到文件系统,并将文件路径保留在用户表的新列中。

就像用户有一个包含列 id、名称和内容 (blob) 的表 docs;我们会要求他在此表中添加一个新列“文件路径”。

我们的客户愿意在此数据库中进行此更改。但是当涉及到将 sql 查询更改为读取和写入此表时,他们还没有准备好接受这一点。实际上,他们不希望任何导致重新编译和部署的更改。

现在我们计划编写一个自定义的 ADO.NET 提供程序,它将

  • 拦截选择查询
  • 在选择语句的末尾添加一列“文件路径”
  • 获取结果集并根据'filepath'值修改'content'列值

有没有您认为使用这种方法肯定会失败的用例?

我知道这听起来很脏,但我们有更好的方法吗?

最佳答案

您是否尝试过将列切换到 FILESTREAM数据类型?这会执行您描述的所有操作,将数据推出 数据库(到文件系统)。当然,访问仍然需要通过服务器作为 TDS,但您可能会发现影响较小,您可以逐步更改代码以更直接地访问文件(为了提高性能)- 然而,最后一步涉及更改查询。

关于c# - 自定义 ADO.NET 提供程序拦截和修改 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4918735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com