Sqlserver2008 FileStream解决图片存储问题
SQLserver FileStream的出现就是为了解决对大对象的存储中一个矛盾。
对于图片的存储方式
第一种:方式是存储在数据库里面,这种方式一般使用image字段,或者varbinary(max)来做。好处是可以统一备份,但实际上读取效率比较低。大于1MB的文件就会有问题
第二种:方式是文件存储在文件系统,而数据库中存储了一个路径。这种方式数据库压力减轻了,却很不方便统一备份和管理。
SQL SERVER 2008的文件流其实就是二者的统一。文件还是放在文件系统的,但由数据库进行管理。可以统一备份和还原。FILESTREAM不是一个字段类型,它定义在字段后面,声明该列用于文件流即可。该列依然是用二进制保存的
一般都是在数据库中要特别添加一个文件组和一个或多个文件用来存储FileStream的数据的。
具体操作
1)启用服务器实例上的FILESTREAM(文件流)
打开SQL Server配置管理器,在SQL Server服务上点击右键,然后点击打开,在你想要启用FILESTREAM(文件流)的SQL Server实例上点击右键,从右键菜单中选择“属性”,切换到FILESTREAM(文件流)标签,检查“为Transact-SQL访问启用FILESTREAM(文件流)”选项,你也可以在这个标签页为文件I/O流访问启用FILESTREAM(文件流)
2)为数据库实例启用FILESTREAM(文件流)
执行系统存储过程sp_configure,并设置filestream_access_level参数的值为2
EXEC sp_configure filestream_access_level, 2
GO
filestream_access_level参数有效的值包括:
◆ 0 在该实例上禁用FILESTREAM(文件流),这是默认值。
◆ 1 为Transact-SQL访问启用FILESTREAM(文件流)
◆ 2 为Transact-SQL和Win32流访问启用FILESTREAM(文件流)
经过这两个步骤后,FILESTREAM特性就被启用了,再进行导入,就没问题了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律