与Anydac结合使用时,Informix数据库速度极慢

时间:2011-05-26 04:58:27

标签: delphi optimization delphi-2010 informix anydac

我们的应用程序面临真正的性能问题,因为我们将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以尝试改善效果,但它没有帮助。

1 个答案:

答案 0 :(得分:1)

  1. 此问题在很多版本之前已经解决(我认为在v 4.0.1中)。因此,如果您没有使用最新的AnyDAC版本,请考虑升级。
  2. 考虑从FetchOptions.Items中删除fiMeta并设置不同的FetchOptions.CursorKind。
  3. PS:总的来说,为了帮助解决这些问题,我需要AnyDAC,Informix服务器,Informix ODBC驱动程序和Delphi版本。此外,表DDL和简单的测试应用程序也会有所帮助。