ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:35.96KB ,
资源ID:9779606      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9779606.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SDE+ORACLE优化配置.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

SDE+ORACLE优化配置.docx

1、SDE+ORACLE优化配置1、修改oracle系统参数建库时选择手工建库,设置db_block_size=16k (一旦建库,无法修改)alter system set sga_max_size=1640M scope=spfile;(Total physical RAM *80%*50%)alter system set sga_target=1640M scope=spfile;alter system set pga_aggregate_target=650M scope=spfile;(Total physical RAM *80%*20%)alter system set pre_

2、page_sga=true scope=spfile;alter system set shared_pool_size=128M scope=spfile;alter system set open_cursors=2000 scope=spfile;alter system set session_cached_cursors=50 scope=spfile;alter system set cursor_sharing=exact scope=spfile;alter system set cursor_space_for_time=true scope=spfile;SDE的性能取决于

3、:首先操作系统的性能;其次是Oracle的性能,再次是SDE的性能。第一:操作系统,无非是内存、CPU、带宽等。可以有待提高的地方:第一、硬件升级; 第二、磁盘速度,用RAID集中存储会比服务器硬盘速度快。 第三、做LB,负载均衡。比如可以用Orcle RAC。第二:Oracle的性能Oracle可以调优的地方就太多了,有时数据库服务器本身硬件很好,但是oracle的参数设置不够好,Oracle也不能很好地发挥服务器的硬件性能。我本身对Oracle只是入门水平,也就简单地给点建议:2.1、OS的参数设置内核参数名 说明bufpages 对buffer空间不按静态分配,采用动态分配,使bufpa

4、ges值随nbuf一起对buffer空间进行动态分配。create_fastlinks 对HFS文件系统允许快速符号链接,dbc_max_pct 加大最大动态buffer空间所占物理内存的百分比,以满足应用系统的读写命中率的需要。dbc_min_pct 设置最小动态buffer空间所占物理内存的百分比desfree 提高开始交换操作的最低空闲内存下限,保障系统的稳定性,防止出现不可预见的系统崩溃(Crash)。fs_async 允许进行磁盘异步操作,提高CPU和磁盘的利用率lotsfree 提高系统解除换页操作的空闲内存的上限值,保证应用程序有足够的可用内存空间。maxdsiz 针对系统数据量

5、大的特点,加大最大数据段的大小,保证应用的需要。(32位)Maxdsiz_64bit maximum process data segment size for 64_bitMaxssiz 加大最大堆栈段的大小。(32_bit)maxssiz_64bit 加大最大堆栈段的大小(64_bit)Maxtsiz 提高最大代码段大小,满足应用要求maxtsiz_64bit 原值过大,应调小Minfree 提高停止交换操作的自由内存的上限Shmem 允许进行内存共享,以提高内存的利用率。Shmmax 设置最大共享内存段的大小,完全满足目前的需要。Timeslice 由于系统的瓶颈主要反映在磁盘I/O上,

6、因此降低时间片的大小,一方面可避免因磁盘I/O不畅造成CPU的等待,从而提高了CPU的综合利用率。另一方面减少了进程的阻塞量。unlockable_mem 提高了不可锁内存的大小,使可用于换页和交换的内存空间扩大,用以满足系统对内存管理的要求。2.2、Oracle的竞争让我们来回顾一下设置对象存储参数的一些常见规则:A、经常将pctused设置为可以接收一条新行。对于不能接受一行的free blocks对于我们来说是没有用的。如果这样做,将会令Oracle的性能变慢,因为Oracle将在扩展表来得到一个空的块之前,企图读取5个dead的free block。B、表格中chained rows的

7、出现意味着pctfree太低或者是db_block_size太少。在很多情况下,RAW和LONG RAW列都很巨大,以至超过了Oracle的最大块的大小,这时chained rows是不可以避免的。C、如果一个表有同时插入的SQL语句,那么它需要有同时删除的语句。运行单一个一个清除的工作将会把全部的空闲块放到一个freelist中,而没有其它包含有任何空闲块的freelists出现。D、freelist参数应该设置为表格同时更新的最大值。例如,如果在任何时候,某个表最多有20个用户执行插入的操作,那么该表的参数应该设置为freelists=20。应记住的是freelist groups参数的值

