在fdhost.exe进程中,协议处理程序将从数据库中获取到指定的二进制数据,并使用筛选器将二进制数据转换为文本,根据断字符进行断字处理。
数据库引擎和筛选器后台程序可以通过命令管道(Named pipe)和共享内存(Shared memory)进行通信。通信的内容包括如下3个方面:
(1)数据库引擎将需要进行索引的数据传递给筛选器后台程序,再由筛选器将其转换为文本内容。
(2)数据库引擎中有一个筛选器后台管理器,它可以与筛选器后台程序相互通信,管理批处理请求和块区缓冲状态等。
(3)数据库引擎中包含查询处理器,查询处理器中又包含一个全文引擎,用于编译和执行与全文搜索相关的查询。在执行全文查询时,数据库引擎可以与筛选器后台程序相互传递关键字、文档和查询到的信息。
使用全文搜索功能可以查询保存在数据库中的二进制文件(例如.doc文件)数据。在以前版本的SQL Server中,可以采用下面两种方式保存大对象(例如图像、文档等):
(1)使用image或varbinary(max)数据类型列来保存大对象,此时大对象数据保存在数据库中。
(2)将大对象数据保存在文件系统中,在数据库中只保存文件的路径。在很多网站中,都是使用这种方式来保存网页上的图片文件的。但这种方法不便于对数据的统一管理,例如在备份和还原数据库时无法包含大对象数据。
SQL Server 2008提供了全新的FILESTREAM技术,它是上面两种方法的结合。在使用FII,ESTREAM技术时,大对象数据保存在文件系统中,但可以在数据库中对大对象数据进行管理。在备份和还原数据库时,可以包含大对象数据。本章将在后面的应用情景中将介绍如何在数据库中使用.FILESTREAM技术保存大对象数据。
展开