BLngLat为geography数据类型
直接select Key,BLngLat from Data_Sheet加了BLngLat后查询速度慢了一倍,请教该怎么弄

解决方案 »

  1.   

    select Key from Data_Sheet
    主键就是索引,所以只需要扫描一遍索引(读内存)就能出结果。
    select Key,BLngLat from Data_Sheet
    选取用了索引之外的字段,需要把全表都扫描一遍(读硬盘)才能出结果。
    两者性能有差异很正常啊。
      

  2.   

    不是的,我加了其他列也很正常,只要加了BLatLng这一列,就非常慢,这一列为geography数据类型
      

  3.   

    那么只能这样猜想了:geography数据类型是.Net类型,读取时需要进行反序列化,这个比较耗时。
      

  4.   


    确实有这个问题,我之前对100w条数据,来计算坐标和某一个gps的距离时,也会很慢的。这个数据类型虽然是sql server支持的类型,但是作为 SQL Server 中的 .NET 公共语言运行时 (CLR) 数据类型实现的,所以需要clr的支持,所以会慢一点。
      

  5.   


    我是在想 这个坐标数据,select出来具体后面计算会用到吗? 现在只是看到这个语句,也不知道给你怎么优化