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中我们常用的几个函数给列举出来,供参考。
1.字符串函数用户控制返回给用户的字符串,这些功能仅用于字符型数据。
2.日期函数用于操作日期值,我们不能直接对日期运用数学函数。
3.数学函数用于对数值进行代数运算。
4.系统函 ......
select Convert( varchar(20) , 时间字段 , 格式 ) from 表 如:select Convert(varchar(20),LOGIN_DATE,112) from dbo.C_PARTY_CLIENT 100:Jun 22 2009 12:00AM 101:06/22/2009 102:2009.06.22 103:22/06/2009 104:22.06.2009 105:22-06-2009 106:22
select Convert(varchar(20),<时间字段>,<格式>) f ......
SQL优化的原则是:将一次操作需要读取的BLOCK数减到最低。
调整不良SQL通常可以从以下几点切入:
检查不良的SQL,考虑其写法是否还有可优化内容;
检查子查询考虑SQL子查询是否可以用简单连接的方式进行重新书写;
检查优化索引的使用;
考虑数据库的优化器;
查询的一般规则
Ø ......
Select * from t_user_profile where convert ( varchar ( 21 ),regDate, 120 ) like ' 2008-05-07% ' 表名称:t_user_profile 日期字段名称:regDate
Select * from t_user_profile where convert(varchar(21),regDate,120) like '2008-05-07%'< ......
当修改了登录密码时,当启动mssqlserver的时候会出现error 1069, means logon error. 这是由于一下2个原因1.sqlserver的密码没有同步的原因,需要在administrator tools ->services-> right click mssqlserver -> property-> logon tab -> change passward to new one . 2.sqlserver的启动用户不对,需要在a ......