DB2之动态sql

DB2中记录了sql的执行次数和平均时长,执行总时长以及CPU时间。

但是,这些数据是多长时间内的呢?

  1. 这些数据仅仅是记录在内存中的,重启数据库就没有了,也就是说,数据是从启动数据库开始的
  2. 鉴于内存大小的限制,动态sql也不可能保存启动数据库以来所有的sql的统计信息,那么是保存最近多长时间或多少条sql的记录吗?
    1. 应该都不是,仅仅和分配的内存大小有关系,查看分配的内存大小:

      默认是4K的内存
    2. 如果空间用完后,新的sql进来的话,会如何处理呢?
      1. 如果新的sql已经存在在内存中,则仅仅修改已有记录的执行次数、执行时间等值就行了,不需要新的空间
      2. 如果是一个全新的sql,则直接丢弃?
    3. 如何查看动态sql内存的使用情况?
      1. 通常情况下,数据库中的sql类型是非常有限的,都记录下来是可能的
  3. 动态sql的信息
    1. 动态sql记录的是执行次数、平均执行时间,并不记录某次的慢查询,如果偶尔又一次10s的查询,但是有1000次的查询都在1ms以内,那么,平均查询时间在10ms以内,这样的话,10s的那次慢查询是被淹没了的,如何发现10s的那次慢查询呢?

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据