MSSQL编程:利用sql server中的全文索引
mysql使用内部操作字符集gbk来进行操作,即执行"SELECT*FROMtestWHEREname=xxxor1=1/*LIMIT1";从而注入成功server|索引Author:DavidEuler.
Date:2004/09/11
Email:de_euler-david@yahoo.com.cn
有任何成绩,请与我接洽:)
一样平常情形,利用sqlserver中的全文索引,经由大致4个步骤:
1).安装fulltextsearch全文索引服务;
2).为数据表创建fulltextcatalog全文索引目次;
3).举行fulltextcatalog的population操纵(使全文索引与数据表内容同步);
4).利用全文索引举行查询。
为了在数据表内容更新时全文索引数据库的内容也坚持最新,能够经由过程第5步创建fulltextcatalog的Population主动操纵Schedule.
1.sqlserver默许不安装fulltextsearchservice,必要安装时选择装上才可使用。假如安装了fulltextsearchservice,那末SqlServerEnterprisemanager(企业办理器)中,睁开一个数据库,会有一个FullTextCatalogs;选中一个数据库,右键菜单的“新建“中有一个NewFullTextCataLog.而且选中恣意一个表格,点右键,会有一个Full-textIndexTable(全文索引表)的菜单可使用。假如fulltextsearchservice没有安装,那末这个菜单是灰色的。
2.为表创建fulltextcatalog.假定数据库CoreDB中有一个表myBBS,这个表存储的是一个论坛一切帖子的ID,题目(title),作者(author),内容(content)等。我们选中表myBBS,点右键,NewFullTextCatalog,选择content作为全文索引的字段,创建新的FullTextCatalog,取名为content.
3.到这个时分,只是创建了fulltextcatalog,其实不能利用全文索引。必要使全文目次中的内容与数据库索引表的内容相分歧,这一步经由过程FullPopulation或IncrementalPopulation来完成:企业办理器中睁开数据库CoreDB,双击Full-TextCatalog,会看到有一个名为content的全文目次,选中右击,点StartFullPopulation或StartIncrementalPopulation,此时便可利用索引功效。
4.利用索引功效:
select*frommybbswhereContains(content,"windows");
此语句在mybbs表的全文索引content中,查询含有windows字符串的纪录。
5.今后数据库中的索引表有更新时,都必要举行Population同步操纵,全文查询的内容才是新的数据表中的内容。因而我们能够设定sqlserver主动举行Population操纵:右击名为content的fulltextcatalog,Schedules,NewCatalogSchedules,输出名字,选中Enabled选项,能够设置企图义务的实行频次,可设置每次启动SQLserveragent的时分启动,也能够设置实行一次,大概设置反复实行,反复实行内里能够设置实行频次为月,周,日,能够设置天天多少小时实行一次。(如许只需Service内里启动了sqlserveragent,population同步企图城市主动实行)
总结一下,经由过程安装全文索引服务,创建数据表的全文索引目次,同步全文索引数据库以后,便可入手下手利用全文索引查询。可经由过程创建fulltextcatalog的主动populationschedule来主动同步索引数据库。
参考材料:sqlserver自带的匡助文档“sqlserverBooksonline“.
Full-TextCatalogsandIndexes
Full-textIndexes
Full-textSearch
MicrosoftSearchService
Full-TextQueryingSupport
2008年1月16号MySQLAB被Sun公司收购。而2009年,SUN又被Oracle收购。就这样如同一个轮回,MySQL成为了Oracle公司的另一个数据库项目。 发几份SQL课件,以飨阅者 入门没那么困难,精通没那么容易 但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右) 这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。 语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的! 也可谈一下你是怎么优化存储过程的? 是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。 如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。
页:
[1]