DB2查询速度
Speed of DB2 query
我有一个 DB2 过程,它 运行 是一个非常冗长的 SELECT
查询(6 个 CTE 涉及大约 5 或 6 个不同的表,一些是旋转的,很少有连接)。我以 "admin" 用户身份登录 System i Navigator
。该用户帐户基本上有权执行所有操作。我的个人用户名没有。所以我用这个登录,方便自己。
当我运行这个程序时(通过打开SQL脚本window并输入CALL Procedure_Name('Param1');
),处理在4或5秒内完成。
我的老板以他自己的用户名登录了他的 i Navigator
。他的用户名比我的个人帐户拥有更多权力,但比我使用的管理员帐户少。当他 运行 以与我相同的方法执行相同的过程时,运行 大约需要 15-20 秒。
所以我的问题是,您登录的用户名是否会影响 DB2 查询 运行s 的速度?如果是这样,我要更改什么以使所有用户的查询速度 运行 相同,最好是管理员帐户 运行 的速度?
使用 运行 SQL 脚本中的 "Run & Explain"(最好是 Access Client Solutions (ACS) 中包含的最新版本,而不是旧的 IBM i Access for Windows i 导航版)
比较不同用户配置文件的结果。特别是 INI 选项部分...听起来好像优化目标可能不同。
*FIRSTIO
表示数据库将尽快选择最有效的计划来 return 前几条记录;如果用户正在等待在屏幕上看到一些东西,这是完美的。 *ALLIO
表示数据库将为 returning 所有记录选择最有效的计划;非常适合无论如何都会检索所有记录的批处理(或客户端应用程序)。
另请查看环境信息部分
如果一个用户 运行 在不同的内存池 and/or 工作负载组 and/or 中,这将向您显示在一个用户 运行 时可用内存有显着差异。
我有一个 DB2 过程,它 运行 是一个非常冗长的 SELECT
查询(6 个 CTE 涉及大约 5 或 6 个不同的表,一些是旋转的,很少有连接)。我以 "admin" 用户身份登录 System i Navigator
。该用户帐户基本上有权执行所有操作。我的个人用户名没有。所以我用这个登录,方便自己。
当我运行这个程序时(通过打开SQL脚本window并输入CALL Procedure_Name('Param1');
),处理在4或5秒内完成。
我的老板以他自己的用户名登录了他的 i Navigator
。他的用户名比我的个人帐户拥有更多权力,但比我使用的管理员帐户少。当他 运行 以与我相同的方法执行相同的过程时,运行 大约需要 15-20 秒。
所以我的问题是,您登录的用户名是否会影响 DB2 查询 运行s 的速度?如果是这样,我要更改什么以使所有用户的查询速度 运行 相同,最好是管理员帐户 运行 的速度?
使用 运行 SQL 脚本中的 "Run & Explain"(最好是 Access Client Solutions (ACS) 中包含的最新版本,而不是旧的 IBM i Access for Windows i 导航版)
比较不同用户配置文件的结果。特别是 INI 选项部分...听起来好像优化目标可能不同。
*FIRSTIO
表示数据库将尽快选择最有效的计划来 return 前几条记录;如果用户正在等待在屏幕上看到一些东西,这是完美的。 *ALLIO
表示数据库将为 returning 所有记录选择最有效的计划;非常适合无论如何都会检索所有记录的批处理(或客户端应用程序)。
另请查看环境信息部分
如果一个用户 运行 在不同的内存池 and/or 工作负载组 and/or 中,这将向您显示在一个用户 运行 时可用内存有显着差异。