怎么提高ArcSDE for Oracle写入地理oracle数据库提高效率的效率

[原]怎么提高ArcSDE for Oracle写入地理数据库的效率 - 推酷
[原]怎么提高ArcSDE for Oracle写入地理数据库的效率
很多用户经常会有将数据写入ArcSDE地理数据库的操作,也时常会写入效率而烦恼,它们渴望不管多大多复杂的数据,尽可能的使用较少的时间写入到ArcSDE中,而往往用户写入ArcSDE也通过依赖于本身的业务需求,使用自定义的代码开发就非常常见了,那影响ArcSDE写入效率的因素就比较多了。
----------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
Blog: & & & & & & & http://blog.csdn.net/linghe301
----------------------------------------------------------------------------------
大多数用户可能还在使用ArcGIS Engine、空间SQL、ArcSDE API和WebAPI进行开发,针对后两者我不是很熟悉,也没有什么发言权,所以更多的以前面两种开发模式为例,看看在代码开发过程中是否有可以优化的余地。
& & & & & & & & & & & & & & & & & & & & & & & & & & & &ArcGIS Engine & & & & & & & & & & & & & & & & & & & & & & & & & &
以下部分可以参考2011年Esri中国开发者大会《Geodatabase高效编程_李圣虎》,特此感谢!
该文档建议ArcGIS Engine的开发者仔细学习,里面介绍了很多提高效率的技巧和细节!
另外大家也可以参考:Geodatabase API best practices&
1:使用多线程
说实话,ArcGIS Engine是否支持多线程,大家的理解是不一样的。用资深人士解释就是ArcGIS Engine支持多线程,但是不支持多个线程之间的彼此调用。
下面就以更新多个要素类的字段来演示一下多线程的使用方法,以下都是伪代码。
编写一个更新要素类的函数,输入参数为要素类名称
public class VersionEditing
/// &summary&
/// 更新要素类指定字段值
/// &/summary&
/// &param name=&parameter&&要素类名称&/param&
public void UpdateFiledValue(object parameter)
编写多线程函数,调用这个更新要素类的函数
private void MultiThreadEditing()
VersionEditing VersionEditing = new GIS.VersionEditing();
//声明线程对象
Thread thA = new Thread(new ParameterizedThreadStart(VersionEditing.UpdateFiledValue));
Thread thB = new Thread(new ParameterizedThreadStart(VersionEditing.UpdateFiledValue));
//设置线程工作模型
thA.SetApartmentState(ApartmentState.STA);
thB.SetApartmentState(ApartmentState.STA);
//启动线程
thA.Start(&featureclass1&);
thA.Start(&featureclass2&);
2:使用游标进行地理数据库编辑
如果是批量进行数据编辑,不建议用户使用传统的Create Feature+Store的方法,而是使用insertCursor或者Update Cursor的方法。
//建议的方法
public static void InsertFeaturesUsingCursor(IFeatureClass featureClass, List &
IGeometry & geometryList)
using(ComReleaser comReleaser = new ComReleaser())
// Create a feature buffer.
IFeatureBuffer featureBuffer = featureClass.CreateFeatureBuffer();
comReleaser.ManageLifetime(featureBuffer);
// Create an insert cursor.
IFeatureCursor insertCursor = featureClass.Insert(true);
comReleaser.ManageLifetime(insertCursor);
// All of the features to be created are classified as Primary Highways.
int typeFieldIndex = featureClass.FindField(&TYPE&);
featureBuffer.set_Value(typeFieldIndex, &Primary Highway&);
foreach (IGeometry geometry in geometryList)
// Set the feature buffer's shape and insert it.
featureBuffer.Shape =
insertCursor.InsertFeature(featureBuffer);
// Flush the buffer to the geodatabase.
insertCursor.Flush();
& & & 测试场景:从本地File Geodatabase中读取数据,向ArcSDE Geodatabase要素类中插入读取的数据;
& & & 数据情况:简单的线要素类,2721089条记录;
& & & 测试环境:硬件(T9600 CPU 4G内存)软件(Windows 7 64Bit Oracle 11g ArcGIS 10)
& & & 备注:测试结果中时间单位为秒
游标分为类绑定游标: SearchCursor、UpdateCursor、InsertCursor和非类绑定游标:QueryDef Cursor。在使用游标使用过程中经常会遇到如下情况
Public Void test()
workspaceEdit.StartEditOperation();
IQueryFilter queryFilter = new QueryFilter();
queryFilter.WhereClause =
//是否重复绑定游标
ICursor updateCursor = table.Update(queryFilter, true);
comReleaser.ManageLifetime(updateCursor);
int fieldIndex = table.Fields.FindField(&FWMC&);
IRow temp =
while ((temp = updateCursor.NextRow()) != null)
temp.set_Value(fieldIndex, &aaaa&);
updateCursor.UpdateRow(temp);
workspaceEdit.StopEditOperation();
如果选择TRUE,说明使用资源回收游标,但是下一个游标还指向同一个内存地址,如果是FALSE,说明资源回收游标和内存地址,下一个游标还需要重新分配一个新的内存地址,这样无疑增加了服务器资源的开销,所以没有特殊需求,建议使用TRUE。
关于游标的相关提示:
查询游标(Search Cursor)
在编辑会话中初始化SearchCursor可能导致缓存记录提交到数据库(触发DBMS写操作)
通过SearchCursor获得的行支持Store和Delete操作
更新游标(Update Cursor)
必须使用UpdateCursor提供的的UpdateRow和DeleteRow方法对通过UpdateCursor获得的行进行更新和删除操作
UpdateCursor提供的UpdateRow方法只能针对通过UpdateCursor获得的当前行进行操作
UpdateCursor不支持跨编辑操作使用,打开一个新的编辑操作时必须初始化一个新的更新游标
使用UpdateCursor对复杂要类类进行更新时必须处于一个编辑会话中
插入游标(Insert Cursor)
主要用于批量要素插入
使用缓存,定时调用Flush将缓存写入数据库,调用InsertRow和Flush方法时要捕捉异常
使用InsertCursor时关闭空间缓存
QueryDef 游标
不能针对通过QueryDef Cursor获得的行进行Store和Delete操作
在编辑会话中使用QueryDef Cursor会导致缓存提交到数据库
4:资源回收
尽可能使用Esri提供的MangeLifetime来管理ArcGIS Engine对象的生命周期,系统会自动进行维护,而不需要在使用类似以下方式进行释放资源了。(由于版本原因,可能有所不同)
ESRI.Releaser.ReleaseCOMObject(o);
System.Runtime.InteropServices.Marshal.ReleaseComObject(o);
GC.Collect();
5:如果可能化,使用缓存来提高效率
/// &summary&
/// 执行空间缓存
/// &/summary&
/// &param name=&pFWS&&工作空间&/param&
/// &param name=&pEnv&&缓存区域&/param&
private void SpatialCache(IFeatureWorkspace pFWS, IEnvelope pEnv)
if (m_pWS != null)
ISpatialCacheManager3 pSCM = m_pWS as ISpatialCacheManager3;
if (!pSCM.CacheIsFull)
pSCM.FillCache(pEnv);
//执行空间操作代码
//清空缓存
pSCM.EmptyCache();
更多了解:
6:如果可能的话,尽可能的使用GP工具来代替开发
ArcGIS Desktop的性能无疑是最优化的,而且最大的好处就是实现了用户可以使用的ArcToolbox工具,而且ArcGIS Engine也可以进行调用,比如将一个File Geodatabase导入到ArcSDE 地理数据库中,用户就可以直接使用Copy_Feature工具进行操作。
7:是否必须使用版本化编辑
ArcGIS不仅支持版本编辑,也支持非版本编辑,所以并不是所有情况必须使用版本化编辑,大家都知道注册版本后编辑一段时间会导致效率低下,但是有些用户在一开始接触ArcGIS编辑时只知道必须注册版本才能编辑,但是它的业务情况可能并不需要必须注册版本,比如只是编辑一下属性字段值等情况,所以这个时候可能选择非版本编辑效率更高。
IDatasetEdit
更多参考:
用户也可以查看《Geodatabase高效编程_李圣虎》总结的常见开发错误,都是一些比较典型的可能导致效率的案例。
& & & & & & & & & & & & & & & & & & & & & & & 空间SQL & & & & & & & & & & & & & & & & & & & & &
对空间SQL的开发其实就是用户的SQL语句的基本功是否扎实。
1:SQL语句语法和效率
在SQL中,索引是提高查询效率的必要条件,尤其是WHERE子句的查询字段必须要创建索引才能提高查询效率,如果没有WHERE条件在查询中使用了MIN、MAX、COUNT函数的字段也需要创建索引。还有很多情况用户尽管创建了索引对象但效率依然低下,这是因为有些SQL运算符是会将索引失效的。
&使用不等于运算符(&&、!=)
在WHERE中使用不等于条件,将会使索引失效。
使用 IS NULL或IS NOT NULL
在WHERE子句中使用IS NULL或者IS NOT NULL同样会限制索引的使用。如果被索引的列在某些行中存在NULL值,在索引列中就不会有相应的条目。(例外:位图索引对于NULL列也会进行记录,因此位图索引对于NULL搜索通常较为快速)。
如果不使用基于函数的索引,那么在SQL语句的WHERE子句中对存在索引的列使用函数时,会使优化器忽略掉这些索引。一些常见的函数:TRUNC、SUBSTR、TO_DATE、TO_CHAR、INSTR等,都可能会使索引失效。
比较不匹配的数据类型
这个是比较难于发现的问题。ORACLE不会对不匹配的数据类型报错,ORACLE会隐式地把VARCHAR2列的数据类型转换成要被比较的数值型数据类型。
如果是使用ST_geometry函数的话,还需要注意对ST_Geometry函数的使用
具体可以参考:
2:尽可能的使用存储过程
如果可能的话,尽可能的使用存储过程来代替原始的单个SQL语句,这里面就不再解释存储过程的好处了。
3:使用绑定变量而不是传入固定的值
----------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
Blog: & & & & & & & http://blog.csdn.net/linghe301
----------------------------------------------------------------------------------
& & & & & & & & & & & & & & & & & & & & & & & & 网络因素
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
网络的原因也是用户需要注意的,如果你的网络带宽、延迟都有问题,肯定会影响数据传输的效率的。这里我只是指出这是一个影响因素,因为不专业,所以不去更多的分析这个问题,但是用户需要留意该问题。
----------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
Blog: & & & & & & & http://blog.csdn.net/linghe301
----------------------------------------------------------------------------------
& & & & & & & & & ArcSDE地理数据库因素(以Oracle为例) & & & & & & & & & & & & & & & & & & & & & & & &&
1:空间索引问题
在ArcSDE地理数据库编辑过程中,系统会自动维护该编辑要素对象的空间索引,那么就会耗费一定的服务器资源,特别是在大数据量进行数据插入的过程中,无需进行空间索引的创建,可以等批量插入完成之后,统一创建空间索引,这样无疑就提高了操作效率。
ArcGIS Desktop、ArcToolbox、ArcSDE命令行、Python都提供了管理空间索引的方法,当然ArcGIS Engine也提供了管理空间索引的接口
IFeatureClassLoad.LoadOnlyMode
2:如果进行更新操作,就需要留意索引
用户进行更新,需要先查询出需要更新的要素对象,那么不管是通过属性索引或者空间索引进行查询,都需要这些索引对象有效。
而且在编辑完毕之后,还需要对这些索引对象重新创建,保证新编辑对象的索引更新。
3:数据库归档日志关闭
如果是大数据量插入操作,如果没有特殊要求,可以将Oracle的归档日志进行关闭,因为归档日志主要记录数据的更高,特别是数据的修改和删除,对数据新增操作其实无需打开数据库归档,如果打开,系统会在批量新增数据的同时,写入大量的归档日志信息,也无疑也会降低编辑效率。
4:禁用表空间日志
虽然数据库的归档日志禁用之后,只是说数据库不再产生具体的归档日志文件,但是还需要进行非归档的循环日志写入,那么如果完全禁用日志的生成,需要禁用操作用户的表空间日志,这样在插入数据之后,系统就会记录比较少的日志信息。
启用日志(Logging):用户进行表创建、索引创建、分区以及后续插入等操作产生REDO日志,作为数据恢复的依据。
禁用日志(No Logging):以上相关操作不会产生REDO日志,进而也不能进行数据恢复,但是数据加载效率会大幅度提高。
注意:这些操作是用户进行大数据量新增条件下,而且具有Oracle数据库知识的用户操作。
操作示例:
1:禁用归档日志
sqlplus / as sysdba
select flashback_on from v$
2:禁用表空间日志
sqlplus /nolog
select 'ALTER TABLESPACE ' || CHR(34) || NAME || CHR(34) || 'NOLOGGING;'
FROM V$TABLESPACE
WHERE NAME NOT IN ('SYSTEM','SYSAUX','USERS','TEMP','UNDOTBS1')ORDER BY NAME;
ALTER TABLESPACE &PM_BDATA& NOLOGGING;
ALTER TABLESPACE &PM_BINDEX& NOLOGGING;
ALTER TABLESPACE &PM_BDATA_TOPO& NOLOGGING;
3:当用户只需完毕之后,在进行表空间日志启用和归档日志的启用即可。
4:启用表空间日志
sqlplus /nolog
select 'ALTER TABLESPACE ' || CHR(34) || NAME || CHR(34) || 'LOGGING;'
FROM V$TABLESPACE
WHERE NAME NOT IN ('SYSTEM','SYSAUX','USERS','TEMP','UNDOTBS1')ORDER BY NAME;
ALTER TABLESPACE &PM_BDATA& LOGGING;
ALTER TABLESPACE &PM_BINDEX& LOGGING;
ALTER TABLESPACE &PM_BDATA_TOPO& LOGGING;
5:启用归档日志
sqlplus / as sysdba
alter system set db_recovery_file_dest_size=10G scope=
alter system setdb_recovery_file_dest='C:\oradata\flash_recovery_area' scope=
alter system setlog_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST' scope=
select flashback_on from v$
5:版本编辑的状态压缩
这个问题我就不再赘述了,该博客无数次提及这个问题,感兴趣的用户可以在本博客搜索“版本压缩”或者“Compress”。
6:Oracle参数
比如足够大的SGA和PGA,典型Oracle参数的设置如Open_Cusors、db_writer_processes等
7:其他因素
当然,如果用户的硬件环境足够好,比如数据与索引分开存储、分区表、RAC架构等也会为批量写入数据提高效率。
注意;严格禁止用户在OLTP环境下使用Oracle的并行计算,因为这样会严重造成资源占用问题。
----------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
Blog: & & & & & & & http://blog.csdn.net/linghe301
----------------------------------------------------------------------------------
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致提高Arcsde for oracle性能需要考虑的几个方面_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
提高Arcsde for oracle性能需要考虑的几个方面
上传于||文档简介
&&影​响​A​r​c​S​D​E​性​能​的​因​素​很​多​,​但​是​归​根​到​底​包​括​两​个​方​面​,​后​台​的​O​r​a​c​l​e​和​A​r​c​S​D​E​的​配​置​。
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢1389人阅读
ArcSDE(193)
Oracle(106)
用户典型问题(98)
ArcGIS Bug(17)
ST_Geometry(30)
Oracle11g(20)
Article ID:42983Software:&ArcSDE&10.1, 10.2, 10.2.1, 10.2.2&ArcGIS for Desktop Advanced&10.1, 10.2, 10.2.1, 10.2.2, 10.1 SP1, 10.3&ArcGIS for Desktop Standard&10.1, 10.2, 10.2.1, 10.2.2, 10.1 SP1, 10.3&ArcGIS for Desktop Basic&10.1, 10.2, 10.2.1, 10.2.2, 10.1 SP1, 10.3Platforms:N/AQuestionIn Oracle, why does it take a long time to build statistics on large ST_GEOMETRY data?在Oracle数据库中,为什么对大数据量(ST_Geometry)创建统计信息会消耗非常长的时间?AnswerAttempting to use the ArcCatalog 'Analyze...' command or gathering table statistics in SQL*Plus for a feature class using ST_GEOMETRY in Oracle can take a very long time to complete.&不管是使用ArcCatalog的分析功能(Analyze)或者是使用Oracle提供的统计信息的存储过程dbms_stats.gather_table_stats都会消耗非常长的时间Example&SQL*Plus example:
set timing on
exec dbms_stats.gather_table_stats('BEN','ROADS_1M')
PL/SQL procedure successfully completed.
43:36:39.79
SQL to identify the poorly performing query :
SELECT se.sid,se.username,sa.sql_text
FROM v$session se, v$sqlarea sa
WHERE se.sql_address=sa.address
AND se.sql_hash_value=sa.hash_
Poorly Performing Query :
SELECT /*+ no_parallel(b) no_parallel_index(b)
dbms_stats cursor_sharing_exact use_weak_name_resl
dynamic_sampling(0) no_monitoring
*/ dbms_rowid.rowid_block_number(b.rowid)
(SELECT s.sp_id, s.gx, s.gy, row_number()
( Partition BY s.sp_id ORDER BY s.gx, s.gy) rncol
FROM BEN.S57_IDX$ s) sp, BEN.ROADS_1M b
WHERE rncol = 1 AND b.rowid = sp.sp_id
ORDER BY sp.gx, sp.gy, sp.sp_idThis behavior has been identified to occur in versions of Oracle prior to 11.2.0.4.0. Esri recommends using Oracle versions 11.2.0.4.0 or above, which use a better execution plan than previous Oracle releases, and this in turn improves the statistics building process.&这种情况会在Oracle 11.2.0.4以前的版本发生,Esri建议如果需要解决该问题,升级你的Oracle版本11.2.0.4或者以上,在该环境下可以提高相关的执行效率.If this behavior is encountered, consider upgrading the Oracle instance to a minimum version of 11.2.0.4.0 or 12.1.0.1.0.如果有用户碰到相关问题,建议升级Oracle版本11.2.0.4或者12.1.0.1Bug NIM-084365Nimbus ID&NIM084365Submitted&Sep 4,
AMSeverity&MediumApplies To&ArcGISVersion Found&10.0Prog Language&N/AServer Platform&AllClient Platform&All WindowsDatabase&OracleLocale&N/AStatus&DeclinedVersion Fixed&N/ASP Fixed&N/ASynopsisGathering table statistics using Oracle DBMS_STATS.GATHER_TABLE_STATS generates high CPU usage and runs very slow for large SDE layers with ST_GEOMETRY data type.Additional Status InformationN/AAlternate SolutionN/A----------------------------------------版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!建议看到转载,请直接访问正版链接获得最新的ArcGIS技术文章Blog: & & & & & & &&&&&&&&&&&&&&&&& 欢迎添加微信公众号:ArcGIS技术分享(arcgis_share),直接回复1就可以在移动端获取最新技术文章----------------------------------------
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1687132次
积分:20481
积分:20481
排名:第291名
原创:341篇
评论:876条
(1)(6)(14)(14)(4)(4)(5)(5)(5)(8)(4)(7)(9)(3)(2)(6)(6)(5)(2)(7)(5)(5)(7)(6)(7)(6)(10)(8)(12)(10)(12)(7)(6)(7)(5)(5)(10)(7)(12)(4)(9)(7)(8)(9)(13)(4)(10)(8)(19)(8)(8)(5)3196人阅读
性能优化(53)
ArcSDE(193)
SQLServer(24)
用户典型问题(98)
ArcGIS10(17)
前两天有一个用户咨询一个性能的问题:用户的环境:ArcGIS Desktop10、SQL Server2008 SP1、ArcSDE10(SP5补丁),数据为只读数据。1:都是以MXD形式打开,有相关的符号(简单符号),同一个数据库中不同的数据集,一个数据集的浏览速度快,另一个数据集的浏览速度慢。2:另一个比较慢的MXD,在1:5W以上浏览速度快,在1:5W以下浏览速度慢。猛的一块,感觉非常蹊跷,但是可以得出相关结论:1:同一个数据库,有性能差别,肯定不是数据库本身的问题2:不同的MXD有性能区别,重点检查MXD的问题。一般情况下,已有性能的问题,我们首先需要查看的是空间索引。但是观察了两个性能不同要素类的空间索引,发现有所不同1:性能比较好的上面的数据使用ArcSDE for SQL Server的BLOB存储,也就是直接使用Default关键字以二进制格式存储在 SQL Server 数据库中的要素类SQL Server 内地理数据库中以二进制格式(ArcSDE 压缩二进制或 OGC 熟知二进制几何表示)存储的要素类由基表和相关联的要素表和空间索引表(如下所述)组成。2:性能比较差的上面的数据是使用SQLServer2008的GEOMETRY进行存储。使用 Microsoft 几何或地理类型存储在 SQL Server 数据库中的要素类默认情况下,存储在 SQL Server 数据库中的地理数据库使用 Microsoft 几何存储类型来存储要素。还可以使用 Microsoft 地理存储类型。使用这些存储类型之一的要素类具有基表。基表中包含类型为 GEOMETRY 或 GEOGRAPHY 的列,用于存储要素类几何;不存在关联的要素表。基表是用于存储属性的 DBMS 表,而且可通过添加空间列的方式实现空间化。基表名称为要素类的名称。使用几何存储或地理存储的要素类表还具有关联的系统表(GDB_ITEMS、SDE_spatial_references、SDE_table_registry、SDE_column_registry、SDE_geometry_columns 和 SDE_layers)及关联的视图。.最后了解到,用户需要使用SQL直接操作要素类。所以采用Geometry存储。ArcSDE for SQLServer的GEOMETRY和GEOGRAPHY存储介绍 - ArcGIS技术研究 - 博客频道 - CSDN.NET 然后在针对性能比较差的MXD,已经排除了符合问题,标注问题,发现有一个将近470000记录的线要素类导致速度比较慢。47W要素类BLOB存储:浏览速度1s左右47W要素类GEOMETRY存储:浏览速度5s左右,而且服务器的sqlserver.exe的CPU占用率猛增到99%,而且在大比例下浏览效率依然非常低。而且用户的MXD设置了可见比例尺,在1:50000比例尺下显示该图层,所以出现上面所述,大于1:5W比例尺就慢,反之就快。而且重建了使用Geometry存储的要素类的索引,依然没有什么效果。感觉是在进行全图的扫描,而且建立索引和删除索引的效果基本一样。SQL Server 支持空间数据(Geometry和Geography)的空间索引概述 - ArcGIS技术研究 - 博客频道 - CSDN.NET 得出结论:SQL Server 2008 SP1在使用BLOB存储和使用SQL Server默认存储方法有性能差别。如果用户选择了SQL Server 2008 SP1数据库,如果存储ArcSDE10里面的要素类有大数据量的线数据或者面数据,建议使用ArcSDE默认的BLOB存储。但是ArcSDE10.1没有这个问题。如果使用SQL Server2008 R2没有这个问题(其实ArcSDE10的系统需求,只支持SQL Server2008 R2)解决方案:但是如果,用户希望使用SQL Server的默认空间存储,该怎么解决呢?我们可以使用ArcMap自带的要素缓存(feature cache)工具来解决,先全图构建要素缓存,这样的话就可以进行高效的浏览了。相关帮助参考:如果用户需要使用SQLServer 2008 SP1默认存储,而且不想使用要素缓存,另外一种解决方法:修改max degree of parallelism值参考Esri的技术文章,也有可能是多核CPU导致的该问题Reduced spatial query performance on multiprocessor servers running SQL Server 2008&Bug ID: 625896&分析以上问题,有可能是使用SQL Server2008 SP1的Geography存储之所以慢就是没有走空间索引,尽管使用桌面查看Index信息是有的。那么可以使用以下方法来修改。(修改完毕之后,在SQL Server2008 Sp1的Geography存储浏览速度没有任何问题)配置 max degree of parallelism 服务器配置选项本主题说明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中配置&max degree of parallelism&服务器配置选项。当 SQL Server 实例在具有多个微处理器或 CPU 的计算机上运行时,它将为每个并行计划的执行检测最佳并行度(即运行一个语句所使用的处理器数)。&您可以使用&max degree of parallelism&选项来限制并行计划执行时所用的处理器数。&SQL Server 考虑为查询、索引数据定义语言 (DDL) 操作、静态的和由键集驱动的游标填充实施并行执行计划。此选项是一个高级选项,仅应由有经验的数据库管理员或认证的 SQL Server 技术人员更改。若要使服务器能够确定最大并行度,请将此选项设置为默认值 0。&若将 maximum degree of parallelism 设置为 0,SQL Server 将能够使用至多 64 个可用的处理器。&若要取消生成并行计划,请将&max degree of parallelism&设置为 1。&将该值设置为 1 到 32,767 之间的数值来指定执行单个查询所使用的最大处理器核数。&如果指定的值比可用的处理器数大,则使用实际可用数量的处理器。&如果计算机只有一个处理器,将忽略max degree of parallelism&值。您可以通过在查询语句中指定 MAXDOP 查询提示来覆盖查询中的 max degree of parallelism 值。&有关详细信息,请参阅&。索引操作(如创建或重新生成索引、或删除聚集索引)可能会大量占用资源。&您可以通过在索引语句中指定 MAXDOP 索引选项来覆盖索引操作的 max degree of parallelism 值。&MAXDOP 值在执行时应用于语句,但不存储在索引元数据中。&有关详细信息,请参阅&。除了查询和索引操作之外,此选项还控制 DBCC CHECKTABLE、DBCC CHECKDB 和 DBCC CHECKFILEGROUP 的并行。&使用跟踪标志 2528,可以禁用为这些语句所做的并行执行计划。&有关详细信息,请参阅&。在“对象资源管理器”中,右键单击服务器并选择“属性”。单击“高级”节点。在“最大并行度”框中,选择执行并行计划时所使用的最大处理器数。话题延伸:使用SQL Server数据库还是有不少Bug和问题的,大家可以参考一下:Bug NIM-082298Nimbus ID&NIM082298Submitted&Jun 29,
AMSeverity&MediumApplies To&ArcGISVersion Found&10.1Prog Language&N/AServer Platform&All WindowsClient Platform&WindowsDatabase&SQL Server 2008 R2Locale&N/AStatus&DuplicateVersion Fixed&N/ASP Fixed&N/ASynopsisFor certain feature classes, GEOMETRY spatial type takes longer to draw in arcmap compared to SDEBINARY spatial type.Additional Status InformationDuplicate of NIM082657Alternate SolutionN/A________________________________________________________________________________________-Bug NIM-082657Nimbus ID&NIM082657Submitted&Jul 11,
PMSeverity&MediumApplies To&ArcGISVersion Found&10.1Prog Language&N/AServer Platform&All WindowsClient Platform&All WindowsDatabase&SQL ServerLocale&N/AStatus&ResolvedVersion Fixed&10.2SP Fixed&10.2SynopsisWhen working with an SQL Server 2012 geodatabase and Geometry or Geography type data, ArcMap drawing performance is slower than it was using SQL Server 2008. This affects all rendering and editing operations.Additional Status InformationN/AAlternate SolutionN/A-------------------------------------------------------------------------------------------------------版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!-------------------------------------------------------------------------------------------------------
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1687134次
积分:20481
积分:20481
排名:第291名
原创:341篇
评论:876条
(1)(6)(14)(14)(4)(4)(5)(5)(5)(8)(4)(7)(9)(3)(2)(6)(6)(5)(2)(7)(5)(5)(7)(6)(7)(6)(10)(8)(12)(10)(12)(7)(6)(7)(5)(5)(10)(7)(12)(4)(9)(7)(8)(9)(13)(4)(10)(8)(19)(8)(8)(5)

我要回帖

更多关于 arcsde连接oracle11g 的文章

 

随机推荐