我们爱分享---Oracle效率小技巧

sotom 2011-07-15 02:49:27
加精
1.--加快关联表查询速度,设置每次块读取数
execute immediate 'alter session set db_file_multiblock_read_count=128';

此技巧常用语存储过程中,每次读取块的大小(128)也需要根据实际需要和机器的配置综合考虑
2.当查询中存在对列的函数操作时,此时此列索引是无效的(可建立函数索引),例如to_char(abc,'xxxx'),abc字段索引失效
3.like 'abc%'使用索引,like '%abc%'不使用索引(自己去google原因)
4.
insert /*+ append */ --使用这个hint可以将数据使用直接路径插入到表的高水线之后,由于是连续的没有使用的空间,所以插入速度快。
into tab_abc select * from ......

5.导数据时可使用
insert into tab_abc nologging select * from tab_cde;(原理自己查,你会学到更多)
6.alter table hu move partition "REN130602" compress parallel 8 nologging;
压缩表可提高查询效率,但会大大降低插入和删除效率(个人建议当表大于100G时在考虑吧)
7.尽量少使用Truncate,别初生牛犊不怕虎,随便干掉一个表,这个习惯会使你痛不欲生的。
8.即使干掉了也别怕,Oracle 9i开始支持Flashback Query恢复误删除数据.(truncate的也可以回复,但是有前提的)
9.动态游标打开后一定记得关闭。
-------------------------------------------------------------------------------------------------
锁表的处理
第一步,查询出被锁的表的session_id,和serial#。
SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,
l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time
FROM v$locked_object l, all_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY sid, s.serial# ;

第二步,kill session
alter system kill session 'AAA,BBB' -- 其中AAA是上面查询出的sid,BBB是serial#的值

此处注意,看好是不是你自己锁的表,看准了在kill
第三部,一般上两个步骤就搞定锁表了,如果杀不掉,就进入到OS级别杀......
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=24 (24是上面的sid)

linux下 kill -9 12345(12345为上边查询出的spid)
此处更应注意,kill错了什么事情都可能发生。
-------------------------------------------------------------------------------------------------

好多都是脑袋想的,平时没记录,语句肯定会有错误的地方,希望大家抱着学习的态度去看。
知识比较基础,望牛人楼下补充并指点错误....感谢。


额,写了这么多,打个xx吧,自己所在的群,很不错的,群号:53596919


...全文
6329 145 打赏 收藏 转发到动态 举报
写回复
用AI写文章
145 条回复
切换为时间正序
请发表友善的回复…
发表回复
csw66 2014-03-09
  • 打赏
  • 举报
回复
学习了good
winhbb 2013-11-06
  • 打赏
  • 举报
回复
没特意学,这些居然都会了
我是来搞笑的 2013-10-13
  • 打赏
  • 举报
回复
果断收藏啊!
zhuimeng1225 2013-09-29
  • 打赏
  • 举报
回复
谢谢分享,但是这些东西的实用性真的不是很高
n_e_e_d 2013-08-29
  • 打赏
  • 举报
回复
我怎么没搜到这个群呢?
lt3 2013-05-23
  • 打赏
  • 举报
回复
引用 95 楼 pmlxp 的回复:
加群了都不敢说话 太多牛XX人士了
群号是多少呢? 谢谢!
康_宝 2013-03-31
  • 打赏
  • 举报
回复
谢谢分享,大哥,你的群貌似不能加额。
Sevencrimes 2013-01-15
  • 打赏
  • 举报
回复
mark 学习了
  • 打赏
  • 举报
回复
灬小坏蛋 2012-05-31
  • 打赏
  • 举报
回复
呵呵,受益匪浅
  • 打赏
  • 举报
回复
学习了
zc499498753 2011-12-28
  • 打赏
  • 举报
回复
学习了 。。感谢分享。
a23114988 2011-12-12
  • 打赏
  • 举报
回复
收藏l !!!!!
postgrest 2011-10-10
  • 打赏
  • 举报
回复
我怎么感觉有点深奥
attached 2011-10-10
  • 打赏
  • 举报
回复
我看了前几篇,挺好的!
mhwzzu 2011-10-04
  • 打赏
  • 举报
回复
不错,学习了
ruru521elva 2011-09-14
  • 打赏
  • 举报
回复
谢谢~·~~~
「已注销」 2011-09-13
  • 打赏
  • 举报
回复
欣赏。。。。
kkkbab 2011-09-07
  • 打赏
  • 举报
回复
面对大数据量的优化很必要啊,膜拜学习了
S_enjoin 2011-09-07
  • 打赏
  • 举报
回复
学习了。。。
加载更多回复(123)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