在ArcSDE中有许多东西都是在数据库中进行的,比如说多次查询、索引等等,在Oracle数据库中我们可以使用跟踪trace文件进行捕捉,但是Oracle毕竟对用户要求比较高,还需要设置很多东西,如果我们想研究ArcSDE的相关东西,我们也可以借助SQLServer数据库,因为它的SQL Server Profiler工具简单好用,同样也可以让我们理解ArcSDE的相关知识。
下面我就以一个没有注册版本的数据,在ArcMap打开要素类,然后进行平移
我们查看SQL Server Profiler工具
TextDate 依赖于跟踪中捕获的事件类的文本值;
ApplicationName 创建 SQL Server 连接的客户端应用程序的名称。此列由该应用程序传递的值填充,而不是由所显示的程序名填充的;
NTusername Windows 用户名。
LoginName 用户的登录名(SQL Server 安全登录或 Windows 登录凭据,格式为“域\用户名”)
CPU 事件使用的 CPU 时间(毫秒)。
Reads 由服务器代表事件读取逻辑磁盘的次数。
Writes 由服务器代表事件写入物理磁盘的次数。
Duration 事件占用的时间。尽管服务器以微秒计算持续时间,SQL Server Profiler 却能够以毫秒为单位显示该值,具体情况取决于“工具”>“选项”对话框中的设置
ClientProcessID 调用 SQL Server 的应用程序的进程 ID。
SPID SQL Server 为客户端的相关进程分配的服务器进程 ID。
StratTime 事件(如果可用)的启动时间。
EndTime 事件结束的时间。对指示事件开始的事件类(例如 SQL:BatchStarting 或 SP:Starting)将不填充此列。
BinaryData 依赖于跟踪中捕获的事件类的二进制值。
我们查看这个SQL
exec sp_executesql N'SELECT S_.eminx,S_.eminy,S_.emaxx,S_.emaxy ,SHAPE.fid F_fid,SHAPE.numofpts F_numofpts,SHAPE.entity F_entity,SHAPE.points F_points FROM (SELECT DISTINCT sp_fid,eminx,eminy,emaxx,emaxy FROM SDE.SDE.s90 SP_ WHERE SP_.gx >= @P1 AND SP_.gx <= @P2 AND SP_.gy >= @P3 AND SP_.gy <= @P4 AND SP_.eminx <= @P5 AND SP_.eminy <= @P6 AND SP_.emaxx >= @P7 AND SP_.emaxy >= @P8 ) S_ , SDE.SDE.f90 SHAPE WHERE S_.sp_fid = SHAPE.fid ',N'@P1 bigint,@P2 bigint,@P3 bigint,@P4 bigint,@P5 bigint,@P6 bigint,@P7 bigint,@P8 bigint',137400,137405,337772,337778,56336353352,138489202583,56334191079,138486723103
我们转换一下核心的SQLSELECT S_.eminx,S_.eminy,S_.emaxx,S_.emaxy ,SHAPE.fid F_fid,SHAPE.numofpts F_numofpts,SHAPE.entity F_entity,SHAPE.points F_points FROM (SELECT DISTINCT sp_fid,eminx,eminy,emaxx,emaxy FROM SDE.SDE.s90 SP_ WHERE SP_.gx >= 137400 AND SP_.gx <= 137405 AND SP_.gy >= 337772 AND SP_.gy <= 337778 AND SP_.eminx <= 56336353352 AND SP_.eminy <= 138489202583 AND SP_.emaxx >= 56334191079 AND SP_.emaxy >= 138486723103 ) S_ , SDE.SDE.f90 SHAPE WHERE S_.sp_fid = SHAPE.fid
我们可以直接在SQL Server里面执行这个SQL语句那么我们可以在ArcMap里面看到
我们查看当前视图的属性表
上面关于ArcSDE数据在SQLServer里面的存储,S表结构,索引结构我都没有介绍,有兴趣的大家自己研究一下,这么文章的目的也就是给大家提供一个简单的方法,让想对ArcSDE内部组织,查询,存储等感兴趣的用户研究相关的知识,以达到业务工作的目的。
得到相关trace文件,保存下来,我么可以使用“数据库引擎优化顾问”来分析。
现在我们来打开数据库引擎优化顾问 我们单击开始--程序--Microsoft SQL Server 2005--性能工具--数据库引擎优化顾问
如下图
和上面一样我们要先输入数据库的登录信息
单击连接进入如下界面
我们可以看一下界面,一般不用选择只要安默认的就OK了,需要配置的我上面都有注释。在这里大家一定要记得选择用于工作负荷的数据库和表,意思就是设置要分析的数据库否则会分析不成功。
现在就可以单击开始了
在这里我们可以看到分析成功后的分析报告,这还不算,我们单击上面的
建议选项卡
在这里还给出了你的那些表,需要优化,应该怎么建立索引和视图才能更有效的提高性能,更好玩的是连需要优化的Sql语句都给生成好了,
我们直接复制执行就要可以了。