使用高水印列的Azure搜索索引器和Azure SQL数据源产生的查询效率低

时间:2018-06-21 17:53:57

标签: azure-search

我有一个Azure SQL表,该表使用索引器同步到Azure搜索。 索引器数据源配置有“更改跟踪策略”高水印列。

基于下面的链接,建议对高水位标记列使用行版本数据类型。 https://docs.microsoft.com/en-us/azure/search/search-howto-connecting-azure-sql-database-to-azure-search-using-indexers

所以我的SQL表具有数据类型为timestamp的RowVersion字段,并在其上定义了索引。

当我查看数据库的Query Performance Insight时,性能最差的查询之一是:

(@hwm bigint)SELECT * FROM [dam].[Asset] WHERE [RowVersion] > @hwm ORDER BY [RowVersion]

我认为这是索引器的查询,因为执行次数与索引器的刷新频率相符。

请注意此查询如何使用bigint参数。 当我查看查询执行计划时,这将导致全索引扫描...查看谓词,它使用了CONVERT_IMPLICIT() enter image description here

为什么索引器没有使用正确的时间戳记数据类型来防止这种转换?

1 个答案:

答案 0 :(得分:1)

感谢您举报!我们将调查投放问题。

但是,我认为使用集成变更跟踪功能会更好:https://docs.microsoft.com/en-us/azure/search/search-howto-connecting-azure-sql-database-to-azure-search-using-indexers#sql-integrated-change-tracking-policy

您可以改用它吗?