[英]What ADO type is the Geography spatial type from SQL Server 2008?
[英]SQL Server 2008 Performance on nullable geography column with spatial index
我在SQL Server 2008上看到了一些奇怪的性能问题,其中包含具有空间索引的可空的地理列。 每个空值都存储为空间索引中的根节点。
例如,一个包含5 000 000个地址的表,其中4 000 000个存储了一个坐标。
每次我查询索引时,我都必须扫描每个根节点,这意味着我必须扫描1 000 001级0节点。 (所有有效坐标的1个根节点+ 1M空值)
我在文档中找不到这个,我不明白为什么如果索引无法处理它,SQL允许此列可以为空。
现在我通过仅将现有坐标存储在一个单独的表中来绕过这个,但我想知道这里的最佳做法是什么?
编辑:(案件结案)
我在sql spatial msdn论坛上得到了一些帮助,有一篇关于这个问题的博客文章: http : //www.sqlskills.com/BLOGS/BOBB/post/Be-careful-with-EMPTYNULL-values-and-spatial -indexes.aspx此外,MSDN文档确实提到了这一点,但是以一种非常偷偷摸摸的方式。
NULL和空实例在0级计算,但不会影响性能。 级别0将具有与基本表中的NULL和空实例一样多的单元格。 对于地理索引,级别0将具有与NULL一样多的单元格和空实例+1单元格,因为查询样本计为1
文中没有任何地方承诺空值不会影响地理位置的性能。 只有几何体应该不受影响。
只是一个后续注释 - 此问题已在Sql Server Denali中修复,并带有新的AUTO_GRID索引(现在是默认值)。 将不再在根索引节点中填充NULL值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.