首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
企业开发
地理信息系统
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
开一个帖子,分析sde表结构
加为好友
发送私信
在线聊天
jxfzcgh
jxfzcgh
等级:
可用分等级:
富农
总技术分:
86
总技术分排名:
100633
结帖率:
96.55%
发表于:
2007-10-22 22:56:29
楼主
Sde表结构分析
今天开始想分析一下sde的表结构,希望能够弄明白sde一个要素类的每个Feature是如何存储的。
弄ArcSDE的人都知道,ArcSDE内一个要素类在关系数据库(以MS SQL Server为例)中有一系列的表,
每个表的作用不同。
Sde的一个FeatureClass包含以下表:
B表(与要素类名称同名,用来存储属性数据结构),表结构如下:
字段名称
类型
说明
GeometryID
Int
要素唯一ID
SHAPE
Int
似乎与GeometryID值相同,备用字段?
…..
…..
其他用户定义字段
注:如果该要素类没有注册,B表有记录,如果该要素类已经注册,B表记录相应的转移到a表
F表(f+LayerID,用来存储图形坐标、外边界矩形等图形信息)
字段名称
类型
说明
fid
Int
要素唯一ID
numofpts
Int
坐标个数(岛、洞的坐标如何计数)
entity
smallInt
要素类型代码(点、线、面)
eminx
Float
边界矩形
eminy
Float
边界矩形
emaxx
Float
边界矩形
emaxy
Float
边界矩形
eminz
Float
emaxz
Float
min_measure
Float
max_measure
Float
area
Float
面积
len
Float
长度
points
image
坐标串(具体二进制内如何存储,如何提取)
S表(s+LayerID,用来存储地物空间索引,Sde采用正方形网格索引)
字段名称
类型
说明
sp_fid
Int
要素唯一ID
gx
Int
行号((网格左下点x坐标-图形区域最小x坐标)/网格大小)
gy
列号((网格左下点y坐标-图形区域最小y坐标)/网格大小)
eminx
Int
从名字看上去是要素的边界矩形坐标。但是我添加一个要素进去后,却发现不是直接存储的地物边界矩形坐标,边界矩形的坐标在f表已经存储了,这里不知道干什么用?
eminy
Int
emaxx
Int
emaxy
Int
A表(a+LayerID_Register,当要素类注册版本以后,该表存储原b表的数据,并记录数据状态)
字段名称
类型
说明
GeometryID
Int
要素唯一ID
SHAPE
Int
似乎与GeometryID值相同,备用字段?
SDE_STATE_ID
Int
要素状态ID(没有仔细研究,似乎每个操作就会+1)
…..
…..
其他用户定义字段
D表(d+LayerID_Register,仅当要素类注册版本之后,该表存在,并记录当前被删除的地物)
字段名称
类型
说明
SDE_STATE_ID
Int
删除要素的StateID
SDE_DELETES_ROW_ID
Int
删除要素的id
DELETED_AT
Int
删除操作的StateID?
本来想自己先看一段时间再贴出来,后来觉得个人时间、精力、能力有限,或许可以一边学一边写,
又或许有做过这项工作和对此有兴趣的同行愿意了解他,能够一起探讨
要搞清楚ArcSDE的运行机制,除了要分析他的表结构之外,还要分析其坐标串如何存储、版本信息如何记录
还有他本身自带的很多存储过程
由于本人也刚开始了解,其中如果有错误之处请多包含,并请指正,勉我在以后的过程中走弯路,谢谢先
问题点数:
20
回复次数:
24
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
fengyun925
云飞月 ^_^
等级:
可用分等级:
富农
总技术分:
13255
总技术分排名:
1283
4
4
发表于:
2007-10-23 10:55:35
1
楼 得分:
0
楼主写的不错
支持一下
密切关注楼主的更新,学习SDE知识
呵呵~
比较关注SDE对空间信息存储的细节
楼主加油
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jxfzcgh
jxfzcgh
等级:
可用分等级:
富农
总技术分:
86
总技术分排名:
100633
发表于:
2007-10-23 22:13:46
2
楼 得分:
0
关于f表points字段存储的问题下面这里有一个帖子,不过我似乎没有能看懂
http://blog.csdn.net/Jans/archive/2005/08/07/447810.aspx
其他地方暂时没有找到资料,待续...
另:昨天发现一个问题,sde的s表(即用来存储空间索引的表)在要素被删除的时候不会自动删除s表对应的内容
假如是这样的话,在频繁的写入、删除操作后,s表会有大量的无用记录,大大影响查询速度
就这个问题问了esri的人,他告诉我可以用compress操作,不过我试了似乎无用,不知道有什么其他办法
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
fengyun925
云飞月 ^_^
等级:
可用分等级:
富农
总技术分:
13255
总技术分排名:
1283
4
4
发表于:
2007-10-25 14:16:36
3
楼 得分:
0
压缩数据库,理论上是可以将所有临时表的记录都清空掉的
我当时跟踪过一个lineage的表
SDE中任何删除的要素都会放入D表吧,不会真正的删除掉
直到你压缩数据库的时候,才把你所有做过的操作都归档到最终的表里面
所以,刚删除的时候,S表中存在记录是正常的呀
呵呵~
SDE似乎需要定期压缩数据库的,否则也比较容易导致一些莫名其妙的错误的。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
xzhui
接点分变猩猩
等级:
可用分等级:
富农
总技术分:
3500
总技术分排名:
6413
发表于:
2007-10-26 09:07:04
4
楼 得分:
0
直接去找 sde的技术文档吧
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
shshsh_0510
雨下了4年11个月零2天
等级:
可用分等级:
掌柜
总技术分:
2075
总技术分排名:
10474
发表于:
2007-11-01 08:53:19
5
楼 得分:
0
m
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
wanghg08
火焰駒
等级:
可用分等级:
贫农
总技术分:
25
总技术分排名:
168743
发表于:
2007-11-12 15:20:32
6
楼 得分:
0
hao !
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jxufeng
玉龙猪
等级:
可用分等级:
富农
总技术分:
2129
总技术分排名:
10515
发表于:
2007-11-12 16:14:20
7
楼 得分:
0
说实话,sde表的设计可以称之为垃圾,搞那么多复杂的关系,速度慢得要死。
我简单的分析了一下personal geodatabase,也就是access gis数据库的结构,得出了一个结论,
那就是每条记录记录一下外接矩形,然后就是二进制字段存坐标。这个blob字段对应的是shape,“好像”(具体忘了)
前八位表示的是要素的种类,用以区分点线面的,因为同一图层只有一种要素,所以这个八个字节一点用都没有;
然后接下来的是每个点32位的坐标序列,点和线不用说了,多边形就是什么里边顺时钟外边逆时钟(我不知道是否说反了),
也就是和shape文件一样的,也和windows gdi基本一致(尤其是多边形的坐标排列方式)。
仅此而已,其他的那些表无非就是记录有几个图层,叫什么名字之类的。
200来万,就买了这么一个经常死机、功能强大但没几个人用的软件,中国政府的钱啊。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
rlj021
*****
等级:
可用分等级:
掌柜
总技术分:
452
总技术分排名:
38325
发表于:
2007-11-13 10:15:12
8
楼 得分:
0
看看……
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
giscn
等级:
可用分等级:
长工
总技术分:
5
总技术分排名:
256989
发表于:
2007-11-15 10:44:50
9
楼 得分:
0
7楼说的有理,ArcSDE其实是个空壳,可惜懂行的人不多,没什么内容,速度慢,特别用过ArcSDE for Oracle 的人会深有体会,如果你保存大量的数据,会很久,单ArcSDE 现在一套是17万,还涨价了2万,至于数据格式,ArcSDE的资料上写得很详细,采用一般用WKB(Well known binary)格式保存
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jxufeng
玉龙猪
等级:
可用分等级:
富农
总技术分:
2129
总技术分排名:
10515
发表于:
2007-11-19 23:00:01
10
楼 得分:
0
sde据说不单卖了。
gis这个行业啊,真是个有钱的行业!大部分干GIS的人大部分都是测量相关、土地、水利等相关行业的人,
而真正搞计算机的人尤其是软件的人并不是主要的力量,所以目前的现状也是很有意思的。反倒是其他行业的软件开发倒都是
计算机或数学毕业的为主流。
同时这个行业的权威人士都以数据(格式)为中心对行业进行“指点”,项目的承办者大都为
政府机关部门,所以出现了gis的开发大部分是以仅有那么几个所谓主流的平台进行重复性的、低水平的二次开发为主。也就
出现了做gis的人觉得使用了ajax的webGIS简直就是一个伟大的革命,殊不知这种基于多层、分辨率不同(大小不同)图片的
简单东西或许在某些做web应用的程序员开来只不过是小儿科。
这就是中国gis行业的的通病,大公司实现了从大学甚至高中开始灌输他们gis平台,无良学者的助纣为虐,政府官员的无能无知,
这个行业在中国永远将是外国人的天下。
或许,gps的普及正在或已经改变这个现实。不过现实是这样的,如果你跑到一个所谓的gis泰斗面前说手机的gps或者51地图的
什么技术时,大都会很郑重的告诉你,那能叫gis吗,你小伙子不懂gis,你去看看某某平台吧·······
也许我是真得不懂gis,我也就知道,一个系统作出来后,大部分就是放大缩小几下,最多点击一下属性,然后关了,不用了。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jxfzcgh
jxfzcgh
等级:
可用分等级:
富农
总技术分:
86
总技术分排名:
100633
发表于:
2007-12-11 21:34:24
11
楼 得分:
0
很久没有去研究了,sorry
sde 9.2以后就不单卖了,整合到 ArcGis Server 一起了
ArcSDE添加、删除数据是比较慢的,因为要维护空间索引表
但是感觉ArcEngine+ArcSDE查询速度还是飞快的,这种感觉尤其在我使用了SharpMap这一开源gis库以后愈发强烈
几百万记录2秒钟不到可以完成查询,算非常快了
Set pFeatureCursor = pFeatureLayer.Search(pSpatialFilter, True)
这一句总是能够很快返回数据,按理说这里要进行很多的操作
首先要根据属性字段过滤记录,然后要根据空间索引过滤数据,还要根据查询范围过滤数据
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
giscn
等级:
可用分等级:
长工
总技术分:
5
总技术分排名:
256989
发表于:
2007-12-20 18:52:48
12
楼 得分:
0
其实只是换了个名称,ArcGIS 9.2 Server Enterprise Basic就只有ArcSDE, 功能没什么变化还涨价了,
ArcSDE的添加和删除不是一般地慢,每秒update记录数到不了100,
至于查询速度,我感觉也没有优势,但没有用200这么大的表试过,如果记录数不多,2秒查处结果很正常,
PS. 按照我的经验, 对于100万条数据级别的表,ArcSDE的速度相比没有任何优势
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
giscn
等级:
可用分等级:
长工
总技术分:
5
总技术分排名:
256989
发表于:
2007-12-20 18:59:16
13
楼 得分:
0
说明一下,记录数不多的意思是指一次查出的结果集记录数不是很大。一般地,如果小于几千条,2秒不算快
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
byfq
不愿放弃
等级:
可用分等级:
掌柜
总技术分:
7327
总技术分排名:
2821
发表于:
2007-12-21 13:10:16
14
楼 得分:
0
学习一下,
sde好不好用,值不值那么多钱,关键看有没有好的能代替的东西出来
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
hujun614
Softworm
等级:
可用分等级:
掌柜
总技术分:
12932
总技术分排名:
1347
发表于:
2008-02-02 14:16:20
15
楼 得分:
0
精贴当然要顶了.
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Camper_beijing
Camper
等级:
可用分等级:
贫农
总技术分:
547
总技术分排名:
31306
发表于:
2008-02-18 16:06:12
16
楼 得分:
0
xue xi arcsde zhong
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
metaboy
新哥
等级:
可用分等级:
乞丐
总技术分:
154
总技术分排名:
98196
发表于:
2008-04-15 23:37:59
17
楼 得分:
0
学习一下,很有价值的
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
numbo
飞天猫
等级:
可用分等级:
掌柜
总技术分:
339
总技术分排名:
43784
发表于:
2008-08-07 14:45:59
18
楼 得分:
0
GIS行业发展的慢,在中国也就20几年的时间,应用水平和国外比还是有差距。现在搞gis项目,很多时候就是一个恶人扛到底,不仅要会写程序,而且要懂业务,还要懂测绘和地理信息的专业知识。没有人在乎你的程序写的多么好,也没有人在乎你懂多么先进的技术,只要程序能够运行出正确的结果就行了。如果你学计算机,领导会说你不懂业务,没有gis知识,如果你学gis,领导说你不会写程序,不懂技术。除非你在某个具体行业中混了很多年,知道那个行业应用要做什么,否则你很难得到领导的赏识。总的一句话,就是要压低你的个人价值。所以在gis界写程序,很多人写了几年也没有什么进步,只是会写一些功能,程序结构、效率甚至系统架构一无所知。在gis界搞业务,要做什么虽然懂了,但是给人的感觉就是越来越虚了,慢慢的变得不会做事了,离开了这个行业就不行了。学计算机的人搞编程,学gis的搞业务,学gis的而计算机技术比较扎实(计算机毕竟容易学)的,慢慢从技术的角度上升到业务的层次。gis界一致对于什么技术为主都有争执,搞测绘的说以测绘技术为基础(武测为代表),搞计算机的(中地)说以计算机技术为依托。照我说都别争了,行业的发展要靠测绘(GIS),行业应用要靠计算机技术。计算机技术再牛,如果没有行业理论为基础,也做不了gis,gis只所以成为gis当然有其特定行业知识背景。测绘(GIS)理论再好,前景再广阔,上天入地说的很牛逼,如果没有计算机技术去实现,什么都是一场空。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
cuit
应届本科找工作(GIS开发,C++开发,.Net开发)
等级:
可用分等级:
乞丐
总技术分:
2598
总技术分排名:
8564
发表于:
2008-08-08 15:36:08
19
楼 得分:
0
引用 18 楼 numbo 的回复:
GIS行业发展的慢,在中国也就20几年的时间,应用水平和国外比还是有差距。现在搞gis项目,很多时候就是一个恶人扛到底,不仅要会写程序,而且要懂业务,还要懂测绘和地理信息的专业知识。没有人在乎你的程序写的多么好,也没有人在乎你懂多么先进的技术,只要程序能够运行出正确的结果就行了。如果你学计算机,领导会说你不懂业务,没有gis知识,如果你学gis,领导说你不会写程序,不懂技术。除非你在某个具体行业中混了很多年,…
楼上是明白人...
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
cuit
应届本科找工作(GIS开发,C++开发,.Net开发)
等级:
可用分等级:
乞丐
总技术分:
2598
总技术分排名:
8564
发表于:
2008-08-08 15:37:29
20
楼 得分:
0
感觉GIS就一边缘行业
是要用到GIS而用GIS
而不是需要用GIS而GIS
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
yyunffu
等级:
可用分等级:
富农
总技术分:
2702
总技术分排名:
8227
发表于:
2008-08-18 16:11:58
21
楼 得分:
0
大家说的都不错!向大家学习!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
hznydx
等级:
可用分等级:
长工
总技术分:
81
总技术分排名:
103447
发表于:
2008-11-08 16:42:51
22
楼 得分:
0
说得好,国内的GIS发展是不行,
好多学校有这个专业,可到毕业学生都还
不知学了什么,对这个行业也是迷惑不解.
项目上,一是少,二是技术老.没有什么创新,
有一点东西就可以发到国内的期刊杂志上,国外的不是很清楚,
但愿GIS好起来!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jxufeng
玉龙猪
等级:
可用分等级:
富农
总技术分:
2129
总技术分排名:
10515
发表于:
2008-11-11 22:57:55
23
楼 得分:
0
说得好,国内的GIS发展是不行,
好多学校有这个专业,可到毕业学生都还
不知学了什么,对这个行业也是迷惑不解.
项目上,一是少,二是技术老.没有什么创新,
有一点东西就可以发到国内的期刊杂志上,国外的不是很清楚,
但愿GIS好起来!
最近因为工作的关系,需要搞点算法,查阅了不少核心期刊,
发现一个比较有意思的现象:
水平越高的杂志,水平越牛的人,如某某院士,某某著名教授,其文章大都是评论行业发展的,很有指导江山的意思。
对于专题研究,关于算法那种,基本都是不实用的;大部分只是从数学上来探讨了其可行性和算法的复杂度,而在实际应用中我们要考虑cpu 内存 磁盘 网络等等很多情况,发现很多牛人写得牛东西根本就无法用,甚至个别算法根本就是错的。比如关于空间索引,一个比一个吹的玄乎,但是没有一个有用的,因为往往都是只有一方面(如查询)性能确实提高,在其他方面(如缓冲查询)根本就没法用;因此成熟的gis平台还都是最简单的格网索引(1公里画个格子)。
而在不入流的杂志上往往出现些有参考价值的文章。
当然,那些挣钱的真正的东西,一般还是从文章中找不到!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ajwyyan
该用户很懒,没有设置昵称
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
327011
发表于:
2008-11-18 15:29:42
24
楼 得分:
0
arcgis比较复杂啊
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
abc推荐给好友