【发布时间】:2011-05-26 04:58:26
【问题描述】:
自从我们迁移到 AnyDac 作为 BDE 的替代方案后,我们的应用程序面临着真正的性能问题。
该应用程序支持多个数据库,因此 SQLSrvr 和 Oracle 等其他数据库运行良好,但从那时起 Informix 变得非常缓慢。可以预见,由于 ODBC 驱动程序,它会变慢一些,但它太慢了,我们怀疑它可能是 AnyDac (ADConnectionDefs.ini) 的配置问题。
有没有其他人遇到过这样的问题?
根据 da-soft 请求添加更多信息
- 我们使用的是 anydac 版本 4.0.7.1723
- 我们的 Informix ODBC 驱动程序是 v3.7
- 数据库服务器是 Informix-11
- Informix 配置别名如下:
Server=
Database=
User_name=informix
Password=
DriverID=ODBC
DataSource=ODBC_Informix_Alias
MetaDefSchema=informix
FetchOptions.RowSetSize=1000
MonitorBy=
FetchOptions.AssignedValues=[evMode, evItems, evCache, evAutoClose, evRecordCountMode,
evCursorKind, evRowsetSize]
FetchOptions.Items=[fiBlobs]
FetchOptions.Cache=[fiBlobs, fiMeta]
FetchOptions.Mode=fmAll
FetchOptions.CursorKind=ckDefault
FetchOptions.AutoClose=False
FetchOptions.RecordCountMode=cmVisible
FormatOptions.AssignedValues=[fvMapRules, fvMaxBcdPrecision, fvMaxBcdScale, fvSE2Null]
FormatOptions.OwnMapRules=True
FormatOptions.MaxBcdPrecision=2147483647
FormatOptions.MaxBcdScale=2147483647
FormatOptions.StrsEmpty2Null=True
ResourceOptions.MacroExpand=False
ResourceOptions.EscapeExpand=False
ResourceOptions.MacroCreate=False
ResourceOptions.ParamCreate=True
ResourceOptions.ParamExpand=True
ResourceOptions.DirectExecute=True
ResourceOptions.AssignedValues=[rvMacroCreate, rvMacroExpand, rvParamCreate, rvParamExpand, rvEscapeExpand, rvDirectExecute]
FormatOptions.MapRules=<
item SourceDataType = dtBCD TargetDataType = dtDouble end
item SourceDataType = dtInt64 TargetDataType = dtDouble end
item SourceDataType = dtDateTimeStamp TargetDataType = dtDateTime end
item SourceDataType = dtByte TargetDataType = dtInt16 end item end >
添加了FetchOptions.RowSetSize=1000 行以尝试提高性能,但没有帮助。
【问题讨论】:
-
我认为 AnyDAC 论坛是提问的好地方 - da-soft.com/forums/anydac-general-english.html
-
我对 AnyDAC 的体验是它具有出色的性能,所以我一直在寻找 Informix 的问题。我找到了da-soft.com/blogs/anydac-2.0-informix.html。不多,但也许这可以帮助你。
-
@Branko:感谢您的回答(评论),我们将在 anydac 论坛中提问,我想可能有人有同样的问题,如果我从 anydac 那里得到答案,我也会在这里发布。
-
一般评论:不要让用户以
informix的身份连接到您的 Informix 数据库;这是一项巨大的安全责任。我假设您出于安全原因省略了密码;真实系统中是有密码的,不是吗?以informix身份连接就像始终以root(或系统管理员)身份登录。除此之外,这意味着最轻微的滑倒可能是致命的,因为用户是无所不能的,可以毫无限制地造成各种伤害。
标签: delphi optimization delphi-2010 informix anydac