小女巫 发表于 2015-1-16 22:23:14

MSSQL教程之MS SQL Server 对文件内容举行全文检索...

InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定server|全文检索由于项目必要,必要对上传的文件内容举行查询。经由过程MSDN懂得到Windows索引服务能够完成对文件的全文检索,并能够经由过程SQLServer举行查询。项目将这二者分离,完成对上传文件的全文检索的办理计划。
计划提要:
1.改动文件存储时的文件名
2.设置索引服务器,并将索引服务器与MSSQLServer联系关系。
3.修正SQL语句,将举行全文查询语句的内容到场查询前提中

文件的存储体例:
为了便利存储和便利索引,我们将上传的文件存储到一个目次内里,为了包管上传的文件名不反复,接纳GUID作为文件名,而且经由过程这个GUID于数据库纪录相干联。同时,文件的后缀还坚持原始文件的后缀,让索引服务可以辨认该文档。


设置索引服务

进进盘算机办理(ComputerManagement)程序(右键”我的电脑”->”办理”),并找到索引服务(IndexService)

设置索引服务的功效
(1)右键选择索引服务弹出一个菜单
(2)选择New->Catalog(新建一个辑录)

设置新增添的辑录
(1)输出辑录的名字(这个名字必要与数据库举行联系关系,要注重定名,这里假定DCSII
(2)点Browse进当选择索引服务运转目次窗体
(3)选择后面创立的索引运转目次(恣意中央)
(4)点断定完本钱次操纵

在辑录创立号今后,必要给辑录增添目次
(1)右键选择方才创立的辑录
(2)选择New->Directory(新建目次)

新建索引目次
(1)点击Browse进进目次选择页面
(2)选择要举行全文检索文件的目次
(3)断定完本钱次操纵

完成创立后启动索引服务
(1)启动索引服务
(2)索引服务启动乐成后索引辑录的信息,能够看到辑录信息就暗示服务已启动乐成。

将索引服务和SQL数据库联系关系:
在SQL查询剖析器(SQLQueryAnalyer)里实行上面的存储历程
EXECsp_addlinkedserverDcs,--毗连服务器的名字,到前面查询的时分要用到
IndexServer,
MSIDXS,
DCSII--索引服务里新建的辑录名字

s.p.
索引服务的功能调剂办法1

(1)右键选择索引服务
(2)选择AllTasks->TunePerrformance
(3)选择用户自界说
(4)点击Customize进进功能调剂窗体
(5)将Index和Querying的属性挪动到最右侧
(6)点断定完成操纵

功能调剂办法2
假如服务器不必要对全部体系的文件举行索引,能够中断大概删除System辑录。


MSSQL对索引服务器的挪用
1.经由过程sql语句查询毗连服务器的内容
SELECTQ.*
FROMOpenQuery(dcs,--毗连服务器名字
SELECTFileName,Size,DocAuthor,path--在毗连服务器里的sql语句
FROMSCOPE()
WHERECONTAINS(番号andabc)
)ASQ
2.由于SQL语句不撑持静态输出的字符串,因而查询字符串只幸亏C#代码里举行拼接


s.p.
实不必将文件保留到数据库表面也能完成在数据库里完成全文搜刮。详细计划是在SQLServer2000里平安全文搜刮功效,用image字段存储文件内容,并新增一个字段寄存文件范例,然后在经由过程企业办理器新建全文索引项的时分将这两个字段婚配就能够。不外从数据库的/率和从此数据库备份和恢复的效力下去看,将文件放在数据库的计划不是太好索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引不是万能的,索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。

若相依 发表于 2015-1-19 10:03:37

不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关

分手快乐 发表于 2015-1-28 05:15:08

但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。

小魔女 发表于 2015-2-5 14:39:21

sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西

只想知道 发表于 2015-3-3 01:24:46

多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油

不帅 发表于 2015-3-11 08:18:05

可以动态传入参数,省却了动态SQL的拼写。

再现理想 发表于 2015-3-18 00:20:12

而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。

小女巫 发表于 2015-3-25 08:38:55

不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
页: [1]
查看完整版本: MSSQL教程之MS SQL Server 对文件内容举行全文检索...