azure sql数据库索引基数为零

时间:2015-05-01 11:48:12

标签: sql database azure azure-sql-database

azure sql server查询速度慢:198秒。

我的桌面存储大约1 000 000行(lat,lng,price,title,id)。

我这样做是为了最佳性能:

ALTER DATABASE db1 SET AUTO_CREATE_STATISTICS ON;

ALTER DATABASE db1 SET AUTO_UPDATE_STATISTICS_ASYNC ON;

CREATE INDEX t1_lat_index ON t1(lat);

CREATE INDEX t1_lng_index ON t1(lng);

CREATE INDEX t1_price_index ON t1(price);

UPDATE STATISTICS t1;

但查询仍然很慢:

select top 100 * from t1 where lat > 46 and lat < 47 and lng > 3 and lng < 5 order by price;

可能因为索引(lat,lng,price)基数仍为零?

1 个答案:

答案 0 :(得分:0)

此查询:

select top 100 *
from t1
where lat > 46 and lat < 47 and lng > 3 and lng < 5
order by price;

是有问题的,因为比较是不平等的。您可以从复合索引开始:t1(price, lat, lng)。这涵盖了whereorder by条款,因此它们可能更快。

否则,您可能希望查看此类查询的spatial indexes。我认为Azure支持它们。