网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月11日漏签0天
数据库吧 关注:67,263贴子:76,260
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 下一页 尾页
  • 26回复贴,共2页
  • ,跳到 页  
<<返回数据库吧
>0< 加载中...

来一个姿势贴,关于oracle数据库优化,聚聚人气。

  • 取消只看楼主
  • 收藏

  • 回复
  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一楼度娘


  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1.ORACLE的优化器共有3种
A、RULE(基于规则)
B、COST(基于成本)
C、CHOOSE (选择性)


2026-06-11 13:51:16
广告
不感兴趣
开通SVIP免广告
  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
2.访问Table的方式
A、 全表扫描
B、 通过ROWID访问表
C、 共享SQL语句


  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
全表扫描:全表扫描就是顺序地访问表中每条记录,ORACLE采用一次读入多个数据块
(database block)的方式优化全表扫描。


  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
rowid访问:
提高访问表的效率, ROWID包含了表中记录的物理位置信息,ORACLE采用索 引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系,通常索引提供 快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高。


  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
共享SQL语句:
为了不重复解析相同的SQL语句,在第一次解析之后,ORACLE将SQL语句存放在内存中,这块位于系统全局区域SGA(system global area)的共享池(sharedbuffer pool)中的内存可以被所有的数据库用户共享,数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,就可以保留更多的语句,当然被共享的可能性也就越大了。


  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
共享的语句必须满足三个条件:
A、 字符级的比较: 当前被执行的语句和共享池中的语句必须完全相同。
B、 两个语句所指的对象必须完全相同:
C、 两个SQL语句中必须使用相同的名字的绑定变量(bind variables)


  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
3.选择最有效率的表名顺序(只在基于规则的优化器中有效)


2026-06-11 13:45:16
广告
不感兴趣
开通SVIP免广告
  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
4.WHERE子句中的连接顺序
ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。


  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
5. SELECT子句中避免使用 ' * '


  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
6. 减少访问数据库的次数


  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
7.使用DECODE函数来减少处理时间


  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
8.整合简单,无关联的数据库访问


  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
9.用TRUNCATE替代DELETE
当删除表中的记录时,在通常情况下, 回滚段(rollbacksegments ) 用来存放可以被恢复的信息。 如果你没有COMMIT事务,ORACLE会将数据恢复到删除之前的状态(准确地说是恢复到执行删除命令之前的状况)。
而当运用TRUNCATE时, 回滚段不再存放任何可被恢复的信息。当命令运行后,数据不能被恢复。因此很少的资源被调用,执行时间也会很短。


2026-06-11 13:39:16
广告
不感兴趣
开通SVIP免广告
  • hw1407
  • 初涉管理
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
10. 尽量多使用COMMIT
只要有可能,在程序中尽量多使用COMMIT,这样程序的性能得到提高,需求也会因为CO MMIT所释放的资源而减少
COMMIT所释放的资源:
A、 回滚段上用于恢复数据的信息。
B、被程序语句获得的锁。
C、 redo log buffer 中的空间。
D、ORACLE为管理上述3种资源中的内部花费。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 26回复贴,共2页
  • ,跳到 页  
<<返回数据库吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示