题记 大家对Oracle数据库的SQL操作应该不陌生吧,也就是出于所谓的效率而言,使用SQL语句对ArcGIS对象(要素类)进行直接的读操作或写操作,目前来说在电信行业运用较广泛,这方面的知识我就不再赘述。那么可能会有人问,那么在SQL Server数据库是否可以使用
题记
大家对Oracle数据库的SQL操作应该不陌生吧,也就是出于所谓的效率而言,使用SQL语句对ArcGIS对象(要素类)进行直接的读操作或写操作,目前来说在电信行业运用较广泛,这方面的知识我就不再赘述。那么可能会有人问,那么在SQL Server数据库是否可以使用SQL语句直接操作ArcSDE的对象呢?以前不可以,但是现在可以了。
系统需求
为什么说上面故意卖个关子呢,也就是需要强调一下系统需求的重要性。也就是说从SQL Server 2008版本后,才可以的。自从2008版本之后,MS提供了为空间数据专有的也就是MS自己的存储:Geometry和Geogrphy。
关键词
ArcSDE 地理数据库支持使用 Microsoft 的几何类型和地理类型存储矢量数据。SQL Server 2008 中提供这些类型,因此无需单独安装即可使用。这个与比较繁杂的Oracle的SQL操作引用St_shapelib.dll来说就显得非常方便了。
Microsoft 几何类型(Geometry)与现有 GIS 空间数据类型相似:使用任意平面(如已定义的投影)内的坐标。
Microsoft 地理类型(Geometry)用于旋转椭球体上的数据,该数据与纬度和经度坐标一同存储。
geometry 和 geography 数据类型支持十一种空间数据对象或实例类型。但是,这些实例类型中只有七种“可实例化”;可以在数据库中创建并使用这些实例(或可对其进行实例化)。这些实例的某些属性由其父级数据类型派生而来,使其在 GeometryCollection 中区分为 Points、 LineStrings、Polygons 或多个 geometry 或 geography 实例。
如图所示,geometry 和 geography 数据类型的七种可实例化类型为 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon 和GeometryCollection。只要特定实例的格式正确,即使未显式定义该实例,geometry 和 geography 类型也可识别该实例。例如,如果您使用STPointFromText() 方法显式定义了一个 Point 实例,只要方法输入的格式正确,geometry 和 geography 便将该实例识别为 Point。如果您使用STGeomFromText() 方法定义了相同的实例,则 geometry 和 geography 数据类型都将该实例识别为 Point。
怎么使用
默认情况下,SQL Server 中的 ArcSDE 地理数据库使用 ArcSDE 压缩二进制类型,因此如果您要使用 Microsoft 几何或地理类型进行存储,必须
(1) 将 SDE_dbtune 表中 DEFAULTS 配置关键字下的 GEOMETRY_STORAGE 参数更改为 GEOMETRY 或 GEOGRAPHY
(2) 指定可在创建要素类时指定 GEOMETRY 或 GEOGRAPHY 的 GEOMETRY_STORAGE 参数的配置关键字。
如果多数用户在多数时候都使用几何或地理类型存储数据,则只应更改 DEFAULTS 关键字下的 GEOMETRY_STORAGE 参数。如果只有部分数据将以几何或地理类型进行存储,则应在创建要素类时指定一个单独的关键字。为您提供了两个关键字:GEOMETRY 和 GEOGRAPHY,也可以创建自己的自定义关键字。
用户在创建要素类或者导入要素类的过程中可以选择以上关键字,那么这些数据就已MS的几何或者地理类型进程存储了,那么用户也就可以使用SQL对数据进行操作了。
操作步骤
因为Geometry和Geogrphy基本类似,那么本文就已Geometry存储来演示一下怎么在ArcSDE的SQL Server使用SQL对空间数据进行操作
创建表
使用ArcSDE命令进行注册
插入数据
使用空间关系操作
微软为我们提供了丰富的空间关系操作符
大家可能都知道Oracle的一些关系操作符,有的走空间索引,有的不走空间索引,那么我们在使用这些关系操作符的时候一定要使用走空间索引的,那么对SQLServer来说也一样的。
在特定条件下,空间索引支持以下针对集合的几何图形方法:STContains()、STDistance()、STEquals()、STIntersects()、STOverlaps()、STTouches() 和 STWithin()。要使空间索引支持这些方法,必须在查询的 WHERE 或 JOIN ON 子句中使用这些方法,并且必须在采用如下常规形式的谓词中执行这些方法:
若要返回非 NULL 结果,geometry1 和 Geometry2 必须具有相同的空间引用标识符 (SRID)。否则,该方法将返回 NULL。
查询几何图形实例的属性和行为
积分
所有非空几何图形实例都由“点”组成。这些点表示在其上不同几何图形的面的 X 和 Y 坐标。几何图形提供了用于实例查询的点的内置方法。
维度
非空几何实例可以为零维、一维或二维。零维几何(例如 Point 和 MultiPoint)没有长度或面积。一维对象(例如 LineString 和 MultiLineString)长度。二维实例(例如 Polygon 和 MultiPolygon)具有面积和长度。空实例将报告为 -1 维,并且GeometryCollection 将根据其内容类型报告一个面积。
关闭
“闭合的”几何图形实例是指起始点和终点相同的图形。多边形实例是闭合的。点实例不是闭合的。
环是一个简单、闭合的 LineString 实例。
空间引用标识符 (SRID)
空间引用标识符 (SRID) 是指定 geometry 实例所在的坐标系的标识符。两个拥有不同 SRID 的实例是不可比的。
此属性可以进行修改。
更多详见:http://msdn.microsoft.com/zh-cn/library/bb964708.aspx
两种数据类型之间的差别
两种空间数据类型的行为经常非常相似,但在数据存储方式和操作方式上存在某些重要的差别。
http://msdn.microsoft.com/zh-cn/library/bb964711.aspx
构造几何图形实例
http://msdn.microsoft.com/zh-cn/library/bb895335.aspx
-------------------------------------------------------------------------------------------------------
QQ一群: 78773981
QQ二群: 225989940
Blog: http://blog.csdn.net/linghe301Weibo: http://www.weibo.com/linghe301
-------------------------------------------------------------------------------------------------------

