您现在的位置:首页
--> Incessant: Blog
今年所做的优化,大的涉及到体系架构改造,涉及到利用cache,涉及到更改实现方式,小的如加hint,建索引更改sql语句等,一年下来,大大小小算下来也超过100个了。我稍微总结一下优化要具备什么,怎么来做? 为什么要优化? 举个简单的例子,某个sql每小时执行了300万次,逻辑读如果我们能从500下降到100,每小时就可以节省了上亿个逻辑读,优化可以让服务器更节约资源,优化可以让sql执行速度更快,提高用户体验。1.理论...
每个session使用的内存:Each thread that is used to manage client connections uses some thread-specific space. The following list indicates these and which variables control their size: A stack (default 192KB, variable thread_stack) A connection buffer (variable net_buffer_length) A result buffer (variable net_buffer_length) The connection buffer and result buffer both begin with a size ...
[root@sql21 ~]# mysql -u rootWelcome to the MySQL monitor. Commands end with ; or \\g.Your MySQL connection id is 3 to server version: 5.1.26-rc-logType \'help;\' or \'\\h\' for help. Type \'\\c\' to clear the buffer.mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || test |+--------------------+3 r...
Shared pool latch用来保护共享池内部结构,在分配和释放共享池时需要获得latch,在老化或释放空间时也需要 latch。Oracle9i之前,共享池内存结构是由单独的Shared pool latch保护,从9i开始,如果服务器有4个以上的cpu且shared_pool_size大于250M,Oracle会动态将共享池分为多个子池,最多可以达到7个sub pool。子池的数量也可以通过_kghdsidx_count参数来手动调整,每个子池有自己的结构,lru列表和shared pool latch。查看Shared...
当你接手一个系统时,通常是从检查系统负载,cpu、内存使用率开始,查看statspack top5等待事件,逻辑读、物理读排名靠前的sql语句等等,然后进行初步的优化。而随着业务的深入了解,你开始从系统的角度去考虑据库设计,考虑应用实现的合理性,是否有更好的改进方案等。假设通过statspack报表找到了很耗资源的sql,表分析过,执行计划也是走索引,这种情况下怎么去判断 sql是优化的呢?1.提取逻辑读排名靠前的sql 6,813,699 ...
• 我这几年
我读书那些年,大学生是多么渴望能进入联想,方正,清华同方,用友这些所谓的大公司,这些公司在学校名气很大,你想想,独栋的办公楼,楼顶挂着大大的方正大厦四个大字,中关村满地的方正科技的广告,你会觉得相当洋气,相当的自豪。 我很幸运,刚毕业有机会加入方正春元,能进入方正并不表示我有多大的能力,学习有多好,这完全是个巧合,方正春元当时急着招人,没面试两句就让我上班了。大公司的确有大公司的好处,公司会...
Dbms_stats是oracle8i新增的程序包,它使统计数据的生成和处理更加方便,很多人都在推荐使用dbms_stats替代analyze,我倒是不怎么用过,记录一下 estimate_percent --估算抽样百分比 method_opt:for table --只统计表 for all indexed columns --只统计有索引的表列 for all indexes --只分析统计相关索引 --创建统计信息历史保留表 sql> exec dbms_stats.create_stat_table(ownname => \'scott\',stattab => \'stat_tab...
这个问题在面试中曾被问倒过,网络上能找到的资料也比较少,后来和yyxup,久游的一个puber讨论了半天,总算搞懂了一点 library cache object在内存中是分成2部分来存储的,第一部分是头信息,叫做handle,头信息里保存了指向具体保存该对象的地址,这个叫做heap.一个对象可能分为很多个heap要访问或者修改一个对象,首先要锁住其头信息,也就是handle,以防止其他session同时访问或者修改该对象,这是library cache lock...
Index Full ScansA full scan is available if a predicate references one of the columns in the index. The predicate does not need to be an index driver. A full scan is also available when there is no predicate, if both the following conditions are met:All of the columns in the table referenced in the query are included in the index.At least one of the index columns is not null.A full scan can be use...
需求:说是9点的时候开发delete tbl_custtrade 表中的某些行,现在反悔了,想找回delete之前的数据 select *from tbl_custtrade as of timestamp to_date(\'2007-5-16 9:00:00\', \'yyyy-mm-dd hh24:mi:ss\')。这个语句可以查到9时这个表的状态,9点之后所做的更改都不会体现到这个查询中,注意,只是能查到,并不代表这个表的现有值变了create table w_1asselect * from tbl_custtrade as of timestamp to_date(\'2007-5-16 9:00...
最近在使用pl/sql deverloper,toad第三方工具来编译procedure,trigger时,总出现pl/sql developer自动断开,编译失败的情况,重新连接oracle,编译还是失败。。。接着alert log就出现了一大堆ORA-07445错误,而用sql plus去编译则没有问题,编译顺利通过。我推断应该是oracle和第三个工具兼容的问题,可能是oracle的一个小bug,去metalink看看,果然发现了。。。 环境:Linux as3+oracle9205 报错信息:Errors in file /u01/app...
7*24的业务运营系统中,对一个表进行在线重定义将是很棘手的事,因为业务实时的在对这个表进行进行插入,删除修改等操作,那么是否可以在线重定义表呢,Oracle9i提供了在线重定义表包(DBMS_REDEFINITION),在修改表结构的同时可以进行DML操作。 1.构造原始数据表 SQL> create table red_test --原始表,需要对这个表进行在线重定义 2 as 3 select te_seq.nextval as id ,t.owner,t.object_name,10 as tvalue from dba_o...
Oracle 10g中默认是对统计信息自动进行分析,每天22:00会启动一个scheduler job来来进行,自动分析并不是说每天都去分析一遍所有表,只是分析rows改变超过10%的表,这是合理的,只分析很少一部分表。当然任何新特性存在都会有一定缺陷,关键看我们怎么来用这个功能,至于是否要关闭自动分析,就要看你的需求和使用情况了。 --检查是否开启了自动分析SQL> select t.owner,t.job_name,t.last_start_date,t.last_run_durati...
[ 共33篇文章 ][ 第2页/共2页 ][ 1 ][ 2 ]
近3天十大热文
- [56] Oracle MTS模式下 进程地址与会话信
- [56] IOS安全–浅谈关于IOS加固的几种方法
- [55] 如何拿下简短的域名
- [54] 图书馆的世界纪录
- [53] android 开发入门
- [53] Go Reflect 性能
- [50] 读书笔记-壹百度:百度十年千倍的29条法则
- [49] 【社会化设计】自我(self)部分――欢迎区
- [38] 程序员技术练级攻略
- [33] 视觉调整-设计师 vs. 逻辑
赞助商广告