【问题标题】:Translating concepts from SQL Server to DB2将概念从 SQL Server 转换为 DB2
【发布时间】:2015-09-06 15:42:36
【问题描述】:

我希望能引起在 SQL Server 和 DB2 方面都有经验的人的注意。我想我会问是否有人可以从他们的头顶评论这些。以下是 SQL Server 的特性列表,我也想用 DB2 来做这些特性。

  1. 配置选项“针对临时工作负载进行优化”,将首次查询计划保存为存根,以避免来自繁重的一次性查询的内存压力(尤其适用于极端数量的参数化查询)。什么(如果有的话)是 DB2 的等价物?

    类似地,SQL Server 配置选项自动创建统计信息自动更新统计信息异步自动更新统计信息的等效项是什么>。哪些对于创建和维护适当的统计数据而不会在工作时间造成过多开销至关重要?

  2. 索引。用于索引维护的 MSSQL 标准是 REORGANIZE 当碎片在 5 - 35% 之间时,REBUILD(技术上与 DROP & RECREATE 相同)当碎片超过 35% 时。同样重要的是,MSSQL 支持在线索引重建,这使得相关数据可以通过读/写操作访问。与 DB2 有什么相似之处吗?

  3. 统计数据。在 SQL Server 中,标准的统计信息更新过程在较大的数据库中几乎毫无用处,因为采样率太低了。 DB2 中是否有与 UPDATE STATISTICS X WITH FULLSCAN 等效的功能,或者类似的功能考虑?

    在 MSSQL 中,REBUILD 索引操作还完全重新创建底层统计信息,这对于维护操作很重要,以避免重叠统计信息维护。在大型数据库中更新统计信息的最佳方法还包括基于每个统计信息来定位它们,因为全表统计信息维护可能非常繁重,例如,当实际上只需要更新表上的几十个统计信息中的几个时。这与 DB2 有什么关系?

  4. 显示执行计划是一个非常有用的工具,用于分析 SQL Server 的特定查询和潜在的索引/统计问题。与 DB2 一起使用的最佳类似方法是什么(解释工具?或其他)?

  5. 寻找瓶颈:SQL Server 有sys.dm_exec_query_statssys.dm_exec_sql_text 等系统视图,非常容易查看需要调整或适当索引的运行最多、资源最密集(例如逻辑读取次数)的查询。 DB2 中是否有等效的查询可用于以清晰易懂的方式立即识别问题?

所有这些问题都代表了 SQL Server 数据库的许多问题。我想把这些知识转化为 DB2。

【问题讨论】:

  • 什么平台和版本的 DB2?这会有所作为。
  • Linux。道歉,甚至没有意识到这也是相关的。我只是那个习惯了SQL Server。

标签: sql sql-server db2


【解决方案1】:

我假设这是关于 DB2 for Linux、Unix 和 Windows 的。

配置选项“针对临时工作负载进行优化”,它将首次查询计划保存为存根,以避免来自繁重的一次性查询的内存压力(特别适用于极端数量的参数化查询)。什么(如果有的话)是 DB2 的等价物?

没有等价物; DB2 将从包缓存中逐出最近最少使用的计划。可以为包缓存启用自动内存管理,其中 DB2 将按需增长和缩小它(当然要考虑其他内存使用者)。

SQL Server 配置选项自动创建统计信息、自动更新统计信息和异步自动更新统计信息的等效项是什么。

数据库配置参数auto_runstats and auto_stmt_stats

索引维护的 MSSQL 标准是当碎片在 5 - 35% 之间时 REORGANIZE,当碎片超过 35% 时 REBUILD(技术上与 DROP & RECREATE 相同)。同样重要的是,MSSQL 支持在线索引重建

您可以选择自动重组表(包括索引);没有记录触发阈值。此外,您还有一个REORGCHK 实用程序,可以计算和打印一些统计信息,让您可以决定要手动重组哪些表/索引。表和索引重组都可以在线执行,具有只读或完全访问权限。

在 DB2 中是否有与 UPDATE STATISTICS X WITH FULLSCAN 等效的功能,或者类似的功能考虑? ...在大型数据库中更新统计信息的最佳方法还包括基于每个统计信息来定位它们,因为全表统计信息维护可能非常繁重,例如,实际上只需要在一个表上的几十个统计信息中的几个更新。

您可以配置自动统计收集以使用或不使用采样(配置参数auto_sampling)。使用 RUNSTATS 实用程序手动更新统计信息时,您可以完全控制样本大小和要收集的统计信息。

显示执行计划是分析特定查询和 SQL Server 潜在索引/统计问题的宝贵工具。与 DB2 一起使用的最佳类似方法是什么

您拥有 GUI(Data Studio、Data Server Manager)和命令行(db2explndb2exfmt)工具来生成查询计划,包括包缓存中或当前正在执行的语句的计划。

查找瓶颈:SQL Server 具有系统视图,例如 sys.dm_exec_query_stats 和 sys.dm_exec_sql_text,这使得查看需要运行最多且资源最密集(例如逻辑读取次数)的查询变得非常容易调音

有大量的监控程序、视图和表格功能,例如MONREPORT.DBSUMMARY()TOP_DYNAMIC_SQLSNAP_GET_DYN_SQLMON_CURRENT_SQLMON_CONNECTION_SUMMARY

【讨论】:

  • “针对临时工作负载进行优化”听起来像 DB2 语句集中器,其中某个查询只编译一次,然后为类似查询采用查询计划。作为副作用,包缓存将包含更少的单个查询计划。
  • 这是很棒的东西。肯定会帮助我开始。如果您对特定于 DB2 的大型 DB 的一般优化有任何其他想法,也请分享!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多