在数据库优化中,应根据查询需求选择索引策略:1.当查询涉及多个列且条件顺序固定时,使用复合索引;2.当查询涉及多个列但条件顺序不固定时,使用多个单列索引。复合索引适用于优化多列查询,单列索引则适合单列查询。

要优化MySQL慢查询,需使用slowquerylog和performance_schema:1.启用slowquerylog并设置阈值,记录慢查询;2.利用performance_schema分析查询执行细节,找出性能瓶颈并优化。

MySQL和SQL是开发者必备技能。1.MySQL是开源的关系型数据库管理系统,SQL是用于管理和操作数据库的标准语言。2.MySQL通过高效的数据存储和检索功能支持多种存储引擎,SQL通过简单语句完成复杂数据操作。3.使用示例包括基本查询和高级查询,如按条件过滤和排序。4.常见错误包括语法错误和性能问题,可通过检查SQL语句和使用EXPLAIN命令优化。5.性能优化技巧包括使用索引、避免全表扫描、优化JOIN操作和提升代码可读性。

MySQL异步主从复制通过binlog实现数据同步,提升读性能和高可用性。1)主服务器记录变更到binlog;2)从服务器通过I/O线程读取binlog;3)从服务器的SQL线程应用binlog同步数据。

MySQL是一个开源的关系型数据库管理系统。1)创建数据库和表:使用CREATEDATABASE和CREATETABLE命令。2)基本操作:INSERT、UPDATE、DELETE和SELECT。3)高级操作:JOIN、子查询和事务处理。4)调试技巧:检查语法、数据类型和权限。5)优化建议:使用索引、避免SELECT*和使用事务。

MySQL的安装和基本操作包括:1.下载并安装MySQL,设置根用户密码;2.使用SQL命令创建数据库和表,如CREATEDATABASE和CREATETABLE;3.执行CRUD操作,使用INSERT,SELECT,UPDATE,DELETE命令;4.创建索引和存储过程以优化性能和实现复杂逻辑。通过这些步骤,你可以从零开始构建和管理MySQL数据库。

InnoDBBufferPool通过将数据和索引页加载到内存中来提升MySQL数据库的性能。1)数据页加载到BufferPool中,减少磁盘I/O。2)脏页被标记并定期刷新到磁盘。3)LRU算法管理数据页淘汰。4)预读机制提前加载可能需要的数据页。

MySQL适合初学者使用,因为它安装简单、功能强大且易于管理数据。1.安装和配置简单,适用于多种操作系统。2.支持基本操作如创建数据库和表、插入、查询、更新和删除数据。3.提供高级功能如JOIN操作和子查询。4.可以通过索引、查询优化和分表分区来提升性能。5.支持备份、恢复和安全措施,确保数据的安全和一致性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)