SQL SERVER中全文检索的创建与应用
全文搜索的核心引擎建立在Microsoft Full-Text Engine for SQL Server (MSFTESQL) 服务提供支持
面对海量的数据,如何才能找到我需要的?对数百万行文本数据执行的LIKE 查询可能需要花费几分钟时间才能返回结果;但对同样的数据,全文查询只需要几秒或更少的时间,具体取决于返回的行数,全文检索提供了一种便捷的方式,轻松地让所需数据手到擒来。
下面介绍全文搜索的创建与应用:
1、全文检索的创建
use test
exec sp_fulltext_database 'enable'
-- FullTextName是保存索引文件的文件夹(数据库上体现是:全文目录名)
-- create表示创建
-- E:\SQL2005FullText表示FullTextName文件夹的根路径
exec sp_fulltext_catalog 'FullTextName', 'create', 'E:\SQL2005FullText'
-- 对News表创建全文搜索
-- PK_News是表的有效索引(一般用主键索引名)
exec sp_fulltext_table 'News', 'create', 'FullTextName','PK_News' --在已有的表上根据已有的索引创建全文索引
-- NewsContent是要创建全文搜索的列名
-- 0x0804代表简体中文的local ID
exec sp_fulltext_column 'News', 'NewsContent', 'add',0x0804
exec sp_fulltext_column 'News', 'NewsTitle', 'add',0x0804
-- 表启动完全填充(一般用于第一次生成全文检索时应用)
exec sp_fulltext_table 'News', 'start_full'
2、一旦设置好全文检索,你需要自己来维护全文索引的更新工作,这是因为全文目录的更新不是自动进行的。
-- 增量填充(表中必须有一个时间戳字段,否则它将转换为完全填充)
-- 可以使用SQL Server的Agent制定一个更新的计划,定时对索引做增量填充
EXEC sp_fulltext_catalog 'FullTextName','start_incremental'
-- 启动更改跟踪填充
exec sp_fulltext_table 'News','start_change_tracking'
exec sp_fulltext_table 'News','Start_background_updateindex'
创建完全文检索后,就可以用四个CONTAINS, FREETEXT,CONTAINSTABLE, FREETEXTTABLE谓词进行查询
3、性能
全文检索的填充和查询都需要花费系统开销,使用全文检索,你需要考虑性能上的问题,某一种方法比另外一种方法好并没有一个绝对的评判标准。你需要根据具体情况自己来对比不同方法的优劣。不过还是有一些建议:
&
相关文档:
sql server 时间段查询。
==========================================
select g.borrowTime from t_apartment_goodsborrow g
where g.borrowTime >= '2010-03-11 9:50:43'
2010-03-11 9:52:54
----------------------------------------------------------------------------
select g.borrowTime ......
1.条件控制
1.1 if .. then .. end if
if 条件 then
语句段;
end if;
1.2 if .. then .. else .. end if
if 条件 then
语句段;
else
语句段;
end if;
1.3 if嵌套
2.循环控制
2.1 loop .. exit .. end loop
loop
& ......
一个简单的小实例就明白~!
user表
在这张表中建立触发器
Create trigger tiggername
on user
for delete
as
begin ......
What is SQL*Plus and where does it come from?
SQL*Plus is a command line SQL and PL/SQL language interface and reporting tool that ships with the Oracle Database Client and Server software. It can be used interactively or driven from scripts. SQL*Plus is frequently used by DBAs and Developers ......