12
Q
使用空间索引
A
回答
15
前段时间,我在SQLBits会议上介绍了一个会议,您可能会发现有帮助。您仍然可以在观看视频和slidedeck在线:http://sqlbits.com/Sessions/Event5/Creating_High_Performance_Spatial_Databases
一言以蔽之:
- 空间索引是在SQL Server群集和非聚集索引完全不同。
- 他们通过为空间查询提供“主要过滤器”来工作 - 空间索引使用网格来选择一组近似的可能候选结果,但可能包含误报。
- 辅助筛选器然后消除误报以获取查询的真实结果集。
- 获得快速执行的空间查询的关键是创建一个准确(即少的误报)但小(即不是太多记录要搜索)的索引,以便大部分工作由主过滤器完成,而不是更贵的二级过滤器。
- 您可以使用SQL Server Management Studio或使用CREATE INDEX T-SQL语句在一列几何/地理数据上创建空间索引。但是,该索引可能并不总是在查询中自动使用。要检查是否正在使用空间索引,请查看集群索引搜索(空间)项目的查询执行计划。
- 要确保使用空间索引来完成查询,可以通过在SELECT语句中的表名后面添加WITH(index(YourSpatialIndex))来添加显式索引提示。
有几个空间索引特定的设置会影响主过滤器的性能。首先,我建议您坚持默认设置,即在所有四个网格级别均为中等分辨率,每个对象为16个单元格。如果您使用的是几何数据类型,请确保设置了一个包含整个数据集的BOUNDING_BOX(对于地理来说,空间索引始终覆盖整个地球,所以这不是必需的)。然后,尝试一次调整一个设置并测量性能增加/减少。
<插头>有一个专门的空间索引,并在即将到来的空间查询“临空间与SQL Server 2012” < /插头>的提高性能的篇章 - http://www.amazon.com/Pro-Spatial-SQL-Server-2012/dp/1430234911/ref=sr_1_3?ie=UTF8&qid=1334310547&sr=8-3(全免责声明 - 我是作者)
相关问题
- 1. 未使用空间索引
- 2. 使用索引表空间?
- 3. 空间索引
- 4. 在空间索引中使用NULL
- 5. 索引使用的列表空间
- 6. 未使用SQL Server 2008空间索引
- 7. Mysql空间索引未使用
- 8. postgres空间索引
- 9. Hdf5和空间索引
- 10. 加入空间mysql索引
- 11. SqlServer空间索引/过滤
- 12. RavenDB LineString的空间索引
- 13. Hibernate空间索引注释
- 14. Raven DB多空间索引
- 15. LucidWorks搜索引擎索引占用多少存储空间?
- 16. 如何让我的空间索引使用大于HIGH的Level?
- 17. MongoDB在MongoDB中使用Mongoid in Rails - 地理空间索引
- 18. MySQL中空间使用部分的索引
- 19. 如何在MySQL表中使用外键和空间索引?
- 20. 地理空间索引创建的,但使用时的错误
- 21. 使用orientdb-enterprise-2.2.21和orientdb-community-2.2.21的空间索引问题
- 22. 在MySQL中对非空间数据使用R-tree索引
- 23. 在Rails中使用索引操作的名称空间
- 24. SQL Server不使用索引比较日期时间不为空
- 25. 做Mongo索引时使用多少磁盘空间会增加?
- 26. 使用node.js在mongodb中的地理空间索引
- 27. Oracle的SDO_CONTAINS在联合表上不使用空间索引?
- 28. 在三维数据中使用MongoDB的地理空间索引
- 29. 空间索引与两个坐标索引
- 30. RavenDB中具有空间索引的多图索引失败
谢啦!你很棒!这是我正在寻找的。 – Nenad 2012-04-13 15:04:08
Aitchison,我有一个空间索引的问题 - http://stackoverflow.com/questions/11088775/error-when-using-spatial-index-in-sql-server你能帮忙吗?谢谢! – Nenad 2012-06-19 16:10:07