2016-05-05 51 views
2

我有一個使用SQLAzure數據庫上的全文索引的以下查詢。SQLAzure全文間歇緩慢

SELECT 
    * 
FROM 
    {table} T 
WHERE 
    CONTAINS(T.Column, @Search) 
    OR EXISTS(
     SELECT NULL 
     FROM {anotherTable} AT 
     WHERE AT.Id = T.AnotherTableId AND CONTAINS(AT.Name, @Search)) 

如果我從SQL Management Studio運行查詢,查詢運行速度非常快。但是,如果我從應用程序運行它,它的速度與Management Studio一樣快,但有時會慢10倍(並且下一個查詢又快)。

什麼可能會導致這種間歇性遲緩?

我在這裏發現了一篇描述類似症狀的帖子:Fulltext search slow SQL V12 Azure,但沒有一定的結果或建議。

+0

也許這是Azure的SQL數據庫的共享環境的性質是什麼?有時資源很忙。 – RichardCL

回答

0

在Azure SQL數據庫上的全文搜索是以它在SQL引擎和全文搜索過程之間共享資源的方式實現的。

每次全文搜索操作第一次執行時,都需要將資源分配給進程,因此執行過程需要一些時間。

我們正在努力確保這種體驗儘可能的無縫。

感謝, 路易斯

+0

感謝路易斯你的答案。我們可以從我們這邊做些什麼來儘可能減輕這種情況?或者等到它從SQLAzure團隊的進一步實現中得到改進? – jabko87

+0

最佳做法之一是按順序執行所有FTS操作,以儘量減少資源分配的延遲。 –

+0

是的,但如果我理解正確,第一次FTS操作將會很慢。如何緩解這種「第一查詢」緩慢? – jabko87