标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-01595 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (103)
- 数据库 (1,768)
- DB2 (22)
- MySQL (77)
- Oracle (1,609)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (166)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (69)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (591)
- Oracle安装升级 (97)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (86)
- PostgreSQL (30)
- pdu工具 (6)
- PostgreSQL恢复 (9)
- SQL Server (32)
- SQL Server恢复 (13)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (39)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (22)
-
最近发表
- ORA-600 kokiasg1故障分析(obj$中核心字典序列全部被恶意删除)
- ORA-00756 ORA-10567故障数据0丢失恢复
- 数据库文件变成32k故障恢复
- tcp连接过多导致监听TNS-12532 TNS-12560 TNS-00502错误
- 文件系统格式化MySQL数据库恢复
- .sstop勒索加密数据库恢复
- 解决一次硬件恢复之后数据文件0kb的故障恢复case
- Error in invoking target ‘libasmclntsh19.ohso libasmperl19.ohso client_sharedlib’问题处理
- ORA-01171: datafile N going offline due to error advancing checkpoint
- linux环境oracle数据库被文件系统勒索加密为.babyk扩展名溯源
- ORA-600 ksvworkmsgalloc: bad reaper
- ORA-600 krccfl_chunk故障处理
- Oracle Recovery Tools恢复案例总结—202505
- ORA-600 kddummy_blkchk 数据库循环重启
- 记录一次asm disk加入到vg通过恢复直接open库的案例
- CHECKDB 发现了 N 个分配错误和 M 个一致性错误
- 达梦数据库dm.ctl文件异常恢复
- Oracle Recovery Tools修复ORA-00742、ORA-600 ktbair2: illegal inheritance故障
- 可能是 tempdb 空间用尽或某个系统表不一致故障处理
- 11.2.0.4库中遇到ORA-600 kcratr_nab_less_than_odr报错
月归档:四月 2011
Mysql执行计划
1、MySQL执行计划调用方式
EXPLAIN SELECT ……
2、执行计划包含的信息
| id | select_type| table | type| possible_keys | key | key_len | ref | rows| filtered | Extra |
2.1、id
包含一组数字,表示查询中执行select子句或操作表的顺序
id相同,执行顺序由上至下
如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行
id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行
2.2、select_type
表示查询中每个select子句的类型(简单 OR复杂)
SIMPLE:查询中不包含子查询或者UNION
PRIMARY:查询中若包含任何复杂的子部分,最外层查询标记为PRIMARY
SUBQUERY:在SELECT或WHERE列表中包含了子查询,该子查询被标记为SUBQUERY
DERIVED:在FROM列表中包含的子查询被标记为DERIVED(衍生)
UNION:若第二个SELECT出现在UNION之后,则被标记为UNION;若UNION包含在FROM子句的子查询中,外层SELECT将被标记为DERIVED
UNION RESULT:从UNION表获取结果的SELECT被标记为UNION RESULT
2.3、type
表示MySQL在表中找到所需行的方式,又称“访问类型”,常见类型如下:
| All | index | range | ref | eq_ref | const,system | null |
由左至右,由最差到最好
2.3.1)ALL:Full Table Scan, MySQL将遍历全表以找到匹配的行
2.3.2)Index:Full Index Scan,index与ALL区别为index类型只遍历索引树
2.3.3)Range:索引范围扫描,对索引的扫描开始于某一点,返回匹配值域的行,常见于between、<、>等的查询
2.3.4)Ref:非唯一性索引扫描,返回匹配某个单独值的所有行。常见于使用非唯一索引即唯一索引的非唯一前缀进行的查找
2.3.5)Eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配;常见于主键或唯一索引扫描
2.3.6)Const、system:当MySQL对查询某部分进行优化,并转换为一个常量时,使用这些类型访问;如将主键置于where列表中,MySQL就能将该查询转换为一个常量,system是const类型的特例,当查询的表只有一行的情况下,使用system
2.3.7)NULL:MySQL在优化过程中分解语句,执行时甚至不用访问表或索引
2.4、possible_keys
指出MySQL能使用哪个索引在表中找到行,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用
2.5、 key
显示MySQL在查询中实际使用的索引,若没有使用索引,显示为NULL
Note:查询中若使用了覆盖索引,则该索引仅出现在key列表中
2.6、key_len
表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度
Note:key_len显示的值为索引字段的最大可能长度,并非实际使用长度,即key_len是根据表定义计算而得,不是通过表内检索出的
2.7、ref
表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值
2.8、rows
表示MySQL根据表统计信息及索引选用情况,估算的找到所需的记录所需要读取的行数
2.9、Extra
2.9.1)Using index
该值表示相应的select操作中使用了覆盖索引(Covering Index)
覆盖索引(Covering Index):MySQL可以利用索引返回select列表中的字段,而不必根据索引再次读取数据文件
2.9.2)Using where
表示MySQL服务器在存储引擎受到记录后进行“后过滤”(Post-filter),如果查询未能使用索引,Using where的作用只是提醒我们MySQL将用where子句来过滤结果集
2.9.3)Using temporary
表示MySQL需要使用临时表来存储结果集,常见于排序和分组查询
2.9.4)Using filesort
MySQL中无法利用索引完成的排序操作称为“文件排序”
3、MySQL执行计划的局限
3.1)EXPLAIN不会告诉你关于触发器、存储过程的信息或用户自定义函数对查询的影响情况
3.2)EXPLAIN不考虑各种Cache
3.3)EXPLAIN不能显示MySQL在执行查询时所作的优化工作
3.4)部分统计信息是估算的,并非精确值
3.5)EXPALIN只能解释SELECT操作,其他操作要重写为SELECT后查看执行计划
发表在 MySQL
评论关闭
oracle 跟踪会话
一、跟踪自己的会话或者是别人的会话
1、跟踪自己的会话很简单
Alter session set sql_trace true|false;
或者
exec dbms_session.set_sql_trace(true/false);
2、如果跟踪别人的会话,需要调用一个包
exec dbms_system.set_sql_trace_in_session(sid,serial#,true|false);
二、整个数据库系统跟踪
1、开启会话跟踪
alter system set events
’10046 trace name context forever,level 1′;
2、关闭会话跟踪
alter system set events
’10046 trace name context off’;
3、跟踪会话级别
level 1:跟踪SQL语句,等于sql_trace=true
level 4:包括变量的详细信息
level 8:包括等待事件
level 12:包括绑定变量与等待事件
4、说明:在11g中已经不推荐使用
alter system set sql_trace=true;
alter system set sql_trace=false;
三、查看跟踪文件
1、查看跟踪文件位置(当前会话)
select d.value||'/'||lower(rtrim(i.instance,chr(0)))||'_ora_'||p.spid||'.trc' trace_file_name from (select p.spid from v$mystat m, v$session s,v$process p where m.statistic# = 1 and s.sid = m.sid and p.addr = s.paddr ) p, (select t.instance from v$thread t,v$parameter v where v.name = 'thread' and(v.value = 0 or t.thread# = to_number(v.value))) i, (select value from v$parameter where name = 'user_dump_dest') d;
2、tkprof格式化跟踪文件
tkprof trace_file_name out_file
发表在 Oracle性能优化
4 条评论
php页面跳转
我把blog从http://www.66yj.com/blog迁移到//www.xifenfei.com域名下,当用户访问以前blog地址时,自动跳转到当前blog的对应文章
$url_this=strtolower('http://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]); $go_url=str_replace('http://www.66yj.com/blog','//www.xifenfei.com',$url_this); header("location:$go_url"); exit;
发表在 PHP
评论关闭