8、只是对于Oracle Parallel Server和Real Application Clusters才是有用的。对于这类Oracle,freelist groups应该设置为访问该表格的Oracle Parallel Server实例的数目。2.3、其他常用参数1)、包括SGA区(系统全局区):系统全局区(SGA)是一个分配给Oracle 的包含一个 Oracle 实例的数据库的控制信息内存段。主要包括数据库高速缓存(the database buffer cache),重演日志缓存(the redo log buffer),共享池(the shared pool),数据字典缓存(the

9、data dictionary cache)以及其它各方面的信息2)、db_block_buffers(数据高速缓冲区)访问过的数据都放在这一片内存区域,该参数越大,Oracle在内存中找到相同数据的可能性就越大,也即加快了查询速度。3)、share_pool_size (SQL共享缓冲池):该参数是库高速缓存和数据字典的高速缓存。4)、Log_buffer (重演日志缓冲区)5)、sort_area_size(排序区)6)、processes (同时连接的进程数)7)、db_block_size (数据库块大小):Oracle默认块为2KB,太小了,因为如果我们有一个8KB的数据,则2KB块

10、的数据库要读4次盘,才能读完,而8KB块的数据库 只要1次就读完了,大大减少了I/O操作。数据库安装完成后,就不能再改变db_block_size的值了,只能重新建立数据库并且建库时,要选择手工 安装数据库。8)、open_links (同时打开的链接数)9)、dml_locks 10)、open_cursors (打开光标数)11)、dbwr_io_slaves (后台写进程数)第三 就是SDE的性能3.1、ESRI要求安装SDE for Oracle时的一些推荐参数设置。A、Control files对于Oracle来说至少需要有三份Control Files。分布在物理分离的磁盘上。B、

11、Redo logsESRI要求Oracle数据库至少有3份redo logs。ESRI 建议不要使用 NONARCHIVELOG作为默认的log类别.C、SYSTEM tablespace把system表空间存储在一个低-中等活动的磁盘上。不要用System表空间作为数据存储空间,同时也不要用SDE表空间存储空间数据。D、Undo tablespace对于多版本地理数据库来说,需要增大undo_pool的大小;或者新建一个独立的roolback tablespace。E、Temp tablespace把temp空间和一些高IO的表空间放在一起。3.2、数据文件位置A、 redo log 文件-

12、 独立的磁盘B、 undo tablespace 与redo log 文件分离 频繁的操作C、 system tablespace 中-低 IO操作,与其他高IO的文件放置在一起.D、 按照预定的IO程度,放置ArcSDE的Table 和INDEX表空间.E、 Spatial Index Table 根本不读取table 只读取Index.3.3、创建SDE过程中的参数1. 设置oracle的db_block_size为 16kb;2. 创建业务表的存储表空间,和index的存储表空间,注意 一定一定 要分离 index表空间 和 table 表空间到不同的物理磁盘上;3. 修改dbtune.

13、sde参数;4. SDE 用户的的log文件,如果设置sessionlogpoolsize 大于0的话,就会创建sde的log 文件。5. 设置oracle的memory 首先 内存不能swap ;其次 SGA不能超过RAM的2/3 .High degree of paging 是GPA过大的结果;6. Swap space (Virtual Memory)Swap space至少是3-4倍于RAM.7. Redo log buffer 如果cpu少于4个,则设置512kb*cpu个数,否则设置128kb*cpu个数测试:Select name,value from v$sysstat whe

