设为主页
加入收藏
联系站长
网站首页 | 下载中心 | 站长工具 | CMS源码 | 建站素材 | 站长论坛 | 主机域名
网络编程 网页设计 图形图象 数 据 库 服 务 器 网络媒体 网络安全 热门技术 网络赚钱 业界新闻 引擎优化
您的位置:源码下载首页-> 文章中心-> 数 据 库-> MySQL-> 扩展微软 SQL Server 的空间功能

MySQL

MsAccess
MsSQL
MySQL
DB2
ORACLE
SYBASE
其他相关

 本类阅读排行

·利用C#实现分布式数据库查询
·实例讲解MySQL数据库的查询优化技术
·Sql Server2000+Sql Server Mobile Edition配置合并复制
·如何提高MySQL性能
·了解MYSQL数据库调度与锁定的问题
·如何运用SQL Server 2005中的模板参数
·从SQL备份文件中导入现存数据库
·在win2003下MySQL数据库每天自动备份
·Sql2005如何用dtexec运行ssis(DTS)包
·如何修改遗失的MySQL的ROOT用户密码

 精品推荐
扩展微软 SQL Server 的空间功能

作者:阿婷整理 | 来源:中国站长站 | 加入时间:2007-5-15 | 浏览次数 】【

  我经常想,在对空间信息的支持上,由于它缺乏对几何体的存储, MSSQL 总是比别的数据库慢了一拍。在新的 .NET CLR 的支持下,你可以真正地添加你自己的基于 .NET 的对象。尽管我也试了下在 SQL Server 中实现简单几何类型的存储,但有一些限制使我不得不放弃了尝试。首先,用户数据类型不能超过 8000 字节。也就是说,几何体对象不能超过 500 个节点,这对像海岸线这样的对象就显得太少了。另一个问题是 SQL Server 不支持继承,所以你也不能对你的数据类型做比较好的面向对象实现。

  ...所以昨天我试着找到了一个完全不同的更简单的实现。我决定以 Well-Known Binary 的形式(译者注: OpenGIS 的说明书中定义了两个表述空间对象的标准方式:一个是 WKT ( the Well-Known Text )形式,另一个是 WKB ( the Well-Known Binary )形式)存储几何体在一个图像列中。使用图像列的目的是它能够保存大到 2G 的数据,这对大多数的几何对象都足够了。而字节列和用户自定义类型一样,也有 8000 个字节的限制,所以也不够好。除了几何列之外,我还创建了四个实数类型的列,用来存储几何外接矩形框的最大最小坐标值。这能提高基于外接矩形框的查询的效率。其它的列用来存储几何体的属性。

  我在 SharpMap 中实现了这个方法。首先,我建立了一个小的数据库导入程序用来导入 shapefile 文件。它在数据库中建立一个表,然后把几何体及其对象导入其中。 SharpMap 为其提供了必要的数据读取器和 WKB 格式化程序。第二个部分是建立了一个数据提供接口, SharpMap 能够基于这个接口绘制数据。我做这些时多少参照了 PostGreSQL/PostGIS 的数据提供接口,只是用四个外框坐标列来做外接矩形框查询。所有这些工作所发费的时间不超过一个小时,因此,可以说做起来是比较简单的。

  我必须说,对于这种方法的效率我是很惊讶的。它比 shapefile 的数据接口还快一点点,而 shapefile 数据接口曾经是 SharpMap 中最快的数据接口。而 PostGreSQL/PostGIS 相比而言要慢 4 - 6 倍。

  我在这里创建了一个可下载的 web 演示程序。它分为两页:一个是导入到数据库,另一个是从数据库读取数据和绘制图层。所有你要做的是在 \App_Data\ 文件夹中增加一个 SQL Server 2005 Express 数据库并把它命名为 "GeoDatabase.mdf" 。

上一篇∶已经是第一篇   下一篇∶了解MYSQL数据库调度与锁定的问题
关闭
相关文章 相关软件
广告合作 - 关于本站 - 网站帮助 - 下载声明 - 网站地图 - 联系我们
© CopyRight 2007, CODEWWW.COM, Inc. All Rights Reserved