asp.net – 来自.Net iSeries Provider的AS 400性能

前端之家收集整理的这篇文章主要介绍了asp.net – 来自.Net iSeries Provider的AS 400性能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,我不是AS 400的人.所以请原谅我在这里问任何无用的问题.

基本上,我正在开发一个.Net应用程序,需要访问AS400以获取一些实时数据.虽然我有系统工作,但我在查询之间得到了非常不同的性能结果.通常,当我在AS400上针对SPROC发出第一个请求时,我看到了大约14秒的时间来获取完整的数据集.在初始呼叫之后,任何后续呼叫通常只需要约1秒钟才能返回.这种性能提升大约需要20分钟左右才能再次使用14秒.

有趣的是,如果存储过程直接在iSeries Navigator上执行,它总是在几毫秒内返回(响应时间没有变化).

我想知道它是否是一个缓存/执行计划问题,但我只能将我的sql SERVER逻辑应用于AS400,这并不总是匹配.

当我使用iSeries数据提供程序用于.Net时,有什么建议可以做些什么来收到更一致的响应时间或只是洞察AS400为什么会以这种方式行事?我应该使用更好的访问方法吗?

以防万一,这是我用来连接AS400的代码

Dim Conn As New IBM.Data.DB2.iSeries.iDB2Connection(ConnectionString)
  Dim Cmd As New IBM.Data.DB2.iSeries.iDB2Command("SPROC_NAME_HERE",Conn)
  Cmd.CommandType = CommandType.StoredProcedure

  Using Conn
   Conn.Open()

   Dim Reader = Cmd.ExecuteReader()
   Using Reader
    While Reader.Read()

               'Do Something

    End While
    Reader.Close()
   End Using

   Conn.Close()
  End Using

编辑:在看了一下这个问题并使用下面的一些评论后,我开始怀疑我是否因为连接池的收益而遇到这个问题?思考?

解决方法

我发现Redbook Integrating DB2 Universal Database for iSeries with Microsoft ADO .NET对于诊断这些问题非常有用.

具体来看客户端和服务器端跟踪以帮助隔离问题.并且不要害怕致电IBM软件支持.他们可以帮助您设置分析以找出问题.

猜你在找的asp.Net相关文章