14、re name in(redo entries,redo log space requests) 如果比值大于1:5000 则需要增加redo log buffer 的数值. Shared pool 一般设置16Mb 可以适应大多数的应用。esri 推荐设置成128MB 或 200MB. Buffer cacheSGA_memory RAM *0.66Buffer_cache (SGA_memory-(share_pool size +log_buffer size)*0.9Db_block_buffer = Buffer_cache/ Db_block_size;Esri 推荐至少是16kb

15、 设置PGA空间设置 workarea_size_policy =autoPga_aggregate_target = RAM *0.16 如果数据库服务器只运行一个instance 设置 pre_sage_pga= true; 可选择:安装oracle startup trigger$SDEHOME/tools/oracle arcsde_database_startup.sql 清除由于系统 创建ArcSDE数据库时一定要用OLTP 模板,不能使用数据仓库模板。8、更新 sde featrue class 的stastistics 在catalog 中 右键 analyze 分析 图层;C

16、ommand line :Sdetable o update_dbms_stats t m compute u p 3.4、Dbtune.sde 的参数默认情况下 index表空间 与table表空间相同。修改的话,直接修改,再导入即可。如 对于一个 feature class 的存储参数为:B_STORAGE PCTFREE 0 INITRANS 4 # TABLESPACE 修改成B_STORAGE PCTFREE 0 INITRANS 4 TABLESPACE ndextablespace对于一个 feature class 来说,导入ArcSDE数据库后,会产生3个table 和 7个

17、index。至于这些表的结构和日后的使用,我在这里不做太多介绍。但是对于图象显示来讲,S表的大小起到了至关重要的作用。3.4、空间索引的重建我们知道SDE存储空间图形的方式为,Binery方式直接存储。这样对于一个 S 表,里面以feature ID 为序列,存储着构成这个Feature ID 的所有切割图形。这里面涉及到的一个问题就是 这个所谓的(Grid Size )切割比例,到底用多大的比例来切割存储才能达到最好的数据库效果。先简单说明一下,这个分隔比例的影响:如果分隔比例过大,如5000*5000,则一快图象中会存储着多个记录。缺点1:这样以记录为序的S表,会存储着许多的冗余信息。因为

18、每一个Feature Class均存储了这个图象。缺点2:在desktop 之类客户端软件访问数据库时,有时只需要显示一条记录(放大到记录),此时ArcSDE必须把一个大的图形读取出来,再按照该记录的大小进行裁减。也消耗性能。如果分隔比例过小,如50*50 则同一个feature class中的记录会有很多个图象组成。缺点1:分隔比例小,导致每个记录均由多个图象组成,大大增加了数据库存储的记录数,增大了存储空间。缺点2:分隔比例小,在显示一个记录时,需要读取多条记录,再拼接在一起进行显示。综上所讲,无论过大,或者过小 都会影响存储和性能。在使用ArcCatalog或者SDE 命令行导入数据时,

19、ArcCatalog 或SDE会自动计算出一个合适的分隔存储比例。这个默认的比例一般情况下会比较合适,但因为ArcSDE支持三级分隔比例。如果只使用一个默认的分隔比例,ArcSDE性能不会最佳。在以下的情况下,会产生问题:A、feature class 中的所有记录大小不一致时。B、大范围的记录时(如河流、道路、边框)首先,如果记录大小不一,计算出来的分隔比例总是不能达到最优。另外,对于大范围的记录,默认分隔比例过小。会导致 Feature Class is readonly mode 。图层不再可读。通过ArcCatalog可以修改Grid Size 的大小。在arcsde configur

20、ation guide for oracle 中详细介绍了 grid size的设置和调整。另外,The Role of Grid Size Optimization in ArcSDE Performance Tuning也会有所帮助。完。ps。说起来简单,做起来很难。我做过的尝试有:1、由RAID代替服务器硬盘;2、设置LDAP、dbblocksize 等esri推荐的oracle参数;3、分离table 和index 表空间;4、重新设置grid size。另外,如果使用ArcIMS的话,可以用application server 集群和 多spatial server 来提高性能。北方

21、数慧系统技术有限公司 杜海军概述:基于ArcSDE+Oracle的GIS系统,有的时候硬件配置很高档,系统运行依然效率低下。本文主要讨论如何调整系统架构、数据库、ArcSDE来发挥出硬件的性能,提高应用开发程序的运行效率。 系统环境:ArcSDE9.1 for Oracle10g + Oracle10gXE10.2.0.1Oracle参数设置Oracle块大小数据库块大小(db_block_size)16K 32K,Windows下的32位oracle只允许最大16K。SGA大小数据缓冲池(db_cache_size),尽量大,最好能加载所有数据,减少磁盘IO,不过不能完全依赖该参数,尽量通过

22、优化SQL语句解决问题,大约使用服务器物理内存的1/2左右,arcsde官方推荐至少512M。如果需要oracle的建议,参看v$db_cache_advice视图,或者使用oem的可视化界面。一般认为至少要保证数据访问的90%的命中率。将SGA预装到物理内存中,即设置PRE_PAGE_SGA=yes。共享池(shared_pool_size)至少128M,如果程序中使用大量存储过程需要适当调大,推荐到达200M。Shared_pool_reserved默认的共享池的5%可能需要调整,200M*5%=5M太大了。java池和大型池针对arcsde的oltp(联机事务处理)型系统来说不需要。Re

23、do日志缓冲区大小512K或者128K*cpu数目。这些参数的大小,根据oracle的v$视图去调整。对于oracle10g最好使用自动内存管理,简化对内存参数的配置。PGA大小大小可以设置为(物理内存-操作系统占用内存-其他应用占用的内存)*20%。设置PGA_AGGREGATE_TARGET的大小为PGA的80%,WORKSPACE_POLICY参数为AUTO,Oracle自动分配客户连接内存,不使用SORT_AREA_SIZE,HASH_AREA_SIZE参数设置的大小。表空间使用本地表空间管理。数据表表空间和索引表空间的分离。临时表空间不要太小,至少500M左右。表空间使用自动空间管理

24、,消除了自由空间列表的需求,可以减少数据库的竞争。数据库控制文件、日志文件、归档文件、数据文件、临时文件、索引等最好放在不同的硬盘,减少io消耗。游标参数Open_cursors尽量设置大些,例如2000+。Session_cached_cursors设置为50+。cursor_space_for_time设置为TRUE。cursor_sharing设置为exact。优化器参数optimizer_modefirst_rows (1 or 10) or all_rows,OLTP系统为获取最佳响应时间可以使用fist_rows,需要大量数据汇总等批量操作的话可以设置为all_rows。该参数可以

25、根据系统当前的主要工作情况来决定。优化查询必须修改的两个参数,使用如下两个参数的数据库默认数值一定有问题。Optimizer_index_cost_adj=20 ,设置索引的成本和全表扫描的成本比为1:5。optimizer_index_caching=80,设置索引数据的缓存命中率为80%。这两个参数需要根据系统运行情况分析设置,以上设置适合大部分的OLTP系统。把程序包固定到共享池,不交换保留大的对象在shared pool中。大的对象是造成内存碎片的主要原因,为了腾出空间许多小对象需要移出内存,从而影响了用户的性能。因此需要将一些常用的大的对象保留在shared pool中。需要把SDE

26、模式下的arcsde自身的plsql程序包固定到共享池,我们开发的程序包也要固定到共享池。管理序列修改序列的缓存数值。并把序列固定到共享池。索引和统计量监视索引新增、删除、更新等操作导致索引产生碎片,需要定期重建索引。如果需要创建位图索引的话,需要根据需要设置create_bitmap_area_size的大小,其中oracle标准版不支持位图索引的功能。如果在sql查询中使用了upper、length、substr等oracle内置或者我们写的函数,需要在相关字段建立函数索引,其他的索引无效,并把QUERY_REWRITE_ENABLED设置为true。尽量减少不必要的索引,有些多字段都需要

27、的索引,根据需要尽量使用组合索引。索引越多,数据库更新操作越慢。删除未使用过的索引,可以降低DML操作的成本,从而提升系统性能。统计量基于成本的优化器在生成执行计划的时候需要表和索引的统计量信息,否则生成的执行计划不是最优的。使用ANALYZE命令或者DBMS_STATS包,Oracle推荐使用DBMS_STATS包,该包能获取的统计信息全面。监视全表扫描尽量减少全表扫描。使用V$视图监视全表扫描的发生。合理的DB_FILE_MULTIBLOCK_READ_COUNT能减少table scan需要调用的IO次数,提高性能(与OS相关),但是可能增加全表扫描发生的概率。可以设置oracle一次I

28、O读取的块数为32,该参数比较适合普通的OLTP和OLAP系统,需要注意的是本参数设置的越大,优化器越倾向于使用全部表扫描。监视排序操作避免发生在临时表空间的排序操作,否则需要提高sort_area_size的数值。如果使用了自动内存分配的话,需要增加Pga_aggregate_target的数值。版本管理版本资料库表arcsde使用STATES 和 STATE_LINEAGES 表记录版本状态和父子关系信息。A和D表记录要素的变化信息。我们需要通过Oracle任务定期更新这两个表的统计信息和定期重建索引。state_lineages是Index Organized Table (IOT)。定

29、期压缩版本压缩可以提高查询的速度,减少逻辑IO,最好每天晚上执行压缩版本的操作,sdeversion o compress -N。dbtune参数中的compress_rollback_segment设置为最大表的10%+。如果使用了undo表空间的话,需要删除此参数,否则会出现错误,arcsde9屏蔽了该错误,并可以继续进行。压缩之前获取B,A, D, states, state_lineages 这些表的统计信息,加快压缩速度。数据压缩后可以truncate 增量表,重新设置表的高水位标记,优化更新操作。压缩后如果数据发生移动,重建索引和统计信息。应用程序优化应用系统结构主要优化SQL语句

30、的编写和系统结构设计,其中SQL语句导致系统性能问题的可能性比较大。绑定变量Arcsde9.2自动绑定变量。在我们系统使用的sql语句中最好使用绑定变量。如果我们写的存储过程使用了动态SQL语句,则需要使用绑定变量,静态SQL语句自动绑定变量。当前被执行的语句和共享池中的语句必须完全相同,包括字符、大小写、空格,否则不能使用共享池中的SQL语句。性能故障检查Oracle的Trace文件阅读trace文件使用tkprof命令。SQL trace 工具收集正在执行的SQL的性能状态数据并记录到一个跟踪文件中. 这个跟踪文件提供了许多有用的信息,例如解析次数.执行次数,CPU使用时间等.这些数据将可以用来优化系统。Statspack收集系统运行的快照,分析系统的缺点。通过系统快照,

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2