Heim > Datenbank > MySQL-Tutorial > Hauptteil

SQLServer Full text 第一次使用会 timeout的问题

WBOY
Freigeben: 2016-06-07 15:35:05
Original
1083 Leute haben es durchsucht

最近遇到一个比较奇怪的 问题 ,为了提升一个Search Function的性能,为此建立了全文索引,然后用Contains语句来降低查询时间。 SELECT * FROMTABLE_AWHERE CONTAINS(Field1,'ABC|DFD|FD') 使用 Contains查询确实比较很快。不过 问题 是每过约20分钟左右的时

  最近遇到一个比较奇怪的问题,为了提升一个Search Function的性能,为此建立了全文索引,然后用Contains语句来降低查询时间。

 SELECT * FROM  TABLE_A WHERE CONTAINS(Field1,'ABC|DFD|FD')

使用Contains查询确实比较很快。不过问题是每过约20分钟左右的时间;再次使用contains查询会很慢,甚至会超时,第2次,第3次..则又非常快。如此的重复着。 开始的时候我怀疑是因为SQLServer的 Data Cache问题,所以用WITH Recomplie Option等方式去解决不使用Cache的,但仍然没有任何效果,问题还是继续出现。且这个问题只是出现在某一个环境下。

 

最后证实问题的罪魁祸首是一个SQLServer的一个配置(VerifySignature). 唯独在这个环境中VerifySignature属性被设为了1,其他的环境都是0.

查询配置的语句:

SELECTfulltextserviceproperty('VerifySignature') 

VerifySignature被设置成1时。

 

第一次query的时候,SQLServer 会尝试连到Internet 上 验证word breaker证书. 接下来的第二次则不会再去验证。

验证需要花一些时间,尤其当SQLServer没有网络连接的时候。

如果在5分钟里并没有其他的Full text search被行的话, the word breaker会被Unload掉,然后再次执行证书验证。这就是为什么我会遇到这样奇怪的问题.

解决办法:

<code><span>sp_fulltext_service </span><span>'verify_signature'</span><span>,</span><span>0</span><span>;</span></code>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!