一起统计信息引起的血案
来源:互联网 发布:tplink路由器端口转发 编辑:程序博客网 时间:2024/05/09 09:17
昨晚通宵不说,刚睡下床,电话响了,一个项目运维反馈说有个功能历史记录查询十分缓慢,程序接口返回1000s,我去分析数据库时感觉很郁闷上去查看,查看执行计划看了,创建了组合索引,因为这两列没走索引,但SQL依然慢,断续分析,目前最大的表是T_SESSIONS有一千6百多万数据,记得以前优化过SQL执行计划返回错误的行数,恍然大悟。
1:通过分析得知T_SESSIONS此表没收集过统计信息。
2:收集T_SESSIONS统计信息:
BEGIN
DBMS_STATS.GATHER_TABLE_STATS(ownname => 'ROBINSON',
tabname => 'P_TEST',
estimate_percent => 30,
method_opt => 'for all columns size repeat',
no_invalidate => FALSE,
degree => 8,
granularity => 'ALL', --所有分区都收集
cascade => TRUE);
END;
/
DBMS_STATS.GATHER_TABLE_STATS(ownname => 'ROBINSON',
tabname => 'P_TEST',
estimate_percent => 30,
method_opt => 'for all columns size repeat',
no_invalidate => FALSE,
degree => 8,
granularity => 'ALL', --所有分区都收集
cascade => TRUE);
END;
/
3:查看收集统计后的信息
4:查看执行计划
未收集统计信息前:
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
1567673 consistent gets
281309 physical reads
0 redo size
2184 bytes sent via SQL*Net to client
520 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
2 sorts (memory)
0 sorts (disk)
11 rows processed
收集统计信息后:
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
1954 consistent gets
0 physical reads
0 redo size
2041 bytes sent via SQL*Net to client
520 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
10 rows processed
通过执行SQL: 0.8秒出结果 ^_^|||
0 0
- 一起统计信息引起的血案
- 一起由回调函数引起的血案
- 统计信息被锁定引发的血案
- 房价引起的血案
- 一句话引起的血案
- 一个ID引起的血案
- 一个笔误引起的血案
- 一个引号引起的血案
- 死循环引起的血案
- 一个斜杠引起的血案
- 易语言4.13引起的血案
- NaN引起的血案(C语言)
- 重装Oracle引起的血案…
- process太大引起的另类血案
- 一个变量定义引起的血案
- ulimit -t 引起的kill血案
- 字节对齐方式引起的血案
- 【jsp勘误】一个return引起的血案
- OpenGL基本概念入门5----纹理贴图1…
- 打造最安全的Nginx Web服务器
- 【转】VBO, PBO与FBO
- java谨记
- 【转】Ogre 场景
- 一起统计信息引起的血案
- 《古城一角》demo,ogre引擎与IOS…
- 百度空间新版本
- 还是关于vector
- MKMapView的使用 和 uitableview的…
- (转)【GLSL教程】(五)卡通着色
- Opengl的顶点数组和VBO在OGRE中的…
- 键盘按键的虚键Virtual Keys和ASCII码表
- 通过分类组别显示输出