DB2中记录了sql的执行次数和平均时长,执行总时长以及CPU时间。
但是,这些数据是多长时间内的呢?
- 这些数据仅仅是记录在内存中的,重启数据库就没有了,也就是说,数据是从启动数据库开始的
- 鉴于内存大小的限制,动态sql也不可能保存启动数据库以来所有的sql的统计信息,那么是保存最近多长时间或多少条sql的记录吗?
- 应该都不是,仅仅和分配的内存大小有关系,查看分配的内存大小:
默认是4K的内存 - 如果空间用完后,新的sql进来的话,会如何处理呢?
- 如果新的sql已经存在在内存中,则仅仅修改已有记录的执行次数、执行时间等值就行了,不需要新的空间
- 如果是一个全新的sql,则直接丢弃?
- 如何查看动态sql内存的使用情况?
- 通常情况下,数据库中的sql类型是非常有限的,都记录下来是可能的
- 应该都不是,仅仅和分配的内存大小有关系,查看分配的内存大小:
- 动态sql的信息
- 动态sql记录的是执行次数、平均执行时间,并不记录某次的慢查询,如果偶尔又一次10s的查询,但是有1000次的查询都在1ms以内,那么,平均查询时间在10ms以内,这样的话,10s的那次慢查询是被淹没了的,如何发现10s的那次慢查询呢?